ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

์šฐ๋ถ„ํˆฌ 18.04์—์„œ ๋„์ปค๋ฅผ ์„ค์น˜๋ฅผ ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค. ๊ฐ„๋‹จํžˆ ๋ช…๋ น์–ด ๋ช‡์ค„๋กœ ๋„์ปค๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ • ๋˜ํ•œ ๊ฐ„๋‹จํ•˜๋‹ค.๐Ÿ˜

 

๋„์ปค ์„ค์น˜

sudo apt install curl
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
docker -v

curl์ด ์„ค์น˜ ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์ค„๊ณผ ๊ฐ™์ด curl์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ ํ›„์— ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋„์ปค๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์„ค์น˜ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์ค„์ธ docker -v์—์„œ ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋„์ปค๊ฐ€ ์„ค์น˜ ๋œ ๊ฒƒ์ด๋‹ค.

 

๋„์ปค ๊ทธ๋ฃน์— ์œ ์ € ์ถ”๊ฐ€

sudo usermod -aG docker $USER
sudo usermod -aG docker other-user

๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” root ๊ถŒํ•œ์ด ํ•„์š”ํ•˜์—ฌ sudo๋ฅผ ๋ช…๋ น์–ด๋ฅผ ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์œ„์™€ ๊ฐ™์ด ๋„์ปค ๊ทธ๋ฃน์— ์œ ์ €๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด, sudo ์—†์ด ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถ”๊ฐ€ ํ›„์— ๋กœ๊ทธ์•„์›ƒ ํ›„์— ๋‹ค์‹œ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด sudo ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดํ›„์˜ ์„ค๋ช…๋“ค์€ ๋„์ปค ๊ทธ๋ฃน์— ์œ ์ €๋ฅผ ์ถ”๊ฐ€ํ•œ ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋ฏ€๋กœ docker ๊ด€๋ จ ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ sudo๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค.

 

๋„์ปค ์‚ฌ์šฉ ์‹œ์ž‘ํ•˜๊ธฐ

๋„์ปค๋ฅผ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„ ๋œ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž‘์—…์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜์—ฌ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์„ ๋‹ค๋ฃจ๊ธฐ ์ „, ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋“ค์„ ๋จผ์ € ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ์•„์ง ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์ด๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฏธ์ง€ํ™” ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ Dockerfile์„ ์ด๋ฏธ์ง€ ๋นŒ๋“œ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋„์ปค ํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

1. ์ด๋ฏธ์ง€ ๋‹ค๋ฃจ๊ธฐ

๊ฐ€. ์ด๋ฏธ์ง€ ๋นŒ๋“œ

Dockerfile์€ ์ด๋ฏธ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ๋นŒ๋“œ ํ• ์ง€ ๊ธฐ์ˆ ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด์ „ ๊ธ€์—์„œ ๋‹ค๋ฃจ์—ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋‹ค์‹œ ์ƒ๊ธฐํ•˜์ž๋ฉด, ์–ด๋–ค์‹์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์ง€์— ๋Œ€ํ•œ ์„ค๊ณ„๋„์™€ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค.

FROM ubuntu:latest

โ€‹

ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์™€ ๊ฐ™์€ Dockerfile์ด ์žˆ์„ ๊ฒฝ์šฐ docker image build -t ubuntu:test .์™€ ๊ฐ™์ด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด๋Š” docker image build -t ์ด๋ฏธ์ง€์ด๋ฆ„:ํƒœ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ์ด๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ ํ•˜๋Š”๋ฐ ์žˆ์–ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • -t : ์ด๋ฏธ์ง€๋ช…๊ณผ ํƒœ๊ทธ๋ช…์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋กœ, ์‹ค์ œ ์‚ฌ์šฉ์— ํ•„์ˆ˜์ ์ด๋‹ค.

    • ๋นŒ๋“œํ•˜๋Š” ์ด๋ฏธ์ง€์— ๋”ฐ๋ผ ๋ช…์นญ๊ณผ ํƒœ๊ทธ(๋ฒ„์ „)์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค.
  • -f : ํ•ด๋‹น ์˜ต์…˜์€ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ ํ• ๋•Œ Dockerfile์„ ์ฐธ์กฐํ•˜์ง€๋งŒ ์ด์™ธ์˜ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์ง€์ •ํ•˜๊ณ ์ž ํ• ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์ด๋‹ค.

  • ex) docker image build -f my-docker-file -t ubuntu:test .

  • --pull : ์ตœ์ดˆ์— ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” FROM์— ๊ธฐ์žฌ๋œ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ๋‚ด๋ ค๋ฐ›๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ์ด๋Š” ํ˜ธ์ŠคํŠธ์— ์ €์žฅ๋œ๋‹ค. ํ˜ธ์ŠคํŠธ์—์„œ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ์ƒˆ๋กœ ๋‚ด๋ ค๋ฐ›์ง€ ์•Š๋Š”๋ฐ, ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ฐ•์ œ๋กœ ๋ฒ ์ด์Šค ์ด์ง€๋ฏธ๋ฅผ ์ƒˆ๋กœ ๋ฐ›๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ์ด๋Š” ์ตœ์‹  ์ด๋ฏธ์ง€๋ฅผ ๋ฐ˜์˜ํ•˜๊ณ  ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค.

 

๋‚˜. ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰

๋„์ปค ํ—ˆ๋ธŒ๋Š” ๊นƒ ํ—ˆ๋ธŒ์™€ ๋น„์Šทํ•œ ๊ฐœ๋…์œผ๋กœ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ repository์— ์˜ฌ๋ ค ์‚ฌ์šฉ์ž๋‚˜ ์กฐ์ง ์ด๋ฆ„์œผ๋กœ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๊ณต๊ฐœ๋œ ์ด๋ฏธ์ง€๋ผ๋ฉด ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ํ•„์š”ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ๋„์ปค ํ—ˆ๋ธŒ์— ์กด์žฌํ•˜๋Š” ์ด๋ฏธ์ง€๋“ค์„ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

docker search --filter is-official=true ubuntu

๊ฐœ๋ณ„์ ์œผ๋กœ ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด --filter ์˜ต์…˜์„ ํ†ตํ•ด ๊ณต์‹์ ์œผ๋กœ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œ ์ฆ‰, ์šฐ๋ถ„ํˆฌ๋ฉด ์šฐ๋ถ„ํˆฌ์—์„œ ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

docker search --filter is-automated=false ubuntu 

๋งŒ์•ฝ ์šฐ๋ถ„ํˆฌ์—์„œ ngnix๋‚˜ java์˜ ํ™˜๊ฒฝ์„ ๊ฐ–์ถ˜ ์ด๋ฏธ์ง€๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธ ๋  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ด๋ฏธ์ง€ ๋นŒ๋“œ๊ฐ€ ๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด, ์œ„์™€ ๊ฐ™์€ ์˜ต์…˜์„ ํ†ตํ•ด ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹ค. ์ด๋ฏธ์ง€ ๋ฐ›๊ธฐ

์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰ ํ•œ ํ›„์— ๋‹ค์šด ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” docker image pull ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

docker image pull python:latest

latest: Pulling from library/python
e9afc4f90ab0: Pull complete 
989e6b19a265: Pull complete 
af14b6c2f878: Pull complete 
5573c4b30949: Pull complete 
11a88e764313: Pull complete 
ee776f0e36af: Pull complete 
513c90a1afc3: Pull complete 
df9b9e95bdb9: Pull complete 
86c9edb54464: Pull complete 
Digest: sha256:dd6cd8191ccbced2a6af5d0ddb51e6057c1444df14e14bcfd5c7b3ef78738050
Status: Downloaded newer image for python:latest
docker.io/library/python:latest

์ด๋ฏธ์ง€ ๋ฐ›๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ์ด๋ฆ„๊ณผ ํƒœ๊ทธ์— ๋งž๋Š” ์ด๋ฏธ์ง€๋ฅผ ํ˜ธ์ŠคํŠธ์— ๋‹ค์šด ๋ฐ›๊ฒŒ ๋œ๋‹ค. ์ด ์ด๋ฏธ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ผ. ์ด๋ฏธ์ง€ ๋ชฉ๋ก

docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              test                330ae480cb85        2 weeks ago         125MB
ubuntu              16.04               330ae480cb85        2 weeks ago         125MB

Dockerfile์„ ํ†ตํ•ด ๋นŒ๋“œ ๋œ ์ด๋ฏธ์ง€๋‚˜ docker image pull์„ ํ†ตํ•ด ๋ฐ›์€ ์ด๋ฏธ์ง€๋Š” docker image ls๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ ๊ฒฝ์šฐ ๊ฐ๊ฐ์˜ ํƒœ๊ทธ๋Š” ๋‹ค๋ฅด์ง€๋งŒ ๋™์ผํ•œ IMAGE ID๊ฐ€ ํ• ๋‹น๋œ ๊ฒƒ์„ ๋ณด์•„ ๋™์ผํ•œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ํƒœ๊ทธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, docker image tag ubuntu:test ubuntu:real๊ณผ ๊ฐ™์ด ๊ธฐ์กด์˜ ์ด๋ฆ„:ํƒœ๊ทธ์™€ ์ด๋ฆ„:๋ณ€๊ฒฝํ•  ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

๋งˆ. ์ด๋ฏธ์ง€ ๊ณต๊ฐœ

์•ž์„œ ์„ค๋ช…ํ•˜์˜€๋“ฏ์ด, ๋„์ปค ํ—ˆ๋ธŒ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์†Œ์œ ์ž์˜ ๊ณต๊ฐœ๋œ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ ์˜ฌ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, ๋ฐ˜๋Œ€๋กœ ๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ณต๊ฐœํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋„์ปค ํ—ˆ๋ธŒ์˜ ๊ณ„์ • ์ƒ์„ฑ ํ›„ ํ˜„์žฌ ํ˜ธ์ŠคํŠธ์— ๋„์ปค ํ—ˆ๋ธŒ ๊ณ„์ •์ด ๋กœ๊ทธ์ธ๋œ ์ƒํƒœ๋ผ๋ฉด, docker image push๋ฅผ ํ†ตํ•ด ๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๋„์ปค ํ—ˆ๋ธŒ์— ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ์ด๋ฏธ์ง€๋ผ๋Š” ๊ฐœ์ฒด๋งŒ ๋‹ค๋ฅผ ๋ฟ์ด์ง€ ๊นƒ ํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ๋งฅ๋ฝ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค.

 

2. ์ปจํ…Œ์ด๋„ˆ ๋‹ค๋ฃจ๊ธฐ

๊ฐ€. ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

์ด๋ฏธ์ง€ ๋นŒ๋“œ์™€ ๋„์ปค ํ—ˆ๋ธŒ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด, ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์–ด๋Š ์ •๋„ ๋˜์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž‘์—…์„ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์ด๋Š” docker run ์ด๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.

docker run ubuntu:practice ls
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

์˜ˆ๋ฅผ ๋“ค์–ด ubuntu ์ด๋ฏธ์ง€๋กœ ๋ถ€ํ„ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ls ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ์œ„์™€ ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค. ํ•ด๋‹น ๋ช…๋ น์–ด๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ธธ์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋ช…๋ น ์ˆ˜ํ–‰ ํ›„ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ข…๋ฃŒ ๋œ๋‹ค. ์ด๋Š” ์ฒ˜์Œ ๋„์ปค๋ฅผ ์ ‘ํ•  ๋•Œ ๋‹นํ™ฉ์Šค๋Ÿฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋‹ค. VMware์™€ ๊ฐ™์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์‹คํ–‰ ํ™˜๊ฒฝ์ด ์ง€์†๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€๋งŒ ์•ž์„œ ๋งํ•˜์˜€๋“ฏ์ด ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…์ด๋‚˜, ์ฒ˜๋ฆฌํ•  ์ž‘์—…์ด ์—†๋Š” ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ข…๋ฃŒ ๋œ๋‹ค.

 

a) docker create

์•ž์„œ ์‚ดํŽด ๋ณธ docker run์€ pull - create - start์ผ๋ จ์˜ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด์™€ ๋‹ฌ๋ฆฌ docker create๋Š” start ์ด์ „์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” docker start๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ ์‹œ์ผœ์•ผ ํ•œ๋‹ค.

 

b) docker attach

์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ํ›„์— ๋ฐ˜๋ณตํ•  ์ž‘์—…์ด ์—†์œผ๋ฉด ์ข…๋ฃŒ๋œ๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ๋งŒ์•ฝ ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ์˜ ๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” attach๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ์‹œ attach ๊นŒ์ง€ ์ผ๊ด„์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, docker run -i -t image_name๊ณผ ๊ฐ™์ด -i -t ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ•œ๋ฒˆ์— ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‚˜. ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก

ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋‚˜ ์ค‘์ง€ ๋œ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ชฉ๋ก์„ ๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” docker ps๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

docker ps๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก๋งŒ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ค‘์ง€ ๋œ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” docker ps -a์™€ ๊ฐ™์ด -a ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์˜ ๋ชฉ๋ก์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ •์ง€ ๋ฐ ์žฌ์‹œ์ž‘

์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •์ง€ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” docker stop ๋ช…๋ น์–ด ๋’ค์— ์ปจํ…Œ์ด๋„ˆ ID, ์ปจํ…Œ์ด๋„ˆ ๋ช…์„ ์ธ์ž๋กœ ์ฃผ์–ด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •์ง€ ์ƒํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ •์ง€๊ฐ€ ์•„๋‹Œ ์žฌ์‹œ์ž‘์„ ์œ„ํ•ด์„œ๋Š” docker restart๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋‹จ์ˆœํ•œ ๋ช…๋ น์–ด๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์žฌ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ด์™ธ์— docker exec์„ ํ†ตํ•ด ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ช…๋ น์–ด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

 

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

์ •์ง€ ๋œ ์ปจํ…Œ์ด๋„ˆ ์ค‘ ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ์šฐ docker rm ๋ช…๋ น์–ด ๋’ค์— ์ปจํ…Œ์ด๋„ˆID, ์ปจํ…Œ์ด๋„ˆ ๋ช…์„ ์ธ์ž๋กœ ์ฃผ์–ด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๋’ค์— -f์˜ต์…˜์„ ์ถ”๊ฐ€๋กœ ์ง€์ •ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ •์ง€ ์‹œ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์‹คํ–‰ํ•  ๋•Œ docker run --rm์„ ํ†ตํ•ด ์ •์ง€๊ฐ€ ๋  ์‹œ, ์ฆ‰์‹œ ์‚ญ์ œํ•˜๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๋˜ํ•œ docker ps๋ฅผ ์‘์šฉํ•˜์—ฌ ์ •์ง€๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค. docker rm $(docker ps - a -q)์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด -q ์˜ต์…˜์€ ํ˜„์žฌ ๋ชฉ๋ก์˜ ์ปจํ…Œ์ด๋„ˆ ID๋ฅผ ์ถœ๋ ฅํ•˜๋ฏ€๋กœ ์ •์ง€๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด docker container prune๋กœ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋งˆ. ํŒŒ์ผ ๋ณต์‚ฌ

docker cp ๋ช…๋ น์–ด๋Š” ํ˜ธ์ŠคํŠธ ↔ ์ปจํ…Œ๋‹ˆ์–ด ๊ฐ„์˜ ํŒŒ์ผ ๋ณต์‚ฌ๋‚˜, ์ปจํ…Œ์ด๋„ˆ ↔ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํŒŒ์ผ ๋ณต์‚ฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋กœ๊ทธ๋ฅผ ํ˜ธ์ŠคํŠธ๋กœ ๋ณต์‚ฌํ•˜๋Š” ์ž‘์—…์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

๋ฐ”. ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€ ์ ‘๊ทผ

์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ ๋งˆ๋‹ค ๊ฐ€์ƒ IP ์ฃผ์†Œ๋ฅผ ํ• ๋‹น ๋ฐ›๊ฒŒ ๋œ๋‹ค. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ€์ƒ IP ๋Œ€์—ญ์€ 172.17.0.x๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์— ๋”ฐ๋ผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ• ๋‹น ๋œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ํ˜ธ์ŠคํŠธ OS์—์„œ๋Š” ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์˜ ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ˜ธ์ŠคํŠธ OS์™ธ์˜ ์™ธ๋ถ€์—์„œ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ˜ธ์ŠคํŠธ OS์™€ ๋ฐ”์ธ๋”ฉ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

ํฌํŠธ ๋ฐ”์ธ๋”ฉ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ ํ•  ๋•Œ docker run -p [host port: container port]๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” run์„ ์‹คํ–‰ ํ•  ๋•Œ ํฌํŠธ๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งŒ์•ฝ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€