큐냅 나스에서 컨테이너 스테이션은 도커 컨테이너를 쉽게 관리하고 실행할 수 있는 앱입니다. 도커 컨테이너를 만들고 관리하는 방법은 크게 두 가지입니다. 첫 번째 방법은 이미지를 선택하고 불러오는 것입니다.

 

 

 

예를 들어 NPM을 설치해 보겠습니다. 먼저 필요한 이미지를 만들기에서 검색하면 되는데, 여기서 우리는 jlesage/nginx-proxy-manager을 설치할 것입니다.

 

 

해당 이미지를 선택하고 설치 버튼을 누릅니다. 설치할 이미지 버전을 선택한 후 다음을 클릭합니다. 컨테이너의 기본 설정을 진행할 수 있습니다. 고급 설정에서는 UI를 통해 환경 변수를 편집할 수 있습니다. 필요한 환경 변수는 도커 이미지의 이름을 누르면 도커 허브로 연결되어 확인할 수 있습니다.

 

필수 환경 변수만 쉽게 수정하고 싶다면 일단 기본값으로 설치를 진행합니다.

 

 

그리고 설치된 컨테이너 목록에서 방금 설치한 컨테이너의 이름을 클릭하면, 로그 및 상세정보를 확인할 수 있는 페이지가 나옵니다.

 

 

거기서 오른쪽 상단에 위치한 설정을 클릭하면 이미 고급 설정에 입력된 기본값을 확인할 수 있고 쉽게 대응 포트나 환경 변수를 수정할 수 있습니다. 그러나 공유 폴더와 같은 볼륨 매핑은 수정할 수 없으니 미리 등록하거나 docker-compose를 이용하는 것이 좋습니다.

 

 

 

두 번째 도커 컨테이너를 만드는 방법으로는 docker-compose를 사용하는 것입니다. docker-compose를 사용하면 더 편리하게 컨테이너를 관리할 수 있습니다. 먼저 설치할 도커 이미지의 docker-compose 파일을 찾습니다. 큐냅 나스의 컨테이너 스테이션에서 "응용 프로그램 만들기"를 선택합니다.

 

 

docker-compose.yaml 파일의 내용을 입력하고 yaml 확인을 클릭하여 파일의 구문 오류를 확인할 수 있습니다. 구문 오류가 없음을 확인한 후 "만들기"를 클릭하면 손쉽게 도커 컨테이너를 생성할 수 있습니다. 나중에 환경 변수를 편집하고 싶다면, 이전에 생성한 애플리케이션과 동일한 이름으로 다시 만들면 됩니다. 그러면 환경 변수가 덮어씌워진 채로 컨테이너가 다시 작동하게 됩니다.

 

 

 

 

주의해야 할 점은 NPM 도커와 서로 통신해야 하는 다른 도커들은 동일한 가상 스위치(네트워크)에 속해야 한다는 것입니다. 일반적으로 도커를 생성하면 도커 엔진은 새로운 가상 스위치를 만들게 됩니다. 그러나 이 경우에는 NPM 도커와 다른 도커들이 다른 가상 스위치에 속하므로 역방향 프록시가 작동하지 않을 수 있습니다. 이 문제를 해결하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.

 

  1. 브릿지(Bridge)를 사용하여 가상 스위치를 통일시킵니다.
    • 도커를 생성할 때 --network=bridge 옵션을 사용하면 모든 도커가 동일한 브릿지 네트워크에 속하게 됩니다.
  2. 수동으로 네트워크 스위치를 생성하고 지정해 줍니다.
    • 도커 네트워크를 수동으로 생성하여 모든 도커를 해당 네트워크에 연결합니다. 이렇게 하면 모든 도커가 동일한 네트워크 스위치에 속하게 됩니다.

아래는 docker-compose로 도커를 작성하는 예시입니다. 이 예시에서는 모든 도커가 같은 가상 스위치(bridge)에 속하도록 설정되어 있습니다. 웬만하면 docker-compose로 컨테이너를 만들고 특별한 경우가 아니면 아래와 같이 작성합시다.

version: '3'

services:
  x:
    image: xx:latest
    network_mode: bridge