콘텐츠로 이동

도커로 설치

빠르게 사용해보기

바른은 아래 명령어를 통해서 빠르게 설치할 수 있습니다.

docker pull bareunai/bareun:latest

도커를 실행하기

위와 같이 도커 이미지를 가져오고, 아래 명령어로 실행하면 됩니다.

mkdir -p ~/bareun/var

docker run \
   -d \
   --restart unless-stopped \
   --name bareun \
   --user $UID:$GID \
   -p 5656:5656 \
   -p 9902:9902 \
   -v ~/bareun/var:/bareun/var \
   bareunai/bareun:latest

윈도우에서 도커 실행하기

윈도우 10에서 도커 데스크탑(Docker Desktop)을 설치하는 과정입니다.

  1. 관리자 모드에서 명령 프롬프트 실행

    • 관리자 권한으로 명령 프롬프트를 실행하는 것입니다. 관리자 권한으로 실행하면 시스템 파일에 대한 접근 권한이 부여되어 필요한 명령을 실행할 수 있습니다.
  2. WSL(windows subsystem for linux) 설치

    • 윈도우에서 리눅스 환경을 제공하는 WSL을 설치합니다.
      wsl --install
      
  3. WSL의 버전 변경

    • WSL의 기본 버전을 2로 변경합니다.
      wsl --set-default-version 2
      
  4. 가상머신 플랫폼 활성화

    • 이 두 명령어는 리눅스 서브시스템과 가상머신 플랫폼을 윈도우에 활성화하는 명령어입니다.
      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
      
  5. 활성화 확인 및 윈도우 재부팅

    • 이 단계에서는 두 명령어가 'completed'라는 출력을 끝으로 종료되었는지 확인하고, 윈도우를 재부팅합니다.
  6. Ubuntu 설치 화면이 나타나면 ID와 비밀번호 생성

    • Ubuntu를 처음 설치할 때 필요한 계정 정보를 생성하는 단계입니다.
  7. 아래 링크에서 최신 WSL2 리늑스 커널 업데이트 패키지를 다운로드하고 실행

    • 이 단계에서는 WSL2를 최신 상태로 업데이트하는 과정입니다.
      https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
  8. 윈도우용 도커 데스크탑(Docker Desktop for Windows) 다운로드

    • 아래의 링크로 가서 도커 데스크탑을 다운로드 받는 단계입니다.
      https://www.docker.com/products/docker-desktop/
  9. Docker Desktop Installer.exe를 실행하여 설치

    • 다운로드 받은 도커 데스크탑을 설치하는 단계입니다.
  10. 도커 데스크탑 아이콘 실행

    • 설치한 도커 데스크탑을 실행하는 단계입니다.
  11. 관리자 모드에서 명령 프폼프트 실행

    • 다시 한 번 관리자 권한으로 명령 프롬프트를 실행합니다.
  12. 도커 명령어를 이용해 bareun 설치

    • 명령어를 실행하여 도커를 통해 바른을 설치하는 단계입니다.
    docker pull bareunai/bareun:latest
    
  13. 바른 도커 실행

    윈도우 파워셀(powershell)의 경우 아래 명령어로 실행할 수 있습니다.

    docker run `
        -d `
        --restart unless-stopped `
        --name bareun `
        -p 5656:5656 `
        -p 9902:9902 `
        -v ~/bareun/var:/bareun/var `
        bareunai/bareun:latest
    

이상의 윈도우에서 바른 도커 설치 과정에 대한 원문은 여기를 참고해주세요.

도커에 API키 등록하기

아래의 명령어로 홈페이지에서 회원가입 후 받은 API키를 -reg 인자 다음에 입력하여 도커에 등록합니다.

docker exec bareun /bareun/bin/bareun -reg YOUR-API-KEY

도커 환경 이해하기

바른 var 볼륨

일반적으로 도커 볼륨은 도커의 실행이 중지된 이후에도 지속적으로 사용할 수 있는 정보를 저장하기 위한 방법입니다. 주로 시스템 내부의 특정한 폴더를 도커 컨테이너가 사용할 수 있도록 합니다.

그런데, 도커 컨테이너의 프로세스들은 주로 root 계정으로 실행됩니다. 볼륨으로 연결한 폴더에 도커 컨테이너에서 다양한 파일들을 생성할 수 있습니다. 이렇게 되면, 실행 시점에 만들어지는 파일들은 root 권한으로 만들어지게 됩니다. 이렇게 되면, 해당 파일들은 지우거나 정리해야할 필요가 있을 경우에 매우 불편한 상황에 빠지기도 합니다. 심지어 보안이 철저한 조직에서는 리눅스 시스템에서 수퍼 유저로 접근하는 방법을 아예 차단하기도 합니다.

바른은 다양한 파일들은 런타임 시점에 생성합니다.

  • 사용자 사전은 컴파일된 형태로 유지됩니다. 바른을 필요에 의해서 중지했다가 다시 실행해도 늘 다시 동작해야 하므로 사전은 저장되어야 합니다.
  • 사용 로그 파일을 생성하고, 이들은 바른의 개선에 도움이 됩니다.
  • 사용 중 오류가 발생하면 이를 기록하고 유지합니다.
  • API키와 관련된 정보들을 저장합니다.

그래서 바른의 도커 이미지는 수퍼유저로도 실행되어도 문제가 없고, 일반 사용자 권한으로 실행되어도 문제가 없도록 구성하였습니다. 시스템 구성에 따라 다르지만, 연구목적이나 개인적인 목적으로 사용하신다면, 일반 사용자 모드로 실행하는 것을 권장합니다.

바로 이런 이유로 위의 명령줄에 --user $UID:$GID가 포함되어 있습니다. 이것은 현재 명령을 수행한 사용자의 권한으로 실행하라는 뜻입니다.

서비스 포트

먼저 바른의 서비스 포트에 대해서 살펴보시면 좋겠습니다.

바른은 5656 포트를 기본으로 사용합니다. 아래 다이어그램에서 보시는 바와 같이 ConnectRPC는 다양한 요청을 적절하게 분배합니다. 사용자는 늘 같은 포트를 통해서 편하게 요청을 보내도, 늘 안전하게 서비스가 됩니다.

graph LR
  A1[python lib] --> B[5656];
  A2[REST req] --> B[5656];
  A3[grpc-web req] --> B[5656];
  B --> Connect{ConnectRPC};
  Connect -->|http/1.1| GRPC[5656];
  Connect -->|grpc| GRPC[5656];
  Connect -->|grpc-web| GRPC[5656];
  Connect -->|http/1.1| WEB[5656];
  GRPC --> SVC1[LangService];
  GRPC --> SVC2[CustomDictService];
  GRPC --> SVC3[RevisionService];
  WEB --> SVC5[관리기능];

관리 포트

9902 포트는 관리 목적으로 사용됩니다. 아래 그림처럼 다양한 서비스 포트를 볼 수 있습니다.

이 관리 기능에 대해서는 envoy를 참고해주세요.

도커 내부 관리하기

도커 내부에는 bareun 프로세스가 실행 중입니다.

bareun
바른은 메인 서비스입니다. 바른은 늘 안정적으로 동작하기 때문에 어떤 경우에도 서비스가 중단되지는 않습니다. 필요한 경우 중지시키고 다시 기동해야 하는 경우도 있을 것입니다.

늘 준비 상태

바른은 외부 파일의 변경, 사용자 사전의 변경에 대해서도 중단없는 서비스를 진행합니다.

  • 라이선스 파일이 실시간으로 바뀌어도 서비스를 재기동하지 않습니다.
  • 사용자 사전이 바뀌어도 늘 서비스는 안정적으로 동작합니다.

서비스 재시작이 필요한 경우

다음의 경우에는 재시작이 필요할 수 있습니다.

  • 설정을 변경해야 하는 경우에는 서비스를 재기동해야 합니다.
  • 모델이 업데이트된다면 재기동해야 합니다.

재시작하는 방법

도커 자체를 재시작하며 됩니다. 도커를 재시작하는 방법은 아래와 같습니다.

docker restart bareun

로그 보기

docker logs -f bareun

위 명령어를 통해서 bareun 컨테이너의 로그를 확인해 볼 수 있습니다. 설치형 바른은 로그를 직접 기록하는 반면, 도커 버전에서는 로그를 표준 출력으로 내보냅니다. 이렇게 표준 출력으로 내보내게 되면, 쿠버네티스 등에서 더 쉽게 로그를 조회할 수 있습니다.

도움이 되었나요?