run - Start a Container

docker run nginx
ย
- ์ด๋ฏธ์ง๋ก๋ถํฐ ์ปจํ
์ด๋๋ฅผ ์คํํ ๋ ์ฌ์ฉํจ
- Docker ํธ์คํธ์ Nginx ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค๊ฐ ์๋ค๋ฉด ํด๋น ์ธ์คํด์ค๋ฅผ ์คํํจ
- ํธ์คํธ์ ์ด๋ฏธ์ง๊ฐ ์๋ค๋ฉด Docker Hub ๋ก ์ด๋ํด ์ด๋ฏธ์ง๋ฅผ Pull ํด์ด
- ์ด ์์
์ ํ ๋ฒ๋ง ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋ช
๋ น์ด๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํด๋ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฌ์ฉํจ
docker run ubuntu
- ubuntu ์ด๋ฏธ์ง์ ์ธ์คํด์ค๋ฅผ ์คํํ๊ณ ์ฆ์ ์ข
๋ฃํจ
- ์คํ์ค์ธ ์ปจํ
์ด๋๋ฅผ ํ์ธํด๋ ์คํ ์ค์ธ ์ปจํ
์ด๋๊ฐ ์์
- ํด๋น ์ปจํ
์ด๋๋ ์ด๋ฏธ ์ข
๋ฃ๋ ์ํ
- ์? Docker ๋ ๊ฐ์ ๋จธ์ ๊ณผ ๋ค๋ฅด๊ฒ ์ปจํ
์ด๋์ ๋ชฉ์ ์ ์ด์ ์ฒด์ ํธ๊ทธํ
์ด ์๋๋ผ ํน์ ์์
์ด๋ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ
- ๊ฐ๋ น Web Server ๋ Application Server ๋๋ Database Instance ๋ฅผ ํธ์คํ
ํ๊ฑฐ๋ ์ฐ์ฐ์ด๋ ๋ถ์ ์์
์ ์ํํ๋ ๊ฒ์ด ์์
- ์์
์ด ๋๋๋ฉด ์ปจํ
์ด๋๋ ์ข
๋ฃ๋จ
- ์ปจํ
์ด๋๋ ๋ด๋ถ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์๋ง ์กด์ฌ
- ์ปจํ
์ด๋ ๋ด๋ถ์ Web Service ๊ฐ ๋ฉ์ถ๊ฑฐ๋ ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ์ปจํ
์ด๋๊ฐ ์ข
๋ฃ๋จ
- ubuntu ์ด๋ฏธ์ง๋ก ์ปจํ
์ด๋๋ฅผ ์คํํ๋ฉด ์ฆ์ ์ข
๋ฃ๋๋ ์ด์
- ubuntu ๋ ๋ค๋ฅธ Application ์ ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ก ์ฌ์ฉ๋๋ ์ด์ ์ฒด์ ์ ์ด๋ฏธ์ง์ผ ๋ฟ์ด๊ธฐ ๋๋ฌธ
- ์ปจํ
์ด๋ ์์ฒด์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ๋๋ ํ๋ก์ธ์ค๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์์
ps - List Containers

docker ps
- ์คํ๋๋ ๋ชจ๋ ์ปจํ
์ด๋์ ํด๋น ์ปจํ
์ด๋์ ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ๋์ดํจ
- ์ปจํ
์ด๋ ID ๋ ์ปจํ
์ด๋ ์คํ์ ์ํด ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง์ ์ด๋ฆ, ํ์ฌ ์ํ๋ ์ปจํ
์ด๋ ์ด๋ฆ ๋ฑ์ด ์์
- ๊ฐ ์ปจํ
์ด๋๋ Docker ์ ์ํด ์๋์ผ๋ก ์์ฑ๋ ์์์ ID๋ ์ด๋ฆ์ ๊ฐ์
docker ps -a
- ๋ชจ๋ ์ปจํ
์ด๋ ํ์ธ
- ์ด๋ฏธ ์ข
๋ฃํ ์ปจํ
์ด๋๊น์ง ๋ชจ๋ ์ถ๋ ฅ
stop - Stop a Container
docker stop nginx
- ์คํ ์ค์ธ ์ปจํ
์ด๋๋ฅผ ๋ฉ์ถค
- ์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ์ด ํ์
rm - Remove a Container
docker rm nginx
- ์ข
๋ฃํ ์ปจํ
์ด๋๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ญ์
images - List Images
docker images
- ์ฌ์ฉํ ์ ์๋ ์ด๋ฏธ์ง์ ๋ชฉ๋ก๊ณผ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ํ์ธ
rmi - Remove Images
docker rmi nginx
- ๋ช
๋ น์ด๋ก ์ฌ์ฉํ์ง ์์ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ ์ ์์
- ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ๋ ค๋ฉด ํด๋น ์ด๋ฏธ์ง๊ฐ ์ข
์๋ ๋ชจ๋ ์ปจํ
์ด๋๋ฅผ ์ค๋จ ๋๋ ์ญ์ ํด์ผ ํจ
pull - Download an Image
docker pull ubuntu
- ์ปจํ
์ด๋ ์คํ ์์ด ์ด๋ฏธ์ง๋ง pull
Append a command
- ubuntu ์ ๊ฒฝ์ฐ์ ๊ฐ์ด ์คํ๋๋ ์๋น์ค๊ฐ ์๋ ์ด๋ฏธ์ง๋ผ๋ฉดย
docker run
ย ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด Docker ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋๋ก ๋ช
๋ นํ ์ ์์
docker run ubuntu sleep 5
ย ๋ช
๋ น์ด ์คํ ์ ์ปจํ
์ด๋๊ฐ ์คํ๋ ํ 5์ด ๊ฐ sleep ์ด ์คํ๋ ๋ค ์ปจํ
์ด๋๋ ์ข
๋ฃ๋จ
exec - Execute a Command
- ์คํ ์ค์ธ ์ปจํ
์ด๋์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ๋
- ํน์ ์ปจํ
์ด๋์ ํ์ผ ์ปจํ
์ธ ๋ฅผ ํ์ธํ๋ค๊ณ ๊ฐ์ ์
docker exec distracted_mcclintock cat /etc/hosts
/etc/hosts
์์น์ ์๋ ํ์ผ ์ปจํ
์ธ ๋ฅผ ์ถ๋ ฅ
run - Attach and Detach
docker run kodekloud/simple-webapp
- ์ ๋ช
๋ น์ด ์คํ ์ forground ์ฆ, ์ฐ๊ฒฐ ๋ชจ๋๋ก ์คํ๋จ
- ์ฆ, ์ฝ์์ ์ฐ๊ฒฐ๋๊ฑฐ๋ Docker Container ์ ํ์ค ์ถ๋ ฅ์ด๋ผ๋ ๋ป
- ์น ์๋น์ค์ ์ถ๋ ฅ๊ฐ์ ํ์ธํ๊ฒ๋จ
- ์ด Docker Container ์ ์ถ๋ ฅ๊ฐ์ ๋ณด๋ ๊ฒ ์ธ์ ํ ์ ์๋ ๊ฒ ์์
docker run -d kodekloud/simple-webapp
- Docker Container ๋ฅผ Detached ๋ชจ๋๋ก ์คํ
- Docker Container ๋ฅผ background ์์ ์คํ
docker attach
์ ์ปจํ
์ด๋ ID ๋ ์ด๋ฆ์ ์ง์ ํด์ ๋ค์ Attached ๋ชจ๋๋ก ๋ณ๊ฒฝ
docker run
run - tag

docker run redis
- tag ๊ฐ ๋ช
์๋์ง ์์ผ๋ฉด latest ๋ฒ์ ์ผ๋ก ์คํ
docker run redis:4.0
run - stdin
- Docker Container ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ค ์
๋ ฅ์ ์์ ํ์ง ์์
- ์
๋ ฅ๊ฐ์ ์ฝ์ ์ ์๋ ํฐ๋ฏธ๋์ด ์์ด ๋น ๋ํํ ๋ชจ๋๋ก ์คํ๋จ
- ์
๋ ฅ๊ฐ์ ๋ฐ์ผ๋ ค๋ฉด
-i
๋งค๊ฐ๋ณ์๋ฅผ ์ด์ฉํด์ ํธ์คํธ์ ํ์ค ์
๋ ฅ๊ฐ๊ณผ Docker Container ๋ฅผ ๋งคํํด์ผ ํจ
docker run -i kodekloud/simple-prompt-docker
- ์ด๋ฌ๋ฉด ํฐ๋ฏธ๋์ ์ ํ๋ฆฌ์ผ์ด์
ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ปจํ
์ด๋ ํฐ๋ฏธ๋์ ์ฐ๊ฒฐํ์ง ์์๊ธฐ ๋๋ฌธ์ stdin ์ถ๋ ฅ๊ฐ์ด ๋ณด์ด์ง ์์
docker run -it kodekloud/simple-prompt-docker
- Terminal ์ ๋ปํ๋ t ๊ฐ์ ์ถ๊ฐํ์ฌ stdin ์ถ๋ ฅ๊ฐ์ ๋ณผ ์ ์์
run - PORT mapping
- Docker Host / Docker Engine = Docker ๊ฐ ์ค์น๋ ๊ธฐ๋ณธ ํธ์คํธ
- Container ๋ก ์คํ๋๋ Web App ์ ์์ธ์คํ๋ ๋ฐฉ๋ฒ์?
- ๋ชจ๋ Docker Container ๋ ๊ธฐ๋ณธ์ผ๋ก ๋ด๋ถ IP ๋ฅผ ํ ๋น ๋ฐ์
- ์ด๋ Docker Host ๋ฅผ ํตํด์๋ง ์ ๊ทผ ๊ฐ๋ฅ
- ์ธ๋ถ ์ ๊ทผ์ ๊ฒฝ์ฐ Docker Container Port ์ Docker Host Port ๋ฅผ ๋งคํํ๋ Port Mapping ์ ํ์ฉํด์ผ ํจ
docker run -p 80:5000 kodekloud/simple-webapp
- ์์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ํตํด Docker Host ์ 80 ํฌํธ์ Docker Container ์ 5000 ํฌํธ๋ฅผ ๋งคํํ ์ ์์
- ๋ฌผ๋ก ํ๋์ Docker Host Port ์ 2๊ฐ ์ด์์ Container ๋ฅผ ๋งคํํ ์ ์์
run - Volume mapping

- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ด ์์ฑ๋๋ฉด Docker Container ์์ ์๋ ์์ฒด์ ์ผ๋ก ๋ถ๋ฆฌ๋ ํ์ผ ์์คํ
์ ์ ์ฅ๋จ
docker stop mysql
docker rm mysql
- Container ์ ๊ฑฐ ์ ๊ทธ ์์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ
- ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ ค๋ฉด Docker Host ๋๋ ํฐ๋ฆฌ๋ฅผ Docker Container ๋ด๋ถ ๋๋ ํฐ๋ฆฌ์ ๋งคํํด์ผ ํจ
docker run -v /opt/datadir:/var/lib/mysql mysql
- ์ ๋ช
๋ น์ด ์คํ ์ Docker Container ๋ด์ ํด๋๋ก ์ธ๋ถ ๋๋ ํฐ๋ฆฌ๊ฐ ๋ด๋ถ์ ์ผ๋ก ๋ง์ดํธ ๋จ
Inspect Container

docker ps
๋ช
๋ น์ด ์ฌ์ฉ ์ Container ์ด๋ฆ์ด๋ ID ๊ฐ์ ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ์ป์ ์ ์์
docker inspect
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์ ํน์ ์ปจํ
์ด๋์ ์ถ๊ฐ์ ์ธ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์
docker inspect blissful_hopper
์ฌ์ฉ ์ ์ปจํ
์ด๋์ ๋ชจ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ JSON ํ์์ผ๋ก ์ถ๋ ฅ
- ์ํ, ๋ง์ดํธ, ๊ตฌ์ฑ ๋ฐ์ดํฐ, ๋คํธ์ํฌ ์ค์ ๋ฑ
Networks.bridge.IPAddress
๋ฅผ ํตํด ๋ด๋ถ IP ํ์ธ ๊ฐ๋ฅ
Container Logs
- ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ ์ปจํ
์ด๋ ๋ก๊ทธ๋ฅผ ๋ณด๋ ๋ฐฉ๋ฒ
- ์๋ฅผ ๋ค์ด detatched ๋ชจ๋๋ก ์คํํ ์ปจํ
์ด๋์ stdout ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ์ถ์ ๊ฒฝ์ฐ
docker logs blissful_hopper
(์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ)
References