[Docker]docker run 명령어
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