[Docker๐Ÿณ] Docker ๊ธฐ๋ณธ 1

Jeong SeongYunยท2022๋…„ 10์›” 1์ผ
0

Docker

๋ชฉ๋ก ๋ณด๊ธฐ
4/10
post-thumbnail

๋“œ๋””์–ด Docker์˜ ์„ธ์ƒ์— ๋“ค์–ด์˜ค์…จ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€ ์˜ค๋Š” ๊ฒƒ๋„ ์ˆ˜๊ณ  ๋งŽ์œผ์…จ์ง€๋งŒ, ๊ฐ€์•ผํ•  ๊ธธ์ด ์ข€ ๋‚จ์•„์žˆ์œผ๋ฏ€๋กœ ์กฐ๊ธˆ๋งŒ ๋” ๋‹ฌ๋ ค๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ ์ค‘์š”ํ•œ ํŒŒํŠธ๋Š” โ— ํ‘œ์‹œ๋ฅผ ํ•ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋“ค์„ ์œ„ํ•œ ๊ฒƒ์ด๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์ œ๊ฐ€ ๋‚˜์ค‘์— ๋ณด๊ธฐ ์ข‹์œผ๋ผ๊ณ ... ใ…Žใ…Ž ์•„๋ฌดํŠผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

Container

๋‹จ์ผ ์ปดํ“จํ„ฐ ์•ˆ์—์„œ ๋…๋ฆฝ์ ์ธ ํ•˜๋‚˜์˜ ๋ฆฌ์ˆ™์Šค ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋ณด์—ฌ๋“œ๋ฆฌ๋ฉด,

์ด๋Ÿฐ ์‹์œผ๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด์ฃ .

๋ฐ”๋กœ ์ด Container๊ฐ€ Docker์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

Docker๋Š” ๋…๋ฆฝ์ ์ธ Container๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ํ™œ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.

๋ณดํ†ต ๋„์ปค์˜ ๊ธฐ๋ณธ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋ฅผ ๋•๋‹ˆ๋‹ค. {}๋Š” ์•ˆ ์“ฐ์…”๋„ ๋ฉ๋‹ˆ๋‹ค.

docker {๋ช…๋ น} {์˜ต์…˜} {์„ ํƒ์ž(Image/Container)}

Docker์˜ ๊ตฌ์„ฑ์š”์†Œ

Docker Engine

Docker๋Š” ์›นํŽ˜์ด์ง€์™€ ๋น„์Šทํ•˜๊ฒŒ, ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ํ•ด๋‹น ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ „๋‹ฌํ•˜๋Š” ์„œ๋ฒ„๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์„œ๋ฒ„๋ฅผ Docker Daemon Process๋ผ๊ณ  ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋ฅผ Docker Command๋ผ๊ณ  ํ•˜์ฃ .

Docker๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” Docker Command์™€ ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” Docker Daemon Process๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. [By RestAPI]

๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๊ผญ Docker Daemon Process๊ฐ€ ์ผœ์ง„ ์ƒํƒœ์—ฌ์•ผ ๋ช…๋ น์–ด๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ด ๋˜์ฃ ..!

โ— Docker Image

์ด๋ฏธ์ง€๋Š” ๋ช…๋ น์–ด์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. Layer๋ฅผ ์Œ“๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ๋“ค์ด ์Œ“์ธ ํ˜•ํƒœ๋ฅผ ๋ณด๊ณ  ์ด๋ฏธ์ง€๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ๊ฐ™๋„ค์š”...?

DL์„ ํ•˜์‹œ๋‹ค๋ณด๋ฉด torch.Sequential()์ด๋‚˜ keras.Sequential()๋ฅผ ๋งŒ๋‚˜๋Š”๋ฐ, ๊ทธ๊ฑฐ๋ž‘ ๋น„์Šทํ•œ ๊ตฌ์กฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•  ๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๊ทธ๋Ÿฐ ๊ฑด ์ด๋ฏธ ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฒ„์ „์— ๋งž๋Š” ์ด๋ฏธ์ง€๋งŒ ์•Œ๋ฉด ๋ฐ”๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋‹ค์šด ๋ฐ›์€ Docker Image๋กœ Docker Container๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์ฃ .

์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

docker image {๋ช…๋ น} {์˜ต์…˜}

image๋ฅผ ๊ตณ์ด ์ž…๋ ฅํ•ด์ฃผ์‹ค ํ•„์š”๋Š” ์—†์ง€๋งŒ, ๊ตฌ๋ถ„ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•ด์ฃผ๋Š” ์ถ”์„ธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ๊ด€๋ จ ๋ช…๋ น์–ด ๋ชจ์Œ

docker search {์ด๋ฏธ์ง€:ํƒœ๊ทธ} : ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
docker search --limit=n {์ด๋ฏธ์ง€:ํƒœ๊ทธ} : ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ n๊ฐœ๊นŒ์ง€๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

docker pull {์ด๋ฏธ์ง€:ํƒœ๊ทธ} : ํƒœ๊ทธ์— ๋งž๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.

docker images : ๋‹ค์šด๋˜์–ด ์žˆ๋Š” ์ด๋ฏธ์ง€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
docker image ls : ๋‹ค์šด๋˜์–ด ์žˆ๋Š” ์ด๋ฏธ์ง€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
docker image ls -q : Image ID๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

docker rmi {์ด๋ฏธ์ง€ ID or ์ด๋ฏธ์ง€:ํƒœ๊ทธ} : ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
docker image rm {์ด๋ฏธ์ง€ ID or ์ด๋ฏธ์ง€:ํƒœ๊ทธ} : ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

0. Docker Hub์™€ ๋กœ๊ทธ์ธ

Docker Image๋“ค์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค! Docker Hub ์‚ฌ์ดํŠธ๋กœ ๋“ค์–ด๊ฐ€ ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ์ง„ํ–‰ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์‹œ๋ฉด Linux์—์„œ Docker์— ๋กœ๊ทธ์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker login

๊ทธ๋Ÿฌ๋ฉด ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”, ์˜คํƒ€ ์•ˆ ๋‚˜๊ฒŒ ์กฐ์‹ฌ์กฐ์‹ฌ ์ž…๋ ฅํ•ด์ฃผ์‹œ๋ฉด

์ •์ƒ์ ์œผ๋กœ ์ž˜ ๋กœ๊ทธ์ธ ๋˜์—ˆ๋‹ค๊ณ  ๋œน๋‹ˆ๋‹ค!

๋กœ๊ทธ์ธ ํ•œ๋ฒˆ๋งŒ ํ•˜๋ฉด ์–ด์ฐจํ”ผ ๊ณ„์† AWS๊ฐ€ ์ผœ์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ ๊ธฐ์–ต๋งŒ ์ž˜ ํ•ด๋‘์‹œ๋ฉด ๋˜ ๋กœ๊ทธ์ธ ํ•˜์‹ค ์ผ์ด ์—†์„ ๊ฒ๋‹ˆ๋‹ค.

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

๋‹ค์šด ๋ฐ›์„ ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker search {๊ฒ€์ƒ‰ ๋Œ€์ƒ ์ด๋ฏธ์ง€:ํƒœ๊ทธ} : ํƒœ๊ทธ๋ฅผ ์•ˆ ์ ์œผ๋ฉด ํŠน์ • ๋ฒ„์ „์ด ์•„๋‹Œ ์ตœ์‹  ๋ฒ„์ „์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
docker search --limit=n {๊ฒ€์ƒ‰๋Œ€์ƒ} : ๊ฒ€์ƒ‰ ๋Œ€์ƒ์„ n๊ฐœ๊นŒ์ง€๋งŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋ณดํ†ต ๊ณต์‹ ์ด๋ฏธ์ง€๋Š” ์•Œ๊ธฐ ์‰ฝ๊ฒŒ official์— OK๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—†์œผ๋ฉด ์ผ๋ฐ˜ ์œ ์ €๋“ค์ด ์˜ฌ๋ฆฐ ์ด๋ฏธ์ง€๊ตฌ์š”. ์—”๊ฐ„ํ•ด์„  Star ๋งŽ์€ ๊ฑธ ๊ณ ๋ฅด๋Š” ๊ฒŒ...

2. ์ด๋ฏธ์ง€ ๋‹ค์šด

์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด ๋ฐ›๊ธฐ ์œ„ํ•ด์„  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker pull {์ด๋ฏธ์ง€}

์˜ˆ์‹œ๋กœ ubuntu 20.04 ๋ฒ„์ „์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„  docker pull ubuntu:20.04 ๋ผ๊ณ  ์ž…๋ ฅํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ...

์ด๋ ‡๊ฒŒ ์ •์ƒ์ ์œผ๋กœ ubuntu 20.04 ๋ฒ„์ „์œผ๋กœ ๋ฐ›์•„์ง‘๋‹ˆ๋‹ค.

๋‹ค์šด ๋ฐ›์•„์ง„ ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker images or docker image ls
docker image ls -q : Image ID๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์•„๊นŒ ๋‹ค์šด ๋ฐ›์•˜๋˜ ubuntu๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์ด๋ฏธ์ง€ ์‚ญ์ œ

๋‹ค์šด ๋ฐ›์€ ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•  ๋• ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker rmi {์ด๋ฏธ์ง€ ID or ์ด๋ฏธ์ง€:ํƒœ๊ทธ} or docker image rm {์ด๋ฏธ์ง€ ID}

์•„๊นŒ ๋‹ค์šด ๋ฐ›์•˜๋˜ ubuntu 20.04๋ฅผ docker rmi ubuntu:20.04๋กœ ์‚ญ์ œํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ •์ƒ์ ์œผ๋กœ ์ž˜ ์‚ญ์ œ๋๋„ค์š”. ์ด๋ฒˆ์—” ๊ทธ๋ƒฅ ubuntu๋ฅผ docker image rm 2dc39ba059dc๋กœ ์‚ญ์ œํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์—ญ์‹œ๋‚˜ ์ •์ƒ์ ์œผ๋กœ ์ž˜ ์‚ญ์ œ๋œ ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โ— Docker Container

Docker Image๊ฐ€ ์‹คํ–‰๋œ ํ˜•ํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  Container ํ˜•ํƒœ๋กœ์š”.

Docker๋Š” Image์™€ Container๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ์ด๋‹ค.

Image๋ฅผ ํ†ตํ•ด Container๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ๋‚˜์ค‘์—” ์–ด์ฐจํ”ผ ๋ช…๋ น์–ด ์…‹์„ ํ†ตํ•ด ํ•œ๋ฒˆ์— ์ฃผ๋ฃจ๋ฃฉ ๋งŒ๋“ค์–ด๋ฒ„๋ฆฌ๊ธด ํ•˜์ง€๋งŒ ๊ทธ ๋ช…๋ น์–ด ์…‹์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ์•„๋‘˜ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ๊ด€๋ จ ๋ช…๋ น์–ด ๋ชจ์Œ

docker create : ์ด๋ฏธ์ง€๋กœ Conatainer ์ƒ์„ฑ
docker ps : ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ํ™•์ธ
docker rm : ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
docker start : ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
docker run : Container ์ƒ์„ฑ ๋ฐ ์‹คํ–‰
-it : stdin์„ ์—ด๊ณ  tty๋ฅผ ๊ตฌ์„ฑ
-rm : Container ์ข…๋ฃŒ ๋ฐ ์‚ญ์ œ (+-f : ๊ฐ•์ œ ์ข…๋ฃŒ)
-d : background๋กœ ์‹คํ–‰
docker exec : ์ปจํ…Œ์ด๋„ˆ ์ง„์ž… ํ›„ ๋ช…๋ น์‹คํ–‰
docker attach : ์ปจํ…Œ์ด๋„ˆ ์ง„์ž…

0. ์ปจํ…Œ์ดํ„ฐ ์ƒ์„ฑ

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

docker create {์ด๋ฏธ์ง€:ํƒœ๊ทธ} : ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  Container๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
docker create --name {์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„} {์ด๋ฏธ์ง€:ํƒœ๊ทธ} : Container๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ Container ID ์™€ ํ•จ๊ป˜ ์ƒ์„ฑ๋จ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ปจํ…Œ์ด๋„ˆ ํ™•์ธ

ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๊ฑฐ๋‚˜ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” Container๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋‹ˆ๋‹ค.

docker ps : ํ˜„์žฌ '์‹คํ–‰์ค‘์ธ' ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
docker ps -a : ์‹คํ–‰์ค‘์ด์ง€ ์•Š์€ ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€ ๋ชจ๋‘ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
docker ps -q : ์ปจํ…Œ์ด๋„ˆ ์•„์ด๋””๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์ด ํ˜„์žฌ ๋งŒ๋“ค์–ด๋‘” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ชจ๋‘ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ์ค‘์— STATUS ๋ผ๋Š” ๊ฒŒ ๋ˆˆ์— ๋„๋Š”๋ฐ ๋ง ๊ทธ๋Œ€๋กœ ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ๋งํ•ด์ฃผ๋Š” ์นผ๋Ÿผ์ž…๋‹ˆ๋‹ค.

Created : ์ƒ์„ฑ๋จ
Up : ์‹คํ–‰์ค‘
Pause : ์ค‘์ง€
Existed : ์ข…๋ฃŒ๋จ

์˜ ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‹ˆ ์•Œ์•„๋‘๋„๋ก ํ•ฉ์‹œ๋‹ค.

๋„์ปค์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋‹ค.
๊ฐ๊ฐ์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ทธ ๊ธฐ์›์ด ๋˜๋Š” ์ด๋ฏธ์ง€์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋  ๋ช…๋ น์–ด๋ฅผ ์ ์–ด๋‘”๋‹ค. -> Commmand๋Š” ์ฒ˜์Œ์— ์ƒ์„ฑํ•  ๋•Œ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ? ๊ทธ๋Ÿฐ ๋ช…๋ น์–ด์ธ๊ฐ€,,,?

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

๋งŒ๋“ค์–ด์ง„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker rm {์ปจํ…Œ์ด๋„ˆ ID or ์ปจํ…Œ์ด๋„ˆ NAME} : ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

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

์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker start {์ปจํ…Œ์ด๋„ˆ ID or ์ปจํ…Œ์ด๋„ˆ NAME} : ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ— 4. docker run

์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•จ๊ณผ ๋™์‹œ์— ์‹คํ–‰๊นŒ์ง€ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ด ๋ช…๋ น์–ด๋ฅผ ์ œ์ผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ตฌ์š”!!

docker run -it : Container๊ฐ€ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ์„ ์—ด๊ณ , ์ž…๋ ฅ์„ ๋ฐ›๋Š” ์ˆ˜๋‹จ์ธ tty๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
docker run -i : STDIN์„ ์—ด์–ด๋‘๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.
docker run -t : ์‹ค์ „์—์„  ์—ฌ๋Ÿฌ Terminal์„ ๋„์šธ ํ…๋ฐ, ๊ทธ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅ์„ ๋„ฃ๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (๊ฐ€์ƒ Terminal ํ• ๋‹น)

๋ณด์‹œ๋ฉด ์ด์ œ Container ๋‚ด๋ถ€๋กœ ๋“ค์–ด์˜จ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. python์˜ ๊ฐ€์ƒํ™˜๊ฒฝ๊ณผ ๋น„์Šทํ•˜๋„ค์š”.
exit : ์ง„์ž…ํ•œ ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„์—์„œ ๋น ์ ธ๋‚˜์˜ต๋‹ˆ๋‹ค.

docker run --rm : ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋จ๊ณผ ๋™์‹œ์—(exit) ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

docker run -d : ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜์ง€๋งŒ ํ•ด๋‹น ํ”„๋กฌํ”„ํŠธ๋กœ ์ง„์ž…ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. Background๋กœ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .
docker attach {container ์ด๋ฆ„} : background๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” container์— ๋ช…๋ น์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค.
docker stop {container ์ด๋ฆ„} : background๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” container๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. [์ค‘์ง€๊ฐ€ ์•„๋‹ˆ๋ผ ์ง„์งœ ์ข…๋ฃŒ์ž…๋‹ˆ๋‹ค!]
docker pause {container ์ด๋ฆ„} : background๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” container๋ฅผ ์ž ๊น ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. <-> docker unpause

  • docker start๋‚˜ docker restart๋กœ exitํ•œ container๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

5. ์‹คํ–‰์ค‘์ธ Container ๋‹ค๋ฃจ๊ธฐ

Container ์•ˆ์— ์žˆ๋Š” shell์„ ์‹คํ–‰์‹œ์ผœ Container์•ˆ์—์„œ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋กœ ์ง„์ž…ํ•˜๋Š” ๊ฑฐ๋ž‘ ๋น„์Šทํ•œ ๋Š๋‚Œ์ด๊ฒ ๋„ค์š”
์ด๋ฅผ ์œ„ํ•ด ์•„๋ž˜์˜ ๋ช…๋ น์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

docker exec {์˜ต์…˜} {Container ID} {๋ช…๋ น}

์˜ˆ์‹œ๋กœ, ๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ ๋ฐฐ์šธ ๋‚ด์šฉ์ด์ง€๋งŒ apacheweb์— ๋“ค์–ด๊ฐ€์„œ ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋ฉด

์ด๋ ‡๊ฒŒ /usr/local/apache2์— ๋“ค์–ด์™”๊ณ  ls ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํด๋” ๋ชฉ๋ก๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋กœ ๋“ค์–ด๊ฐ€์„œ ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ์ญ‰-- ์œ ์ง€๊ฐ€ ๋˜๊ฒ ์ฃ ?

๊ทผ๋ฐ ๋ณดํ†ต ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜์ง€๋Š” ์•Š๊ณ  "ํ™•์ธ" ์ •๋„๋งŒ ํ•ด์ค€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

attach๋Š” ์ง„์ž…๋งŒ ์‹œ์ผœ์ฃผ๋Š” ๋ช…๋ น์–ด๊ณ , exec๋Š” ๋ช…๋ น๊นŒ์ง€ ์‹คํ–‰์‹œํ‚จ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์กด์žฌํ•˜์ฃ !

๐ŸŽ† TIP

ํ„ฐ๋ฏธ๋„์—์„œ $()๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ด„ํ˜ธ ์•ˆ์— ์žˆ๋Š” ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ๊ฐ’์ด ๋‹ด๊ฒจ์ง‘๋‹ˆ๋‹ค.

$(docker ps -a) ๋ฅผ ํ•˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋ชจ๋“  container๋“ค์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ docker์—์„œ ๋งŽ์€ ํŒŒ์ผ์„ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ, ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

{๋ช…๋ น์–ด 1} $({๋ช…๋ น์–ด 2})

์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ์กด์žฌํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  container๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•

docker rm $(docker ps -aq) ๋ผ๊ณ  ์ž…๋ ฅํ•ด์ฃผ๋ฉด

docker ps -aq ๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์˜ ID๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ 
$()๊ฐ€ ๊ทธ ๋‚ด์šฉ๋“ค์„ ๋‹ด์•„์ฃผ๊ณ 
docker rm์€ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ์˜ ID๋ฅผ ๋ฐ›์•„ ์‚ญ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด์ฃ .

๋˜๊ฒŒ ์œ ์šฉํ•  ๊ฑฐ ๊ฐ™์ง€ ์•Š๋‚˜์š”? ใ…Žใ…Ž

์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ๋ด๋„ ๊ฝค๋‚˜ ์–‘์ด ๋˜๋‹ˆ, docker ๊ธฐ๋ณธํŽธ 2๋ถ€์—์„œ ๋งˆ์ € ๋” ํฌ์ŠคํŒ…์„ ์ด์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

๋ฐ”๋กœ ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•˜์‹œ์ฃ ~

profile
๋ฌผ์–ด๋ณด๋ฉด ๋Œ€๋‹ตํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์Ÿ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€