도커 쉽게 사용하는 방법 (나의 경우)

다른 블로그 등에서 얻은 지식을 바탕으로 이것저것 테스트하여 나만의 도커 사용법을 정리해둔다. 파이토치, 텐서플로 기반 딥러닝을 위한 도커의 최소 사용방법이라고 봐도 될 듯 하다

요약 (나는 이렇게 사용한다)


  • 평소에 컨테이너를 안 끄려고 함
  • 따라서 exit 하지 않고 [X] 버튼을 눌러 터미널을 바로 닫거나, ctrl+p+q를 이용하여 빠져나온다.
  • 나중에 docker attach 으로 재접속 가능
  • 그러면 start, stop을 알 필요 없고
  • 실행중인 표준출력이 이어서 보임 (학습시키고 있을 때 유용)

위의 내용이 이해가 가지 않는다면 아래를 천천히 보면 된다.

참고로 본 글에서는 표준입출력이 가능한 상태인 interactive 모드와 attach 된 상태를 “접속”이라고 표현하였다.

도커 허브에서 이미지 받기 (docker pull)


도커 이미지를 pull 받을 때에는 Docker Hub에서 복사를 해오면 편하다

예를 들어 파이토치를 사용하려고 한다. 그러면 구글에 pytorch docker hub 라고 검색하고 들어가보자

아래 그림과 같이 tag 탭에서 원하는 버전을 고르고 명령어를 복사한다.

https://hub.docker.com/r/pytorch/pytorch/tags 에서 캡쳐

docker pull xxx/yyyy:zzzz

참고 : sudo 명령을 사용해야 할 수도 있음

도커 이미지 리스트 확인 (docker images)


docker images

pull 받거나 도커파일(dockerfile)로부터 생성된 도커 이미지 리스트를 아래와 같이 확인할 수 있다.

docker images 결과

컨테이너 생성 (docker run)


나는 주로 DNN 학습용 서버를 사용하고자 도커를 사용하기 때문에 CLI 환경이다.

따라서 멀티 GPU를 사용할 수 있는 컨테이너를 생성한다

docker run -it -v $(pwd):/workspace --net=host --privileged --gpus all --ipc=host --name=<CONTAINER_NAME> <IMAGE_NAME>

컨테이너 동작 상태 확인 (docker ps -a)


docker ps -a

-a 옵션을 써주어야만 꺼져있는 컨테이너도 볼 수 있다.

docker ps -a 결과

꺼져있는 컨테이너 켜기 (docker start -ai)


docker start -ai <CONTAINER_NAME>

start 명령은 꺼져있는 컨테이너만 켤 수 있다.

-ai 옵션은 컨테이너를 켜는 것과 동시에 접속함 (즉, attach 와 interactive 모드를 함께 실행)

컨테이너 끄기 (docker stop 또는 exit)


  • 컨테이너 내부에서 끄는 방법
    exit
    
  • 컨테이너 외부에서 끄는 방법
    docker stop <CONTAINER_NAME>
    

stop 명령은 켜져있는 컨테이너만 끌 수 있다.

컨테이너는 실행 중인 상태로 접속만 종료하기


위의 exit 이나 docker stop을 하지 않고,

  • X 버튼을 눌러 터미널을 바로 닫거나
  • ctrl+p+q를 이용하여 host로 빠져나올 수 있다

이렇게 사용하면 재접속 시 새로운 pts를 만드는게 아니고, 지난번 세션으로 연결되기 때문에 바로 실행중인 결과를 확인 할 수 있다.

실행중인 컨테이너 다시 접속하기


docker attach <CONTAINER_NAME>

실행중인 표준출력이 이어서 보임 (학습시키고 있을 때 유용)


끝~~




blastak © 2017. All rights reserved.