๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋„์ปค ๋ช…๋ น์–ด ์ •๋ฆฌ

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2025. 12. 15.

๊ธฐ๋ณธ์ ์ธ ๋„์ปค ๋ช…๋ น์–ด

1. ๋„์ปค ๋ช…๋ น์–ด๋กœ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰

docker search tomcat

 

2. ๋„์ปค ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ์™€ ์‚ญ์ œ

#๋‹ค์šด๋กœ๋“œ
docker pull console/tomcat-7.0

#์‚ญ์ œ
docker rmi consol/tomcat-7.0

 

3.  ๋กœ์ปฌ ์‹œ์Šคํ…œ์— ์žˆ๋Š” ๋„์ปค ์ด๋ฏธ์ง€ ํ™•์ธํ•˜๊ธฐ 

docker images

 

4. ํ†ฐ์บฃ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

docker run -d --name jh console/tomcat-7.0
  • docker run ์€ ์•„๋ž˜์˜ 3๊ฐœ๋ฅผ ๋™์ž‘์„ ํ•œ ๋ฒˆ์— ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • docker run = docker pull(์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ์•ˆ ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ) + docker create(์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ) + docker start(์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰)

 

5. ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ํ™•์ธ

docker ps -a
# -a : ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ํ™•์ธ

 

6. ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€

docker stop f6e513~

 

7. ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

docker rm f6e513~

 

  • ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด rmi

 

8. ๋„์ปค ์ด๋ฏธ์ง€ ์ •๋ณด ํ™•์ธ

docker inspect nginx

 

9. ๋„์ปค ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ ์œ„์น˜ ํ™•์ธ

# VM ๊ธฐ์ค€
cd /var/lib/docker/overlay2
  • Mac OS ํ„ฐ๋ฏธ๋„์—์„œ๋Š” Docker ์ด๋ฏธ์ง€/์ปจํ…Œ์ด๋„ˆ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

10. ๋„์ปค ์šฉ๋Ÿ‰ ํ™•์ธํ•˜๊ธฐ

# ๋„์ปค๊ฐ€ ์„ค์น˜๋œ ํ™˜๊ฒฝ ์šฉ๋Ÿ‰
du -sh /var/lib/docker/ 

# ๋„์ปค ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด ์ €์žฅ ๋””๋ ‰ํ† ๋ฆฌ
du -sh /var/lib/docker/image/

# ๋„์ปค ์ด๋ฏธ์ง€์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ๋˜๋Š” ์‹ค์ œ ๋””๋ ‰ํ† ๋ฆฌ
du -sh /var/lib/docker/overlay2/

# ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ •๋ณด ์ €์žฅ ๋””๋ ‰ํ† ๋ฆฌ
du -sh /var/lib/docker/containers/

 

11. ํฌํŠธ ํฌ์›Œ๋”ฉ์œผ๋กœ ํ†ฐ์บฃ ์‹คํ–‰ํ•˜๊ธฐ

docker run -d --name tc -p 80:8080 tomcat

 

12. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์‰˜ ์‹คํ–‰

docker exec -it tc /bin/bash

 

13. ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ํ™•์ธ

docker logs tc

 

14. ํ˜ธ์ŠคํŠธ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํŒŒ์ผ ๋ณต์‚ฌ

docker cp <path> <to container>:<path>
docker cp <from container>:<path> <path>
  • ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ์ด๋™์€ ๋ถˆ๊ฐ€๋Šฅ

15. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‘ ์‚ญ์ œ

docker stop `docker ps -a -q`
docker rm `docker ps -a -q`
  • -q == --quiet ์•ฝ์ž์ด๋‹ค. ์ถœ๋ ฅ์„ ๋‹จ์กฐ๋กญ๊ฒŒ ์ฆ‰, ID๋งŒ ์ถœ๋ ฅํ•ด๋ผ๋Š” ๋œป

16. ์ž„์‹œ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

docker run -d -p 80:8080 --rm --name tc consol/tomcat-7.0

 

17. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ

docker run -d --name nx -e env_name=test1234 nginx
  • -e == --env == environment variable

18. MySQL ์„œ๋น„์Šค ๊ตฌ์ถ•

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=`@password` -d mysql
  • mysql ๊ฐ™์€ ๊ฒฝ์šฐ ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ธํŒ…์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™˜๊ฒฝ์„ค์ •์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•จ ๋˜ํ•œ key ๋ฅผ ์ž„์˜๋กœ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ณ  MYSQL_ROOT_PASSWORD ๋กœ ํ•ด์•ผํ•จ

๋ณผ๋ฅจ ๋งˆ์šดํŠธ

19. ๋ณผ๋ฅจ ๋งˆ์šดํŠธ (์‚ฌ์šฉํ•ด์„œ ๋กœ์ปฌ ํŒŒ์ผ ๊ณต์œ ํ•˜๊ธฐ)

docker run -v <ํ˜ธ์ŠคํŠธ ๊ฒฝ๋กœ>:<์ปจํ…Œ์ด๋„ˆ ๋‚ด ๊ฒฝ๋กœ>:<๊ถŒํ•œ>
# /tmp:home/user:ro
  •  ro : ์ฝ๊ธฐ ์ „์šฉ
  • rw : ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ

20. Nginx๋กœ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ ํ•˜๊ธฐ

docker run -d -p 80:80 --rm -v /var/www:/usr/share/nginx/html:ro nginx

 


๋„์ปค ์ด๋ฏธ์ง€ ํ‘ธ์‹œ (public, private)

public

21. ๋„์ปค ์ด๋ฏธ์ง€ ํ‘ธ์‹œ

docker login
docker tag echo_test jihopark/echo_test:v3.7
docker images
docker push jihopark/echo_test:v3.7
  • docker ํ—ˆ๋ธŒ์— ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” CLI์—์„œ docker login์„ ์šฐ์„  ํ•ด์ค๋‹ˆ๋‹ค.
  • ์ดํ›„, image ์ด๋ฆ„์„ docker login id๋ฅผ ์„œ๋‘์— ๋‘๊ณ  ๋’ค์—๋Š” ์ด๋ฏธ์ง€ ์ด๋ฆ„ ๋ฐ ๋ฒ„์ „์„ ์ž‘์„ฑ ํ•ด์ฃผ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • docker tag echo_test jihopark/echotest:v3.7
  • docker images๋กœ ์ด๋ฏธ์ง€๊ฐ€ ์ถ”๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ข…์ ์œผ๋กœ jihopark์ด id์ธ docker ํ—ˆ๋ธŒ์— push ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์—…๋กœ๋“œ ํ•ด์ค๋‹ˆ๋‹ค.

 

22. ๋„์ปค ์ด๋ฏธ์ง€ ํžˆ์Šคํ† ๋ฆฌ ํ™•์ธ

docker history jihopark/echo_test
  • ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„์ปค ์ด๋ฏธ์ง€๊ฐ€ ์–ด๋–ค ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ฐ€์กŒ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์ผ ์ƒ๋‹จ์— dockerfile์„ ๋นŒ๋“œํ•ด์„œ ์ถ”๊ฐ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

private

23. private ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ตฌํ˜„

docker run -d --name docker-registry -p 5000:5000 registry
  • private registry๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ผœ์„œ 127.0.0.1:5000/v2/ ์„œ๋น„์Šค ์ ‘์† ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค. ์ •์ƒ์ ์ด๋ผ๋ฉด ์œ„์™€ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.
docker tag echo_test 127.0.0.1:5000/echo_test
docker push 127.0.0.1:5000/echo_test
  • ์œ„์˜ ๋ช…๋ น์–ด๋Œ€๋กœ tag๋กœ public๊ณผ ๋‹ค๋ฅด๊ฒŒ private ip๋ฅผ ์ถ”๊ฐ€ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ดํ›„ ๋ฐ”๊พผ ์ด๋ฏธ์ง€ ๋ช…์นญ์œผ๋กœ private ์— ์ด๋ฏธ์ง€๋ฅผ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.

 

 

๋Œ“๊ธ€