Docker ์ ์ฒด ํฌ์คํ
[Docker] (1) ๋์ปค ๊ฐ๋ ์ค๋ช | ๋์ปค๋ ์ ์ฌ์ฉํ๋ ๊ฑธ๊น?
[Docker] (2) ๋์ปค & ๋์ปค์ปดํฌ์ฆ ๋ค์ด๋ก๋
[Docker] (3) ๋์ปค ํต์ฌ ๊ฐ๋ - ์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋์ปค ํ๋ธ
[Docker] (5) ๋์ปค run ๋ช ๋ น์ด ์ต์ , ๋์ปค ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋์ง ์๊ฒ ํ๋ ๋ฐฉ๋ฒ
[Docker] (6) ๋์ปค ์ปจํ ์ด๋๋ก ์ ์ํ๊ธฐ - docker exec & docker attach
[Docker] (7) ๋์ปค volume(๋ณผ๋ฅจ) ์ต์ - ์ปจํ ์ด๋ ํด๋์ ํธ์คํธ ํด๋ ์ฐ๊ฒฐํ๊ธฐ
[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)ํด๋ผ' ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค.