[Docker]docker run 명령어

최대 1 분 소요

docker run
sudo docker run {options} {REPOSITORY}:{TAG} /bin/bash

docker run 예시
sudo docker run --gpus all -it --name deeplabv3_plus -p 80:8080 \
-v /home/yeonsik/deeplabv3_plus:/workspace pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel /bin/bash

--gpus all : gpu 사용.
--it : terminal을 통해 명령어를 전달할 수 있도록 하는 옵션. default로 입력.
--name deeplabv3_plus : 생성될 컨테이너의 이름을 정의하는 부분.
-p 80:8080 : {host}:{container} 순으로 적으면 되며, 도커 컨테이너 상에서 8080 port로 무언가를 띄우면 host상에서 80 port로 접속이 가능하다. (여러 port 지정 가능)
-v /home/yeonsik/deeplabv3_plus:/workspace : {host}:{container} 순으로 적으면 되며, host의 /home/yeonsik/deeplabv3_plus 디렉터리와 container의 /workspace/를 mount 시켜준다.
pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel : {REPOSITORY}:{TAG} 순으로 적으면 되며, 불러올 이미지를 적으면 된다.
/bin/bash : container의 실행 명령어로, 해당 명령어 작성 시 linux와 마찬가지로 bash 명령어를 계속해서 입력할 수 있다. 만약, /bin/bash 대신 nvidia-smi를 적으면 nvidia-smi 결과창이 한 번 출력되고 별도로 해당 컨테이너의 다른 동작은 불가능하다.

에러 발생 시 대처방안

[ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory]

도커 컨테이너 안에 충분한 공유메모리가 없어서 발생한 문제로 docker run 옵션에 --shm-size를 추가하면 바로 해결이 가능하다.
ex) --shm-size=100G

카테고리:

업데이트: