본 문서는 도커를 간단하게 사용하기 위한 핵심적인 명령어와 옵션을 다루며, 다음의 문서(링크, 링크2)를 참고한다.
docker create -i -t ${다른 옵션} ${이미지} ${쉘}
# E.g.
docker create -i -t --name my_ubuntu ubuntu:16.04 /bin/bash
쉘을 별도로 지정하지 않으면 기본적으로 /bin/bash
을 사용한다.
docker create -d -p ${다른 옵션} ${호스트 포트번호}:${컨테이너 포트번호} ${이미지}
# E.g.
docker create -d --name my_nginx -p 80:80 -p 3306:3306 nginx:latest
docker run --rm ${다른 옵션} ${이미지}
# E.g.
docker run -i -t --rm ubuntu:16.04
docker create -v ${로컬 디렉토리 경로}:${컨테이너 디렉토리 경로} ${다른 옵션} ${이미지}
# E.g.
docker create -it -v ~/PycharmProjects/mnist:/opt/project tensorflow2 bash
시간이 동기화되어 있지 않으면 apt update 등을 사용할 수 없다. 시간 동기화 방법은 여러가지가 있는데, 일반적으로 로컬 타임 디렉토리를 마운트하면 쉽게 해결된다.
docker create -v /etc/localtime:/etc/localtime:ro ${다른 옵션} ${이미지}
--privileged
: 호스트 시스템의 주요 자원에 접근할 수 있도록 권한 부여-e ${변수 이름}=${변수}
: 환경변수 부여--name ${컨테이너 이름}
: 컨테이너 이름 부여--workdir ${워킹 디렉토리}
: 워킹 디렉토리 설정--gpus ${개수}
: GPU 개수 설정--shm-size ${크기}
: 공유메모리 설정추천하는 컨테이너 생성 명령어의 기본형은 다음과 같다.
docker create --gpus all -it --privileged --name ${컨테이너 이름} --workdir /workspace -v /etc/localtime:/etc/localtime:ro -v ~/docker_shared:/workspace/docker_shared ${이미지} /bin/bash
(삭제예정) GPU를 사용하려면 다음과 같이 해야한다?
docker run --gpus all --rm --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:22.01-tf2-py3 nvidia-smi