도커 쉽게 사용하는 방법 (나의 경우)
on Achievement
요약 (나는 이렇게 사용한다)
- 평소에 컨테이너를 안 끄려고 함
- 따라서 exit 하지 않고 [X] 버튼을 눌러 터미널을 바로 닫거나, ctrl+p+q를 이용하여 빠져나온다.
- 나중에 docker attach
으로 재접속 가능 - 그러면 start, stop을 알 필요 없고
- 실행중인 표준출력이 이어서 보임 (학습시키고 있을 때 유용)
위의 내용이 이해가 가지 않는다면 아래를 천천히 보면 된다.
참고로 본 글에서는 표준입출력이 가능한 상태인 interactive 모드와 attach 된 상태를 “접속”이라고 표현하였다.
도커 허브에서 이미지 받기 (docker pull)
도커 이미지를 pull 받을 때에는 Docker Hub에서 복사를 해오면 편하다
예를 들어 파이토치를 사용하려고 한다. 그러면 구글에 pytorch docker hub 라고 검색하고 들어가보자
아래 그림과 같이 tag 탭에서 원하는 버전을 고르고 명령어를 복사한다.
docker pull xxx/yyyy:zzzz
참고 : sudo
명령을 사용해야 할 수도 있음
도커 이미지 리스트 확인 (docker images)
docker images
pull 받거나 도커파일(dockerfile)로부터 생성된 도커 이미지 리스트를 아래와 같이 확인할 수 있다.
컨테이너 생성 (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 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>
실행중인 표준출력이 이어서 보임 (학습시키고 있을 때 유용)
끝~~