| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- dockerhub
- ๋์์ธํจํด
- Java
- GoogleLogin
- CICD
- node.js mysql ์ฐ๋
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- spring scheduler
- spring
- ๋ ผ๋ธ๋กํน
- injection๊ณต๊ฒฉ
- ํฌ๋ก์ค์ฌ์ดํธ ์คํฌ๋ฆฝํธ
- React
- SpringBoot
- ์๋ฐ
- MySQL
- ์ค๋ธ์
- Node.js
- Personal Access Token
- @scheduler
- ์ฝ๋ฉํ ์คํธ
- docker
- oauth
- ์ฟ ๋ฒ๋คํฐ์ค
- java์ฑํ
- db์ํคํ ์ณ
- ์๊ณ ๋ฆฌ์ฆ
- ์ฝํ
- db์ ๋ต
- Jenkins
- Today
- Total
<Hello Hosung๐/>
[Docker] ๋์ปค์ ๋คํธ์ํฌ๋? ๋ณธ๋ฌธ
[Docker] ๋์ปค์ ๋คํธ์ํฌ๋?
์ข์ถฉ์ฐ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ผ๊ธฐ๐ง 2024. 11. 26. 17:34
Docker ๋คํธ์ํฌ๋ Docker ์ปจํ ์ด๋ ๊ฐ, ๋๋ ์ปจํ ์ด๋์ ์ธ๋ถ ์์คํ ๊ฐ์ ํต์ ์ ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ Docker์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ํตํด ์ปจํ ์ด๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ๋คํธ์ํฌ๋ฅผ ๊ฒฉ๋ฆฌํ๊ฑฐ๋ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์๋๋ Docker ๋คํธ์ํฌ์ ๋ํด ์๊ธฐ ์ฝ๊ฒ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
Docker ๋คํธ์ํฌ๋?
Docker๋ ์ปจํ ์ด๋๋ฅผ ๋ ๋ฆฝ์ ์ธ ํ๊ฒฝ์์ ์คํํฉ๋๋ค. ์ด๋ ๋คํธ์ํฌ๋ ์ปจํ ์ด๋ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ , ์ธ๋ถ์ ์ฐ๊ฒฐ๋๋ ํต๋ก ์ญํ ์ ํฉ๋๋ค.
๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ ์ด๋ ๊ฐ์ ํต์ , ๋ณด์ ์ค์ , ๋ค๋ฅธ ์์คํ ๊ณผ์ ์ฐ๊ฒฐ์ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Docker ๋คํธ์ํฌ์ ์ฃผ์ ๊ธฐ๋ฅ
- ์ปจํ
์ด๋ ๊ฐ ํต์
- ๊ฐ์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ปจํ ์ด๋๋ผ๋ฆฌ๋ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์น ์๋ฒ ์ปจํ ์ด๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์ด๋๊ฐ ๋์ผํ ๋คํธ์ํฌ์ ์์ผ๋ฉด ์น ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ ์ ์์ต๋๋ค.
- ์ปจํ
์ด๋์ ์ธ๋ถ ํต์
- ์ธ๋ถ ๋คํธ์ํฌ(์: ์ธํฐ๋ท)์ ์ฐ๊ฒฐํ์ฌ ์ปจํ ์ด๋๊ฐ ์ ๋ฐ์ดํธ ํ์ผ์ ๋ค์ด๋ก๋ํ๊ฑฐ๋, ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ณด์ ์ ๊ณต
- ๋คํธ์ํฌ๋ฅผ ๊ฒฉ๋ฆฌํ๊ฑฐ๋ ๋ถ๋ฆฌํ์ฌ ํน์ ๋คํธ์ํฌ์์๋ง ํต์ ์ ํ์ฉํ ์ ์์ต๋๋ค.
- ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ปจํ ์ด๋๋ ์ธ๋ถ ์ ๊ทผ์ ์ฐจ๋จํ๊ณ ๋ด๋ถ์์๋ง ํต์ ํ ์ ์๋๋ก ์ค์ ๊ฐ๋ฅํฉ๋๋ค.
- ํ์ฅ์ฑ
- ์ฌ๋ฌ ํธ์คํธ์ ๊ฑธ์ณ ๋คํธ์ํฌ๋ฅผ ํ์ฅํ ์ ์์ด, ๋ถ์ฐ ์์คํ ๊ตฌ์ฑ ์์๋ ํจ์จ์ ์ผ๋ก ํ์ฉ๋ฉ๋๋ค.
Docker ๋คํธ์ํฌ์ ์ ํ
Docker๋ ๋ค์ํ ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๊ฐ๊ฐ ๋ค๋ฅธ ๋ชฉ์ ๊ณผ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ค์์ ์ฃผ์ ๋คํธ์ํฌ ์ ํ์ ๋๋ค:
1. Bridge ๋คํธ์ํฌ (๊ธฐ๋ณธ ๋คํธ์ํฌ)
- ์ค๋ช : ๋จ์ผ ํธ์คํธ ๋ด์์ ์ปจํ ์ด๋ ๊ฐ ํต์ ์ ์ง์ํ๋ ๋คํธ์ํฌ.
- ํน์ง:
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ฉด bridge ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
- ๋คํธ์ํฌ๋ฅผ ์์ฑํ์ง ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ.
- ์์:
docker run --name web-server --network bridge nginx
2. Host ๋คํธ์ํฌ
- ์ค๋ช : ์ปจํ ์ด๋๊ฐ ํธ์คํธ ๋จธ์ ์ ๋คํธ์ํฌ๋ฅผ ๊ณต์ ํฉ๋๋ค.
- ํน์ง:
- ์ปจํ ์ด๋๋ ๋ณ๋์ IP๋ฅผ ๊ฐ์ง์ง ์๊ณ ํธ์คํธ์ IP๋ฅผ ์ฌ์ฉ.
- ๋คํธ์ํฌ ์ฑ๋ฅ์ด ์ค์ํ๊ฑฐ๋ ํฌํธ ์ถฉ๋์ ํผํด์ผ ํ ๋ ์ฌ์ฉ.
- ์์:
docker run --network host nginx
3. Overlay ๋คํธ์ํฌ
- ์ค๋ช : ์ฌ๋ฌ ํธ์คํธ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์ฐ๊ฒฐํ๋ ๋ถ์ฐ ๋คํธ์ํฌ.
- ํน์ง:
- Docker Swarm์ด๋ Kubernetes์ ๊ฐ์ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ์์ ์ฃผ๋ก ์ฌ์ฉ.
- ๋์ผ ๋คํธ์ํฌ์ ์ํ ์ปจํ ์ด๋๊ฐ ํธ์คํธ์ ์๊ด์์ด ํต์ ๊ฐ๋ฅ.
- ์์:
docker network create -d overlay my-overlay-network
4. None ๋คํธ์ํฌ
- ์ค๋ช : ์ปจํ ์ด๋๊ฐ ๋คํธ์ํฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์๋๋ก ์ค์ .
- ํน์ง:
- ๋คํธ์ํฌ ๊ฒฉ๋ฆฌ๊ฐ ํ์ํ๊ฑฐ๋, ๋คํธ์ํฌ ์์ด ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉ.
- ์์:
docker run --network none nginx
5. Custom ๋คํธ์ํฌ
- ์ค๋ช : ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ๋คํธ์ํฌ.
- ํน์ง:
- ๋คํธ์ํฌ์ ์๋ธ๋ท, ๊ฒ์ดํธ์จ์ด ๋ฑ ์ธ๋ถ ์ค์ ๊ฐ๋ฅ.
- ์ปจํ ์ด๋๋ผ๋ฆฌ ์ด๋ฆ ๊ธฐ๋ฐ์ผ๋ก ํต์ (DNS) ๊ฐ๋ฅ.
- ์์:
docker network create my-custom-network
docker run --network my-custom-network --name app-container nginx
Docker ๋คํธ์ํฌ ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ
1. ๋คํธ์ํฌ ํ์ธ
ํ์ฌ Docker์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋คํธ์ํฌ๋ฅผ ํ์ธํฉ๋๋ค.
docker network ls
์ถ๋ ฅ ์์:
NETWORK ID NAME DRIVER SCOPE
d036b3cbe30a bridge bridge local
5da38442164a host host local
fdddb8422404 none null local
2. ๋คํธ์ํฌ ์์ฑ
์๋ก์ด ๋คํธ์ํฌ๋ฅผ ์์ฑํฉ๋๋ค.
docker network create my-network
3. ์ปจํ ์ด๋ ์ฐ๊ฒฐ
์ปจํ ์ด๋๋ฅผ ์์ฑํ ๋ ํน์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํฉ๋๋ค.
docker run --network my-network --name my-app nginx
4. ๊ธฐ์กด ์ปจํ ์ด๋ ์ฐ๊ฒฐ
์คํ ์ค์ธ ์ปจํ ์ด๋๋ฅผ ๊ธฐ์กด ๋คํธ์ํฌ์ ์ฐ๊ฒฐํฉ๋๋ค.
docker network connect my-network my-app
5. ๋คํธ์ํฌ ์ญ์
์ฌ์ฉํ์ง ์๋ ๋คํธ์ํฌ๋ฅผ ์ญ์ ํฉ๋๋ค.
docker network rm my-network
Docker ๋คํธ์ํฌ ์ค์ต ์์
์์ 1: ๋จ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํฌ ๊ตฌ์ฑ
์น ์๋ฒ(Nginx)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(MySQL)๋ฅผ ๊ฐ์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํฉ๋๋ค.
# ๋คํธ์ํฌ ์์ฑ
docker network create app-network
# ์ปจํ
์ด๋ ์คํ
docker run --network app-network --name web-server nginx
docker run --network app-network --name db-server mysql
์ด๋ ๊ฒ ํ๋ฉด web-server์ db-server๊ฐ app-network ์์์ ํต์ ํ ์ ์์ต๋๋ค.
์์ 2: ์ปจํ ์ด๋ ๊ฐ ์ด๋ฆ ๊ธฐ๋ฐ ํต์
๊ฐ์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ปจํ ์ด๋๋ DNS๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฆ์ผ๋ก ํต์ ํ ์ ์์ต๋๋ค.
# ์ปจํ
์ด๋ ๋ด๋ถ์์ db-server๋ก Ping ํ
์คํธ
docker exec -it web-server ping db-server
Docker ๋คํธ์ํฌ์ ์ฅ์
- ์ ์ฐํ ํต์ ์ค์ : ๋จ์ผ ํธ์คํธ๋ถํฐ ๋ถ์ฐ ์์คํ ๊น์ง ๋ค์ํ ํต์ ์ค์ ๊ฐ๋ฅ.
- ๋ณด์ ๊ฐํ: ๋คํธ์ํฌ๋ฅผ ๊ฒฉ๋ฆฌํ๊ฑฐ๋ ์ธ๋ถ ์ ๊ทผ์ ์ ํํ์ฌ ๋ณด์์ฑ์ ๋์ผ ์ ์์.
- ํ์ฅ์ฑ ์ ๊ณต: ์ฌ๋ฌ ์ปจํ ์ด๋์ ํธ์คํธ์ ๊ฑธ์น ๋ณต์กํ ๋คํธ์ํฌ ๊ตฌ์ฑ ๊ฐ๋ฅ.
๋ง๋ฌด๋ฆฌ
Docker ๋คํธ์ํฌ๋ ์ปจํ ์ด๋ ํ๊ฒฝ์์ ํต์ ๊ณผ ๋ณด์์ ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ํ ๋๊ตฌ์ ๋๋ค. ๋คํธ์ํฌ ์ ํ๊ณผ ์ค์ ๋ฐฉ๋ฒ์ ์ดํดํ๋ฉด, ๋ ์ ์ฐํ๊ณ ํจ์จ์ ์ธ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
'๐ณ Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Docker] ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ ๋น๊ต (0) | 2024.11.27 |
|---|---|
| [Docker] ๋์ปค๋ก Jenkins๐ ์๋ฒ ๋ง๋ค์ด๋ณด๊ธฐ (0) | 2024.11.20 |
| [Docker] ๋์ปค๋ก MySQL DB๐ฆ ์๋ฒ ๋ง๋ค์ด๋ณด๊ธฐ (2) | 2024.08.18 |
| [Docker] ๋์ปค๐ณ ๊ฐ๋ ์ก๊ธฐ (0) | 2024.08.16 |