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
docker run volume ์ต์
Docker volume(๋ณผ๋ฅจ)์ ์ปจํ ์ด๋์ ํธ์คํธ ์ด์์ฒด์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ฑฐ๋ ์ ์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ผ๋ก, ๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ์ง์์ฑ์ ์ ์งํ๋ฉด์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ค. Docker ๋ณผ๋ฅจ์ ์ปจํ ์ด๋์ ํ์ผ ์์คํ ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ํธ์คํธ ์์คํ ์ ํน์ ๊ฒฝ๋ก์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ํด์ค๋ค.
Docker ๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ ์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ฐ์ดํฐ ์ง์์ฑ: ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋๋ผ๋ ๋ณผ๋ฅจ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ ์ง. ์ด๋ฅผ ํตํด ์ปจํ ์ด๋ ์ฌ์์, ์ ๋ฐ์ดํธ, ์ญ์ ๋ฑ์ ์์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ ์ ์์.
- ๊ณต์ ๋ฐ์ดํฐ: ์ฌ๋ฌ ์ปจํ ์ด๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ฑฐ๋ ์ปจํ ์ด๋์ ํธ์คํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์.
- ๋ฐฑ์ ๋ฐ ๋ณต์: ๋ณผ๋ฅจ์ ์ฌ์ฉํ์ฌ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋ณต์ํ ์ ์์.
Docker์์ ๋ณผ๋ฅจ์ ์ฌ์ฉํ ๋๋ docker run ๋ช ๋ น์ด์ -v ๋๋ --volume ์ต์ ์ ์ฌ์ฉํ์ฌ ๋ณผ๋ฅจ์ ์ค์ ํ๋ค.
docker run -v ํธ์คํธ_๊ฒฝ๋ก:์ปจํ
์ด๋_๊ฒฝ๋ก ์ด๋ฏธ์ง_์ด๋ฆ
์ฌ๊ธฐ์ ํธ์คํธ_๊ฒฝ๋ก๋ ํธ์คํธ ์์คํ ์์์ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ฉฐ, ์ปจํ ์ด๋_๊ฒฝ๋ก๋ ์ปจํ ์ด๋ ๋ด๋ถ์์์ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ธ๋ค. ์ด ์ต์ ์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๊ฐ ํด๋น ๊ฒฝ๋ก์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์๋๋ก ์ค์ ํ๋ค.
์๋ฅผ ๋ค์ด, ๋ค์์ ํธ์คํธ์ /mydata ๋๋ ํ ๋ฆฌ์ ์ปจํ ์ด๋์ /app/data ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๋ช ๋ น์ด์ด๋ค.
docker run -v /mydata:/app/data ์ด๋ฏธ์ง_์ด๋ฆ
๋์ปค ๋ณผ๋ฅจ ์ฌ์ฉ ์์
httpd ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋์ปค ๋ณผ๋ฅจ ์ต์ ์ ์ฌ์ฉํด๋ณด์.
docker run -d -p 8080:80 -v /Users/docker_volume_test:/usr/local/apache2/htdocs httpd
- docker run ๋ช ๋ น์ด์ -d ์ต์ ์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ
- -p 8080:80 ์ต์ ์ผ๋ก ํธ์คํธ 8080ํฌํธ์ ์ปจํ ์ด๋ 80ํฌํธ๋ฅผ ๋งคํ
- -v(๋ณผ๋ฅจ ์ต์ )์ผ๋ก ํธ์คํธ ๊ฒฝ๋ก:์ปจํ ์ด๋ ๊ฒฝ๋ก๋ฅผ ์ฐ๊ฒฐ
- ๋ณผ๋ฅจ ์ต์ ์ ์ฌ์ฉํ๊ณ localhost:8080์ ์ ์ํ๋ฉด ์์ ๊ฐ์ ํ๋ฉด์ด ์ถ๋ ฅ๋จ
- -v ์ต์ ์ ํตํด ํธ์คํธ ๊ฒฝ๋ก '/Users/docker_volume_test', ์ปจํ ์ด๋ ๊ฒฝ๋ก '/usr/local/apache2/htdocs'๋ฅผ ์ฐ๊ฒฐ๋ ์ํ
- vscode๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ํธ์คํธ ๊ฒฝ๋ก์ ๋ค์ด๊ฐ index.html ํ์ผ์ ์์ฑ
- ๊ทธ๋ฆฌ๊ณ html:5 ๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด html ์ฝ๋ ํ ํ๋ฆฟ์ด ๋จ๋๋ฐ <body> </body> ์ฌ์ด์ ์ ์์์ฒ๋ผ ํน์ ํ ์คํธ๋ฅผ ์ ๋ ฅ
- ์ดํ ๋ค์ localhost:8080์ ์ ์ํ๋ฉด ํธ์คํธ ๊ฒฝ๋ก์ ์์ฑํ index.html๋ก ์์ ํ ๋ด์ฉ์ด ๋ฐ์๋์ด ์๋ ๊ฒ์ ๋ณผ ์ ์์
- ์ด๋ docker run ๋ณผ๋ฅจ ์ต์ ์ ํตํด ํธ์คํธ ๊ฒฝ๋ก์ ์ปจํ ์ด๋ ๊ฒฝ๋ก๋ฅผ ์ฐ๊ฒฐํ๊ธฐ์ ๊ฐ๋ฅํ ์์
๋์ปค ๋ฐ์คํฌํ ์ด์ฉ
์ญ์๋ Docker Desktop ์ ์ด์ฉํ๋ฉด ์ปจํ ๋์ด๋ฅผ ์์ฑํ ๋ ํฌํธํฌ์๋ฉ๊ณผ ๋ณผ๋ฅจ ์ต์ ๋ฑ์ ๊ธฐ์ ํ ์ ์๋ค.