๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Programming/Docker & Kubernetes

[Docker] (5) ๋„์ปค run ๋ช…๋ น์–ด ์˜ต์…˜, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

by ๋ญ…์ฆค 2023. 8. 21.
๋ฐ˜์‘ํ˜•
Docker ์ „์ฒด ํฌ์ŠคํŒ…
๋”๋ณด๊ธฐ

[Docker] (1) ๋„์ปค ๊ฐœ๋… ์„ค๋ช… | ๋„์ปค๋Š” ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?

[Docker] (2) ๋„์ปค & ๋„์ปค์ปดํฌ์ฆˆ ๋‹ค์šด๋กœ๋“œ

[Docker] (3) ๋„์ปค ํ•ต์‹ฌ ๊ฐœ๋… - ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋„์ปค ํ—ˆ๋ธŒ

[Docker] (4) docker pull(์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ) & docker run(์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ/์‹คํ–‰) & ํฌํŠธํฌ์›Œ๋”ฉ(ํฌํŠธ๋งคํ•‘)

[Docker] (5) ๋„์ปค run ๋ช…๋ น์–ด ์˜ต์…˜, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

[Docker] (6) ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ์ ‘์†ํ•˜๊ธฐ - docker exec & docker attach

[Docker] (7) ๋„์ปค volume(๋ณผ๋ฅจ) ์˜ต์…˜ - ์ปจํ…Œ์ด๋„ˆ ํด๋”์™€ ํ˜ธ์ŠคํŠธ ํด๋” ์—ฐ๊ฒฐํ•˜๊ธฐ

[Docker] (8) ๋„์ปค commit(์ปค๋ฐ‹) & push(ํ‘ธ์‹œ) - ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กœ์šด ๋„์ปค ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ณ  ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ์—…๋กœ๋“œ

[Docker] (9) Dockerfile(๋„์ปคํŒŒ์ผ) - ์Šค๋งˆํŠธํ•˜๊ฒŒ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•

[Docker] (10) Dockerfile ๋นŒ๋“œ ์˜ˆ์‹œ | ENTRYPOINT ์™€ CMD์˜ ์ฐจ์ด

[Docker] (11) ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์™€ vscode ์—ฐ๋™ํ•˜๊ธฐ | ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ฐœ๋ฐœ

[Docker] (12) ๊นƒํ—ˆ๋ธŒ๋กœ ๋„์ปค ์ด๋ฏธ์ง€ ๊ณต์œ ํ•˜๊ธฐ | Packages Container Registry

 

 

๋„์ปค run ๋ช…๋ น์–ด ์˜ต์…˜

docker run ๋ช…๋ น์–ด ๋’ค์— ๋ถ™๋Š” -d, -p์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์€ ์˜ต์…˜(Options)์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋„์ปค ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋™์ž‘์ด๋‚˜ ์„ค์ •์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์˜ต์…˜๋“ค์€ ๋ช…๋ น์–ด์˜ ๋™์ž‘์„ ์„ธ๋ถ€์ ์œผ๋กœ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

์ง€๊ธˆ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ ๋„์ปค ๋ช…๋ น์–ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ์˜ต์…˜ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ •๋ฆฌํ•ด ๋ณด๋ ค ํ•œ๋‹ค.

  • --name [์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„] : ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์„ค์ •
  • -d (๋˜๋Š” --detach): ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ชจ๋“œ๋กœ ์‹คํ–‰. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋‚˜์„œ๋„ ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋™์ž‘.
  • -p (๋˜๋Š” --publish): ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํฌํŠธ ๋งคํ•‘์„ ์„ค์ •. '-p ํ˜ธ์ŠคํŠธ_ํฌํŠธ:์ปจํ…Œ์ด๋„ˆ_ํฌํŠธ'์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ˜ธ์ŠคํŠธ์˜ ํŠน์ • ํฌํŠธ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํฌํŠธ์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์™ธ๋ถ€์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ.
  • -v (๋˜๋Š” --volume): ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ๋ณผ๋ฅจ ๋งคํ•‘์„ ์„ค์ •. '-v ํ˜ธ์ŠคํŠธ_๊ฒฝ๋กœ:์ปจํ…Œ์ด๋„ˆ_๊ฒฝ๋กœ'์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ˜ธ์ŠคํŠธ์˜ ๊ฒฝ๋กœ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ๋กœ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.
  • -e (๋˜๋Š” --env): ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •. '-e ๋ณ€์ˆ˜=๊ฐ’' ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
  • -it (๋˜๋Š” --interactive์™€ --tty): ์ปจํ…Œ์ด๋„ˆ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋Œ€ํ™”ํ˜• ๋ชจ๋“œ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํ„ฐ๋ฏธ๋„์— ์ ‘์†. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Œ.

์ด ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ๋‹ค๋ฅธ ๋„์ปค ๋ช…๋ น์–ด์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋„์ปค ๋ช…๋ น์–ด์˜ ์˜ต์…˜์€ docker ๋ช…๋ น์–ด --help์™€ ๊ฐ™์ด ๋ช…๋ น์–ด ๋’ค์— --help๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๋„๋ก (-it ์˜ต์…˜ ์‚ฌ์šฉ)

httpd์™€ ๊ฐ™์€ ์›น์„œ๋ฒ„ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ ๋‚ด๋ถ€์ ์œผ๋กœ while๋ฌธ์„ ์ˆœํšŒํ•˜๊ธฐ์— docker run์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ๊ณ„์† ์‹คํ–‰๋œ ์ƒํƒœ๋กœ ์กด์žฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ ubuntu ์ฒ˜๋Ÿผ OS๋งŒ ์žˆ๋Š” ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ docker run์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ”๋กœ ์ข…๋ฃŒ๋œ๋‹ค.

์œ„ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ubuntu ์ด๋ฏธ์ง€๋ฅผ run ์‹œํ‚ค๋”๋ผ๋„ docker ps๋กœ๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ™•์ธํ•  ์ˆ˜ ์—†๊ณ , docker ps -a๋กœ ํ™•์ธํ•ด๋ณด๋ฉด ubuntu ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋•Œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ฒŒ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์„๊นŒ?

docker run์˜ -it ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ด๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 

docker run -dit --name test_ubuntu ubuntu

์œ„ ๋ช…๋ น์–ด๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉด 'docker run์„ ์‹คํ–‰ํ•˜๋˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•˜๊ณ (-d), ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ฒŒ ์œ ์ง€ํ•˜๊ณ (-it), ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ test_ubuntu๋กœ ์„ค์ •(--name test_ubuntu)ํ•ด๋ผ' ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

๋ฐ˜์‘ํ˜•