-
Notifications
You must be signed in to change notification settings - Fork 10
Docker
์ต์ด ์คํ ์์ ๊ถํ์ด ์๋ค๋ ์๋ฌ๊ฐ ๋ฐ ์ ์์ต๋๋ค.
sudo adduser $USER docker
sudo gpasswd -a $USER docker
# logout / login
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