-
Notifications
You must be signed in to change notification settings - Fork 10
Docker
Whi Kwon edited this page May 10, 2019
·
8 revisions
우분투 설치 방법은 https://docs.docker.com/install/linux/docker-ce/ubuntu/#extra-steps-for-aufs 를 참고합시다.
최초 실행 시에 권한이 없다는 에러가 뜰 수 있습니다.
sudo adduser $USER docker
sudo gpasswd -a $USER docker
# logout / login
nvidia-docker 설치 방법은 https://github.com/NVIDIA/nvidia-docker 를 참고합시다.
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
docker run [image_name] # 컨테이너 생성
docker ps # 실행 중인 컨테이너 목록
docker ps -a # 전체 컨테이너 목록
docker stop [container_id] # 특정 컨테이너 중지
docker start [container_id] # 특정 컨테이너 시작
docker rm [container_id] # 특정 컨테이너 삭제
docker rm -v $(docker ps -a -q -f status=exited) # 전체 중지된 컨테이너 삭제
docker images # 도커 이미지 목록
docker pull [image_name] # 도커 이미지 다운로드
docker rmi -f [image_name] # 도커 이미지 삭제, -f를 주면 강제로 삭제한다.
docker logs [OPTIONS] [container_id] # 컨테이너 로그 확인
docker exec [container] [command] # 컨테이너에 명령어 실행하기
docker run을 실행시키면 build context for docker image라는게 뜨면서 용량이 증가하는데, 현재 폴더 내에 있는 것들을 참조하는 과정(context)을 거칩니다. container에 COPY
등을 하지 않을 파일들이라면 .dockerignore
파일에 추가해서 build 속도를 빠르게 할 수 있습니다.
RUN # run command when container is made
COPY # copy file from local to image
CMD # command when container runs
WORKDIR # set work directory
FROM # pull image
SHELL ["/bin/bash" "-c"] # set default shell to bash
ENV # 환경 변수 설정
EXPOSE # 외부에 노출할 port 지정
docker run -it -p 8888:8888 [image_name]
Jupyter notebook --ip 0.0.0.0 --no-browser # in container
docker run -it --runtime=nvidia --ipc=host [image id] /bin/bash
runtime, ipc 옵션을 줘야 nvidia driver를 docker 내에서 인식할 수 있고 shared memory를 사용하는 framework(e.g. Pytorch)를 위해서는 ipc=host 옵션이 필요합니다.
docker run -v “/path/to/host/directory:/path/inside/container” [image_name]
file.sh
#!/bin/bash
echo Your container args are: "$@"
Dockerfile
FROM ubuntu:14.04
COPY ./file.sh /
ENTRYPOINT ["/file.sh"]
CMD []
shell
docker build -t test .
docker run test hello world
Your container args are: hello world