๋„์ปค๋ž€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด ์„œ๋ฒ„ํ™˜๊ฒฝ์—์„œ์˜ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ, ์‹คํ–‰ํ™˜๊ฒฝ์„ ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ์„œ๋ฒ„ํ™˜๊ฒฝ์„ ์ฝ”๋“œ๋กœ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  ์•ˆ์ •์ ์ธ ๋ฐฐํฌํ™˜๊ฒฝ (๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ๋“ฑ) ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋„์ปค์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œ ํ•  ๋•Œ, ์ž์ฃผ์“ฐ๋Š” ๊ธฐ๋ณธ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค :)

docker ์„ค์น˜

๋ฆฌ๋ˆ…์Šค ์ž๋™ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ

$ sudo wget -qO- https://get.docker.com/ | sh

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sh get-docker.sh

์šฐ๋ถ„ํˆฌ

$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker

์œˆ๋„์šฐ, ๋งฅ

Docker for windows, Docker for Mac ์„ค์น˜

๐Ÿ“œ ์ด๋ฏธ์ง€ ๊ด€๋ จ

๋„์ปค์—์„œ๋Š” ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,

๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด๋ฏธ์ง€์— ์„ค์ •ํ•ด๋‘” ๋Œ€๋กœ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ตฌ์„ฑํ™˜๊ฒฝ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ๋ชฉ๋ก ๋ณด๊ธฐ

$ sudo docker images

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

$ sudo docker search [์ด๋ฏธ์ง€ ์ด๋ฆ„]

์ด๋ฏธ์ง€ ๋ฐ›๊ธฐ

$ sudo docker pull [์ด๋ฏธ์ง€ ์ด๋ฆ„]:[๋ฒ„์ „]

๋ฒ„์ „: latest ๋ฅผ ์“ฐ๋ฉด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ฐ›์„์ˆ˜ ์žˆ๋‹ค.

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

$ sudo docker rmi [์ด๋ฏธ์ง€ id]

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œ ํ• ๋•Œ, -f ์˜ต์…˜์„ ๋ถ™์–ด๋ฉด ์ปจํ…Œ์ด๋„ˆ๋„ ๊ฐ•์ œ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

$ sudo docker rmi -f [์ด๋ฏธ์ง€ id]

๐Ÿ“ฆ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ จ

๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ(nginx, database, WAS ๋“ฑ)์„ ์ปจํ…Œ์ด๋„ˆ ๋ผ๋Š” ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์„ ์ด์šฉํ•˜์—ฌ ์‹คํ–‰์‹œํ‚ฌ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ๋ณด๊ธฐ

$ sudo docker ps

์˜ต์…˜

  • -a : ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ์ถœ๋ ฅ

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

$ sudo docker run [options] image[:TAG|@DIGEST] [COMMAND] [ARG...]
์˜ต์…˜ ์„ค๋ช…
-d detached mode ํ”ํžˆ ๋งํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ชจ๋“œ
-p ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐ (ํฌ์›Œ๋”ฉ)
-v ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐ (๋งˆ์šดํŠธ)
-e ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •
--name ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์„ค์ •
--it -i์™€ -t๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•œ ๊ฒƒ์œผ๋กœ ํ„ฐ๋ฏธ๋„ ์ž…๋ ฅ์„ ์œ„ํ•œ ์˜ต์…˜ (์ปจํ…Œ์ด๋„ˆ์˜ ํ‘œ์ค€ ์ž…๋ ฅ๊ณผ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์˜ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ์—ฐ๊ฒฐ)
--rm ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ์‹œ ์ปจํ…Œ์ด๋„ˆ ์ž๋™ ์ œ๊ฑฐ
--link ์ปจํ…Œ์ด๋„ˆ ์—ฐ๊ฒฐ [์ปจํ…Œ์ด๋„ˆ ๋ช…:๋ณ„์นญ]
  • ex) $ sudo docker run -i -t --name server ubuntu:latest /bin/bash

์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘

$ sudo docker start [์ปจํ…Œ์ด๋„ˆ id ๋˜๋Š” name]

์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘

$ sudo docker restart [์ปจํ…Œ์ด๋„ˆ id ๋˜๋Š” name]

์ปจํ…Œ์ด๋„ˆ ์ ‘์†

$ sudo docker attach [์ปจํ…Œ์ด๋„ˆ id ๋˜๋Š” name]

์ปจํ…Œ์ด๋„ˆ ์ •์ง€

$ sudo docker stop [์ปจํ…Œ์ด๋„ˆ id ๋˜๋Š” name]
  • Bash Shell์—์„œ exit ๋˜๋Š” Ctrl + D๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ •์ง€๋œ๋‹ค.

  • Ctrl + P, Ctrl + Q๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ž…๋ ฅํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •์ง€ํ•˜์ง€ ์•Š๊ณ , ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋น ์ ธ๋‚˜์˜จ๋‹ค.

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

$ sudo docker rm [์ปจํ…Œ์ด๋„ˆ id ๋˜๋Š” name]
// ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
$ sudo docker rm `docker ps -a -p`

sudo ์—†์ด Linux ๋ช…๋ น์–ด ์“ฐ๊ธฐ

$ sudo usermod -aG docker $USER # ํ˜„์žฌ ์ ‘์†์ค‘์ธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์ฃผ๊ธฐ

$ sudo usermod -aG docker your-user # your-user ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์ฃผ๊ธฐ

์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ์ค‘ ์ผ ๋•Œ, ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•˜๋ฉด ๊ถŒํ•œ์ด ์ ์šฉ๋œ๋‹ค.

๐Ÿคž ๋งˆ์น˜๋ฉฐ...

๊ฐ„๋‹จํ•˜๊ฒŒ ๋„์ปค์™€ ๊ด€๋ จ๋œ ๊ธฐ๋ณธ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ‰์ƒ ๋„์Šค์ฐฝ์— ๋„์ปค ๋ช…๋ น์–ด๋ฅผ ์น  ์ˆœ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค์Œ ๊ธ€์—์„œ๋Š” ๋„์ปค๋ฅผ ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์ฃผ๋Š” ๋„์ปค guiํˆด์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.