๐ณ 1. ๋์ปค ๊ธฐ๋ณธ ๋ช
๋ น์ด
๋์ปค ๋ฒ์ ๋ฐ ์ ๋ณด ํ์ธ
docker --version # ๋์ปค ๋ฒ์ ํ์ธ
docker info # ๋์ปค ์์คํ
์ ๋ณด ํ์ธ
๋์ปค ์คํ ์ํ ํ์ธ
docker ps # ์คํ ์ค์ธ ์ปจํ
์ด๋ ๋ชฉ๋ก ํ์ธ
docker ps -a # ์ค์ง๋ ์ปจํ
์ด๋ ํฌํจ ์ ์ฒด ๋ชฉ๋ก ํ์ธ
๐๏ธ 2. ์ปจํ
์ด๋ ๊ด๋ฆฌ
์ปจํ
์ด๋ ์คํ ๋ฐ ์์ฑ
docker run # ๋์ปค ํ
์คํธ ์คํ
docker run -itd <์ด๋ฏธ์ง ID ๋๋ ์ด๋ฆ:ํ๊ทธ> bash # ์ปจํ
์ด๋ ์์ฑ ํ ์ ์ ์ (/bin/bash ๊ฐ์ด ์ ๋ ๊ฒฝ๋ก๋ ์ฌ์ฉ๊ฐ๋ฅ)
docker run -d -p 8080:80 <์ด๋ฏธ์ง ID ๋๋ ์ด๋ฆ:ํ๊ทธ> # ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ, ํธ์คํธ์ 8080 ํฌํธ๋ฅผ ์ปจํ
์ด๋ ๋ด๋ถ์ 80 ํฌํธ์ ์ฐ๊ฒฐ
docker run --name my_container -d <์ด๋ฏธ์ง ID ๋๋ ์ด๋ฆ:ํ๊ทธ> # ์ปจํ
์ด๋ ์ด๋ฆ ์ง์ ์คํ
docker run -it --gpus all <์ด๋ฏธ์ง ID ๋๋ ์ด๋ฆ:ํ๊ทธ> # gpu ์ฌ์ฉ ๊ฐ๋ฅ
docker run -it --gpus all --name <๋์ปค ์ปจํ
์ด๋ ์ด๋ฆ> <์ด๋ฏธ์ง ID ๋๋ ์ด๋ฆ:ํ๊ทธ> # ์ปจํ
์ด๋ ์ด๋ฆ ์ง์
docker run -it --gpus all --shm-size=8g <์ด๋ฏธ์ง ID ๋๋ ์ด๋ฆ:ํ๊ทธ> # ์ปจํ
์ด๋์ 8g ๋ฉ๋ชจ๋ฆฌ ํ ๋น
-i (--interactive) : ์
๋ ฅ์ ๋ฐ์ ์ ์๋๋ก ์ปจํ
์ด๋๋ฅผ ์ธํฐ๋ํฐ๋ธ ๋ชจ๋๋ก ์คํ
-t (--tty) : ๊ฐ์ ํฐ๋ฏธ๋(tty) ์ฐ๊ฒฐ์ ํ์ฑํํ์ฌ ํฐ๋ฏธ๋์์ ์ฌ์ฉํ ์ ์๋๋ก ํจ
-d (--detach) : ์ปจํ
์ด๋๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๊ณ์ ์คํ๋๋ฉฐ, docker ps๋ก ํ์ธํ ์ ์์
--shm-size=8g (๊ณต์ ๋ฉ๋ชจ๋ฆฌ 8G)
์ปจํ
์ด๋ ์ค์ง ๋ฐ ์ญ์
docker stop <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> # ์ปจํ
์ด๋ ์ค์ง
docker start <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> # ์ปจํ
์ด๋ ๋ค์ ์์
docker restart <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> # ์ปจํ
์ด๋ ์ฌ์์
docker rm <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> # ์ปจํ
์ด๋ ์ญ์
docker rm -f $(docker ps -aq) # ๋ชจ๋ ์ปจํ
์ด๋ ๊ฐ์ ์ญ์
์ปจํ
์ด๋ ๋ก๊ทธ ํ์ธ
docker logs <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> # ์ปจํ
์ด๋ ๋ก๊ทธ ๋ณด๊ธฐ
docker logs -f <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> # ์ค์๊ฐ ๋ก๊ทธ ๋ณด๊ธฐ
๐ฆ 3. ์ด๋ฏธ์ง ๊ด๋ฆฌ
์ด๋ฏธ์ง ๋ค์ด๋ก๋ ๋ฐ ๋ชฉ๋ก ํ์ธ
docker pull ubuntu # ๋์ปค ์ด๋ฏธ์ง ๋ค์ด๋ก๋
docker images # ๋์ปค ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ
docker image ls # ๋์ปค ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ (๋์ผ)
์ด๋ฏธ์ง ์ญ์
docker rmi <์ด๋ฏธ์ง ID ๋๋ ์ด๋ฆ> # ํน์ ์ด๋ฏธ์ง ์ญ์
docker rmi $(docker images -q) # ๋ชจ๋ ์ด๋ฏธ์ง ์ญ์
์ปจํ
์ด๋์์ ์๋ก์ด ์ด๋ฏธ์ง ์์ฑ
docker commit <์ปจํ
์ด๋ ID> my_custom_image # ์ปจํ
์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ก์ด ์ด๋ฏธ์ง๋ก ์ ์ฅ
๐ 4. ๋ณผ๋ฅจ ๋ฐ ๋คํธ์ํฌ
๋ณผ๋ฅจ ๊ด๋ฆฌ
docker volume ls # ๋ณผ๋ฅจ ๋ชฉ๋ก ํ์ธ
docker volume create my_volume # ์ ๋ณผ๋ฅจ ์์ฑ
docker volume rm my_volume # ๋ณผ๋ฅจ ์ญ์
๋คํธ์ํฌ ๊ด๋ฆฌ
docker network ls # ๋คํธ์ํฌ ๋ชฉ๋ก ํ์ธ
docker network create my_network # ์ ๋คํธ์ํฌ ์์ฑ
docker network rm my_network # ๋คํธ์ํฌ ์ญ์
๐ 5. ๋์ปค ์ปดํฌ์ฆ (Docker Compose)
๋์ปค ์ปดํฌ์ฆ ์คํ
docker-compose up # docker-compose.yml ํ์ผ ์คํ
docker-compose up -d # ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ
docker-compose down # ๋ชจ๋ ์ปจํ
์ด๋ ์ข
๋ฃ ๋ฐ ๋คํธ์ํฌ ์ญ์
๐ 6. ์ปจํ
์ด๋ ๋ด์์ ์์
์ปจํ
์ด๋ ๋ด๋ถ ์ ์
docker exec -it <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> bash # ์คํ ์ค์ธ ์ปจํ
์ด๋ ๋ด๋ถ ์ ์ (bash ๋๋ /bin/bash)
docker exec -it <์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ> sh # (sh ์ฌ์ฉ)
ํ์ผ ๋ณต์ฌ
docker cp <ํธ์คํธ ๊ฒฝ๋ก> <์ปจํ
์ด๋ ID>:<์ปจํ
์ด๋ ๋ด๋ถ ๊ฒฝ๋ก> # ํธ์คํธ → ์ปจํ
์ด๋
docker cp <์ปจํ
์ด๋ ID>:<์ปจํ
์ด๋ ๋ด๋ถ ๊ฒฝ๋ก> <ํธ์คํธ ๊ฒฝ๋ก> # ์ปจํ
์ด๋ → ํธ์คํธ
๐ 7. ๊ธฐํ ์ ์ฉํ ๋ช
๋ น์ด
์ฌ์ฉํ์ง ์๋ ๋ฆฌ์์ค ์ ๋ฆฌ
docker system prune # ์ฌ์ฉํ์ง ์๋ ์ปจํ
์ด๋, ๋คํธ์ํฌ, ์ด๋ฏธ์ง ์ญ์
docker system prune -a # ๋ชจ๋ ๋ฏธ์ฌ์ฉ ๋ฆฌ์์ค ์ญ์
ํน์ ํฌํธ ์ฌ์ฉ ์ปจํ
์ด๋ ์ฐพ๊ธฐ
docker ps --filter "publish=8080" # 8080 ํฌํธ๋ฅผ ์ฌ์ฉํ๋ ์ปจํ
์ด๋ ์ฐพ๊ธฐ