기술 정보

[Docker] Portainer 사용법

junmukbap98 2021. 6. 12. 21:04

학교에서 제공해주는 서버가 있는데 전에는 ssh를 이용해서 원격 연결을 하여 사용했다.

하지만 서버 사용 방식이 Docker를 이용한 방식으로 변경되었다.

Portainer라는 Docker web UI를 사용하여 서버에 접속할 수 있다.

 

우선 Portainer를 사용하기 위해서는 Docker의 Container와 Image 개념에 대해서 알아야한다.

위의 내용은 여기에 아주 잘 설명되어있다. 이 포스팅에서 terminal을 이용해서 컨테이너를 만들고, 이미지를 다운받는 것 등에 대한 설명이 잘 되어있는데 Portainer를 이용하면, terminal에서 이와 같은 명령어를 굳이 실행하지 않아도 된다. Portainer 내에 UI를 이용해서 바로 Container를 만들고, Image 다운로드를 할 수 있다.

 

1. 컨테이너 만들기 및 이미지 연결

그림 1

위의 버튼을 누르면 아래 그림과 같은 화면이 뜨게 되는데

그림 2

 

Name에는 사용할 컨테이너의 이름을 정해주면 되고,

빨간 박스쳐진 Image 부분 옆에 우리가 사용할 Image의 이름을 가져오면된다.

(나는 이미지를 가져오는 부분에서 애를 먹었는데)

어려운 건 아니고, Docker의 이미지는 Docker hubnvidia 사이트에서 다운 받을 수 있다. Docker hub에는 Official Image 말고도, 사용자들이 만들어놓은 다양한 Image가 있으니, 각자 필요한 환경이 잘 담겨있는 Image를 사용하면 된다.

 

예를 들어, 나는 PyTorch를 사용해서 nvidia 사이트에서 다운을 받았는데, 

그림 3

그냥 위의 빨간 박스 부분을 복사해서 [docker.io] 칸에 붙여넣기만 하면 된다.

 

2. 사용할 Port 설정하기

그리고 그림 2의 두번째 빨간 박스를 누르게 되면, 그 아래와 같이 port를 설정할 수 있는 창이 나오는데

나는 host port 와 container port를 같게 설정하였다.

 

위의 칸에는 SSH port를 입력해주고 (e.g. host:22 --> container:22)

아래 칸에는 Jupyter에 사용할 port 번호를 입력해준다. (e.g. host:8888 / container: 8888)

 

위의 숫자는 꼭 저게 아니어도 대충 비슷하게 아무 숫자나 쳐주면 되는 것 같다.

 

3. 실행 옵션 설정

그 다음 아래로 내리다보면, 그림 4와 같이 Console을 설정하는 표시 (그림 4-1번)가 있는데

Interactive는 표준입력으로 stdin을 활성화하며, 컨테이너와 연결되어있지 않더라도 표준 입력을 유지하고

TTY는 TTY모드를 사용한다고한다. bash를 사용하려면 이 옵션을 설정해야한다.

둘의 차이를 나도 정확히는 모르겠으나, 그냥 둘 다 사용하는 Interactive & TTY를 선택하자.

그림 4

 

4. 환경 변수 설정 & Runtime 설정

그림 4에서 Env(그림 4-2번)를 누르면, 사용할 GPU를 설정할 수 있다.

그림 5

1번을 눌러 environment variable을 추가한다.

예를 들어, GPU 0,1,2,3 네 개 중 2,3번 두 개를 사용하고 싶으면

[name] NVIDIA_VISIBLE_DEVICES [value]2,3을 입력해주면된다.

 

5. Runtime 설정

그 다음 Runtime & Resource 버튼을 눌러, nvidia로 설정해주면 된다.

그림 6

그 다음 중간 중간 부분에 존재하는 [Deploy the container] 버튼을 누르면 컨테이너는 생성된다.

 

6. 컨테이너 접속

그림 7

그림 7에 있는 터미널 아이콘을 누르고 [Connect]를 누르면 컨테이너에 접속이 완료된다.

 

+추가로+

나도 Docker를 처음 써봤던 거여서 익숙치 않은 환경때문에 애를 먹었다.

screen을 사용하기 위해서 apt-get screen을 하려했는데 안되서 당황했었는데 이 문제는 이 포스팅을 참고해서 해결해서 잘 사용 중에 있다 ^~^