๐ ํด๋น ํฌ์คํ ์ ์๋์ ๊ฐ์๋ฅผ ๊ณต๋ถํ ๋ด์ฉ์ ๊ธฐ๋กํ์์ต๋๋ค.
https://www.inflearn.com/course/%EB%8F%84%EC%BB%A4-%EC%9E%85%EB%AC%B8/dashboard
์ด์ ์ค์ต์์๋ ๊ธฐ์กด์ ์กด์ฌํ๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ์์ ์คํํ๋ ๋ฐฉ์์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํด๋ณด์์๋๋ฐ, ์ด๋ฒ ์ค์ต์์๋ ์ง์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด์ ์ปจํ ์ด๋๋ฅผ ์์ฑํด๋ณผ ๊ฒ์ด๋ค.
์ด๋ฏธ์ง๋ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ํ์ผ๋ค์ ์งํฉ์ด๋ค.
= ํ๋ก์ธ์ค ์คํ์ผ๋ก ํ์ผ์ด ์์ฑ/์ญ์ ๋๋ ๊ฒ -> ์ด๋ฏธ์ง์ ์ฐจ๊ณก์ฐจ๊ณก ์์ -> ์ด๋ฏธ์ง ์์ ๋ด์ฉ์ด ์ถ๊ฐ๋๋ฉด์ ๋ ๋ค๋ฅธ ์ด๋ฏธ์ง๊ฐ ์์ฑ๋๋ค. (๋์ปค๋ ์๋ก์ด ์ํ๋ฅผ ์ด๋ฏธ์ง๋ก ์ ์ฅํจ)
๋ญ ์๋ฆฌ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ผ๋ ์ผ๋จ ์ค์ต์ ํตํด ์ดํดํด๋ณด์๐ฅธ
๋์ปค ์ด๋ฏธ์ง ์์ฑํ๊ธฐ 1 ) commit
๋์ปค ์ด๋ฏธ์ง๋ ์ฝ๊ธฐ ์ ์ฉ(Only Read) ์์ญ / ์ฐ๊ธฐ ๊ฐ๋ฅ(Writable) ์์ญ์ผ๋ก ๋๋๋ค.
์๋ฅผ ๋ค์ด, ์ฐ๋ถํฌ๊ฐ ๊ฐ์ฅ ์ฒ์ ์ํ์ base image๋ผ๊ณ ํ๋ค๋ฉด, ์ฐ๋ถํฌ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๊ฟ ์๋ ์์ง๋ง ์ถ๊ฐ/์์ /์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค. ์ด ๋, roofs์์ญ์ด๋ base image์์ญ์ ์ฝ๊ธฐ ์ ์ฉ์ด์ง๋ง ์ด๊ฒ์ ์ปจํ ์ด๋์์ ์คํํด์ intall git์ ํ ํ ๋ค์ commitํ๋ฉด ์๋ก์ด custom image๋ก์จ ์ฌ์ฉํ ์ ์๋ค.
์ด ๊ณผ์ ์ ์ค์ตํด๋ณด๋๋ก ํ์!
(1) ubuntu ์ปจํ ์ด๋(์ปจํ ์ด๋๋ช ์ git)๋ฅผ ์์ฑํ ํ bash์ฐฝ์ผ๋ก ์ ์
docker run -it --name git ubuntu:latest bash
(2) ์ฐ๋ถํฌ์ git ์ค์น
๋จผ์ ๊น์ด ์ค์น๊ฐ ๋ ์ํ์ธ์ง ํ์ธํ๋ค.
# git --version
-> bash: git: command not found (base image์์๋ git์ด ์ค์น๋์ง ์์์์ ์ ์ ์๋ค.)
# apt-get update
# apt-get install -y git
# git --version
-> git version 2.25.1 ์ด๋ฐ์์ผ๋ก ์ค์น๋ ๊น ๋ฒ์ ์ ํ์ธํ ์ ์๋ค.
(3) ์ปจํ ์ด๋๋ฅผ ์ด๋ฏธ์ง๋ก commit
์ด ์์ ์ bash์ฐฝ ๋ฐ์์ ์คํํ๋ค. ๋๋ ์๋ก์ด powershell์ฐฝ์ ๋์์ ์์ ํ๋ค.
docker commit git ubuntu:git
ubuntu:git์ด๋ผ๋ ์ปจํ ์ด๋๋ฅผ git์ด๋ผ๋ ํ๊ทธ์ ์ด๋ฏธ์ง๋ก ์ปค๋ฐํ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
์ปค๋ฐ ์ ์ด๋ฏธ์ง๋ฅผ ํ์ธํด๋ดค์ ๋๋ ubuntu๋ก ๋ ์ด๋ฏธ์ง๋ค์ ํ๊ทธ๊ฐ 20.04๋ latest๋ง ์กด์ฌํ๋๋ฐ,
์ปค๋ฐ ํ ์ด๋ฏธ์ง์๋ ํ๊ทธ๊ฐ git์ธ ubuntu์ด๋ฏธ์ง๊ฐ ์์์ ํ์ธํ ์ ์๋ค.
(4) git ์ปค์คํ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์ปจํ ์ด๋ ์์ฑ
์ด๋ฒ์๋ ๋ฐฉ๊ธ๋ง๋ ubuntu:git ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์๋ก์ด ์ปจํ ์ด๋ git2๋ฅผ ๋ง๋ค์ด๋ณด์.
docker run -it --name git2 ubuntu:git bash
์์๋๋ก๋ผ๋ฉด git2 bash์ฐฝ์ git --version๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ ๋, command not found๊ฐ ์๋๋ผ git version์ด ์ ๋๋ก ๋ ์ผํ๋ค.
๊น์ด ์ค์น๋ ๋ฒ์ ์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์ปจํ ์ด๋๋ฅผ ์์ฑํ์ ๋, ๊น์ ๋ณ๋๋ก ์ค์นํ์ง ์์๋ ๊น์ ์ฌ์ฉํ ์ ์๋ค.
๋์ปค ์ด๋ฏธ์ง ์์ฑํ๊ธฐ 2 ) build
์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๋ฐฉ์์ commit์ด๋ build ๋ ๊ฐ์ง๊ฐ ์๋ค.
๊ทธ๋ฌ๋ ์ด ๋์ ์ฐจ์ด์ ์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
- docker commit : ๋์ปค ์ปจํ ์ด๋์์ ์์ ์์ ์ ๊ฑฐ์น ๋ค ์ปจํ ์ด๋๋ฅผ ์ด๋ฏธ์ง๋ก ์์ฑ
- docker build : Dockerfile์ ์์ฑํด์ ์ค์ ๋ด์ฉ๋๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑ
์ฐ๋ฆฌ๊ฐ ์์์ ํ๋ ์์ ์ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด์ ๊ทธ๋๋ก ์ด๋ฏธ์ง๋ก ๋ง๋ ๊ณผ์ ์ด์๋ค. ๊ทธ๋ผ ์ด๋ฒ์๋ ๋์ปค ์ด๋ฏธ์ง ์ค์ ํ์ผ์ธ Dockerfile์ ์ด์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํด๋ณด์
(1) Dockerfile ์์ฑ
์ํ๋ ๋๋ ํ ๋ฆฌ์์ Dockerfile์ ๋ง๋ค์ด ์๋์ ๋ด์ฉ์ ์์ฑํ๋ค.
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y git
FROM, RUN ๋ฑ์ ๋ช ๋ น์ด ์ธ์๋ ์ฌ๋ฌ ๋ช ๋ น์ด๊ฐ ์์ผ๋ ์๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ !
https://www.daleseo.com/dockerfile/
(2) build ๋ช ๋ น์ด๋ก ๋์ปค ์ด๋ฏธ์ง ์์ฑ
build ๋ช ๋ น์ด๋ก ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋ ์๋์ ๊ฐ์ ๊ท์น์ผ๋ก ๋ช ๋ น์ด๋ฅผ ์์ฑํด์ผํ๋ค.
ํ์ผ์ ๋ง๋ ๋๋ ํ ๋ฆฌ์์ ์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
docker build -t ubuntu:git-dockerfile .
ubuntu๋ผ๋ ์ด๋ฏธ์ง ์ด๋ฆ์ ํ๊ทธ๊ฐ git-dockerfile์ธ ์ด๋ฏธ์ง๊ฐ ์์ฑ๋ ๊ฒ์ด๋ค.
์์์ commit ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ์ ๋์๋ ์ง์ ์ปจํ ์ด๋์ ์ ์ํด์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ด์ผ ํ๋๋ฐ, build ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋์๋ dockerfile์ ์ํ๋ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ฉด ์ค์ ๋ก ์๋ฒ์ ๋ค์ด๊ฐ์ ํด์ผํ๋ ์์ ๋ค์ ์ค์ ํ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค.
๋์ปคํ์ผ๋ก ๊ด๋ฆฌํ๊ฒ ๋๋ฉด ๊ด๋ฆฌ์ ๋ฟ๋ง ์๋๋ผ ํ์ผ์ ํ์ธํ๋ ๋ชจ๋ ์ฌ๋๋ค์ด ํ๋ก๊ทธ๋จ์ ๋ํ ํ์คํ ๋ฆฌ๋ฅผ ํ์ ํ ์ ์๋ค๋ ์ ์์ ์ ์ฉํ๋ค.
'DevOps > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] ๋์ปค ๋ฐฐํฌ ๊ฐ๋ (0) | 2022.01.20 |
---|---|
[Docker] ๋์ปค ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ2 (์น ์ดํ๋ฆฌ์ผ์ด์ ) (0) | 2022.01.20 |
[Docker] ๋์ปค ์ปดํฌ์ฆ ์ฌ์ฉํ๊ธฐ (0) | 2022.01.18 |
[Docker] network์์ฑ๊ณผ volume mount (-v) ๋ช ๋ น์ด (0) | 2022.01.18 |
[Docker] ๋์ปค ๊ธฐ๋ณธ ๋ช ๋ น์ด run ์ฌ์ฉํ๊ธฐ (windows) (0) | 2022.01.18 |
๋๊ธ