์ด๋ฒ ํฌ์คํธ์์๋ Docker ๋คํธ์ํฌ์ ๋ํด ์ฌ๋ ์๊ฒ ๋ค๋ฃจ์ด๋ณด๊ฒ ์ต๋๋ค.
Docker ๋คํธ์ํฌ๋ ์ปจํ ์ด๋ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
์ด ๊ธ์์๋ Docker ๋คํธ์ํฌ์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ถํฐ ์ค์ต ์์ ๊น์ง ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
Docker ๋คํธ์ํฌ๋?
Docker ๋คํธ์ํฌ๋ ์ปจํ ์ด๋ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค. Docker๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ช ๊ฐ์ง ํ์ค ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ํตํด ์ปจํ ์ด๋๋ค์ด ์๋ก ๋๋ ํธ์คํธ์ ํต์ ํ ์ ์๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
Docker ๋คํธ์ํฌ๋ฅผ ํ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ ์์๋ค์ ์ ์ฐํ๊ฒ ์ฐ๊ฒฐํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ Docker ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น์?
- ๊ฒฉ๋ฆฌ: ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๋์ ๋คํธ์ํฌ๋ก ๊ฒฉ๋ฆฌํ์ฌ ๋ณด์์ ๊ฐํํ ์ ์์ต๋๋ค.
- ์ ์ฐ์ฑ: ์ปจํ ์ด๋๋ฅผ ๋ค์ํ ๋คํธ์ํฌ์ ์ฝ๊ฒ ์ฐ๊ฒฐํ๊ฑฐ๋ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
- ํ์ฅ์ฑ: ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋๋ผ๋ ๋คํธ์ํฌ ์ค์ ์ ํตํด ์์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
Docker ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ
Docker๋ ์ฌ๋ฌ ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๊ฐ๊ฐ์ ๋๋ผ์ด๋ฒ๋ ํน์ ํ ๋คํธ์ํน ์๊ตฌ์ฌํญ์ ์ถฉ์กฑ์ํต๋๋ค.
์ฃผ์ ๋๋ผ์ด๋ฒ๋ Bridge, Host, None์ด๋ฉฐ, ์ด ์ธ์๋ ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Bridge
Bridge ๋คํธ์ํฌ๋ Docker์ ๊ธฐ๋ณธ ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ๋ก, ๋์ผํ ํธ์คํธ ๋ด์์ ์ฌ๋ฌ ์ปจํ ์ด๋๊ฐ ์๋ก ํต์ ํ ์ ์๋๋ก ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑ๋๋ bridge ๋คํธ์ํฌ๊ฐ ์ด์ ํด๋นํฉ๋๋ค.
- ํน์ง:
- ๊ฐ ์ปจํ ์ด๋๋ ๊ณ ์ ์ IP ์ฃผ์๋ฅผ ํ ๋น๋ฐ์ต๋๋ค.
- ์ปจํ ์ด๋ ์ด๋ฆ์ ํตํด ์ํธ ํต์ ํ ์ ์์ต๋๋ค.
- ๊ฒฉ๋ฆฌ๋ ๋คํธ์ํฌ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
Host
Host ๋คํธ์ํฌ๋ ์ปจํ ์ด๋๊ฐ ํธ์คํธ์ ๋์ผํ ๋คํธ์ํฌ ์คํ์ ๊ณต์ ํ๋๋ก ํฉ๋๋ค.
์ฆ, ์ปจํ ์ด๋๋ ํธ์คํธ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์ง์ ์ฌ์ฉํฉ๋๋ค.
- ํน์ง:
- ๋คํธ์ํฌ ์ฑ๋ฅ์ด ํฅ์๋ ์ ์์ต๋๋ค.
- ํฌํธ ๋งคํ์ด ํ์ ์์ต๋๋ค.
- ์ปจํ ์ด๋์ ํธ์คํธ ๊ฐ์ ์์ ํ ๋คํธ์ํฌ ๊ณต์ .
None
None ๋คํธ์ํฌ๋ ์ปจํ ์ด๋์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.
๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ์ ํ ์๋ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ ์ํ ๋ ์ฌ์ฉํฉ๋๋ค.
- ํน์ง:
- ๋คํธ์ํฌ ๊ฒฉ๋ฆฌ.
- ์ปจํ ์ด๋ ๊ฐ ํต์ ๋ถ๊ฐ.
- ๋ณด์ ๊ฐํ์ ์ ์ฉ.
Docker ๋คํธ์ํฌ ๊ด๋ฆฌ
Docker ๋คํธ์ํฌ๋ฅผ ์์ฑ, ์ญ์ , ๋ชฉ๋ก ํ์ธ ๋ฑ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋คํธ์ํฌ ๋ชฉ๋ก ํ์ธํ๊ธฐ
ํ์ฌ Docker์ ์์ฑ๋ ๋ชจ๋ ๋คํธ์ํฌ๋ฅผ ํ์ธํ๋ ค๋ฉด docker network ls ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
docker network ls
์์ ์ถ๋ ฅ
NETWORK ID NAME DRIVER SCOPE
ad3b106567c1 bridge bridge local
2977184da9cf host host local
667542d81661 none null local
- bridge: ๊ธฐ๋ณธ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ.
- host: ํธ์คํธ ๋คํธ์ํฌ.
- none: ๋คํธ์ํฌ๊ฐ ์๋ ์ปจํ ์ด๋๋ฅผ ์ํ ๋คํธ์ํฌ.
๋คํธ์ํฌ ์์ฑํ๊ธฐ
์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๋ ค๋ฉด docker network create ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ ๋๋ผ์ด๋ฒ๋ bridge์ ๋๋ค.
docker network create my-first-network
์คํ ๊ฒฐ๊ณผ
8b6061ee68673cde9ee5ff37695c85a7f71f052e61bbc8b6457888023c831f11
์์ฑ๋ ๋คํธ์ํฌ๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ docker network ls๋ฅผ ์คํํฉ๋๋ค.
docker network ls
์์ ์ถ๋ ฅ
NETWORK ID NAME DRIVER SCOPE
ad3b106567c1 bridge bridge local
2977184da9cf host host local
8b6061ee6867 my-first-network bridge local
667542d81661 none null local
๋คํธ์ํฌ ์ญ์ ํ๊ธฐ
์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ๋ docker network rm ๋ช ๋ น์ด๋ก ์ญ์ ํ ์ ์์ต๋๋ค.
๋จ, ๊ธฐ๋ณธ ์ ๊ณต๋๋ ๋คํธ์ํฌ (bridge, host, none)๋ ์ญ์ ํ ์ ์์ต๋๋ค.
docker network rm my-first-network
์คํ ๊ฒฐ๊ณผ
my-first-network
์ญ์ ๋ ๋คํธ์ํฌ๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ docker network ls๋ฅผ ์คํํฉ๋๋ค.
docker network ls
์์ ์ถ๋ ฅ
NETWORK ID NAME DRIVER SCOPE
ad3b106567c1 bridge bridge local
2977184da9cf host host local
667542d81661 none null local
์ฃผ์์ฌํญ: ๊ธฐ๋ณธ ์ ๊ณต๋๋ ๋คํธ์ํฌ๋ ์ญ์ ํ ์ ์์ผ๋ฉฐ, ์ญ์ ์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
docker network rm bridge
์คํ ๊ฒฐ๊ณผ
Error response from daemon: bridge is a pre-defined network and cannot be removed
์ปจํ ์ด๋์ ๋คํธ์ํฌ ์ฐ๊ฒฐํ๊ธฐ
์ปจํ ์ด๋๋ฅผ ์์ฑํ ๋ ๋คํธ์ํฌ๋ฅผ ์ง์ ํ๊ฑฐ๋, ์คํ ์ค์ธ ์ปจํ ์ด๋์ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๋คํธ์ํฌ ์ต์ ์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์คํํ๊ธฐ
์ปจํ ์ด๋๋ฅผ ์คํํ ๋ --network ์ต์ ์ ์ฌ์ฉํ์ฌ ํน์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
--network mbti-network \
daehyunbigbread/mbti:embedded-db
๋ช ๋ น์ด ์ค๋ช
- --name mbti: ์ปจํ ์ด๋ ์ด๋ฆ์ mbti๋ก ์ง์ .
- -e PORT=3000: PORT ํ๊ฒฝ ๋ณ์๋ฅผ 3000์ผ๋ก ์ค์ .
- --rm: ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ์ญ์ .
- -d: ์ปจํ ์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ.
- --network mbti-network: mbti-network ๋คํธ์ํฌ์ ์ฐ๊ฒฐ.
- daehyunbigbread/mbti:embedded-db: ์คํํ Docker ์ด๋ฏธ์ง.
๊ธฐ์กด ์ปจํ ์ด๋์ ๋คํธ์ํฌ ์ฐ๊ฒฐํ๊ธฐ
์ปจํ ์ด๋ ์คํ ์ ๋คํธ์ํฌ ์ต์ ์ ์ง์ ํ์ง ์์๋ค๋ฉด, ๋์ค์ docker network connect ๋ช ๋ น์ด๋ก ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
docker network connect mbti-network mbti
๋ช ๋ น์ด ์ค๋ช
- mbti-network: ์ฐ๊ฒฐํ ๋คํธ์ํฌ ์ด๋ฆ.
- mbti: ์ฐ๊ฒฐํ ์ปจํ ์ด๋ ์ด๋ฆ.
์ปจํ ์ด๋ ๋คํธ์ํฌ ์ ๋ณด ํ์ธํ๊ธฐ
์ปจํ ์ด๋์ ๋คํธ์ํฌ ์ค์ ์ ํ์ธํ๋ ค๋ฉด docker container inspect ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
docker container inspect mbti
์ฃผ์ ์ ๋ณด ํ์ธ
"NetworkSettings": {
"Networks": {
"mbti-network": {
"IPAddress": "172.19.0.2",
"Aliases": [
"mbti-network",
"c499727720e4"
]
}
}
}
- IPAddress: ์ปจํ ์ด๋์ IP ์ฃผ์.
- Aliases: ์ปจํ ์ด๋์ DNS ์ด๋ฆ (์ปจํ ์ด๋ ์ด๋ฆ ๋ฐ ๊ณ ์ ID).
๋คํธ์ํฌ ๋ด ์ปจํ ์ด๋ ๊ฐ ํต์
๊ฐ์ ๋คํธ์ํฌ์ ์ํ ์ปจํ ์ด๋๋ค์ ์ปจํ ์ด๋ ์ด๋ฆ์ผ๋ก ์๋ก๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
์ด๋ฅผ ํตํด IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์์ฝ๊ฒ ํต์ ํ ์ ์์ต๋๋ค.
ํฌํธ ๋งคํ ๋ฐ ๋ ธ์ถ
์ปจํ ์ด๋์ ๋ด๋ถ ํฌํธ๋ฅผ ํธ์คํธ์ ๋ ธ์ถํ์ฌ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์ด๋ฅผ ํฌํธ ๋งคํ (Port Mapping) ๋๋ ํฌํธ ๋ฐ์ธ๋ฉ (Port Binding)์ด๋ผ๊ณ ํฉ๋๋ค.
ํฌํธ ๋งคํ ์ค์
์ปจํ ์ด๋๋ฅผ ์คํํ ๋ -p ์ต์ ์ ์ฌ์ฉํ์ฌ ํฌํธ๋ฅผ ๋งคํํ ์ ์์ต๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
-p 3003:3000 \
daehyunbigbread/mbti:embedded-db
๋ช ๋ น์ด ์ค๋ช
- -p 3003:3000: ํธ์คํธ์ 3003 ํฌํธ๋ฅผ ์ปจํ ์ด๋์ 3000 ํฌํธ์ ๋งคํ.
ํ์ธ ๋ฐฉ๋ฒ
docker container ls
์์ ์ถ๋ ฅ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61676ab5ccbc daehyunbigbread/mbti:embedded-db "npm run start" 5 seconds ago Up 5 seconds 0.0.0.0:3003->3000/tcp mbti
- PORTS: 0.0.0.0:3003->3000/tcp๋ ํธ์คํธ์ ๋ชจ๋ ์ธํฐํ์ด์ค์์ 3003 ํฌํธ๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ ์ปจํ ์ด๋์ 3000 ํฌํธ๋ก ์ ๋ฌํจ์ ์๋ฏธํฉ๋๋ค.
Expose ์ต์
EXPOSE ์ง์์ด๋ Dockerfile์์ ์ฌ์ฉ๋๋ฉฐ, ์ปจํ ์ด๋๊ฐ ํน์ ํฌํธ๋ฅผ ์ฒญ์ทจํ๊ณ ์์์ ๋ช ์ํฉ๋๋ค.
์ด๋ ๋ฌธ์ํ ๋ชฉ์ ์ด๋ฉฐ, ์ค์ ๋ก ํฌํธ๋ฅผ ๊ณต๊ฐํ์ง๋ ์์ต๋๋ค.
EXPOSE 3000
์ปจํ ์ด๋ ์คํ ์ --expose ์ต์ ์ ์ฌ์ฉํ์ฌ ํน์ ํฌํธ๋ฅผ ๋ ธ์ถํ ์๋ ์์ต๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
--expose 3000 \
daehyunbigbread/mbti:embedded-db
ํ์ธ ๋ฐฉ๋ฒ
docker container inspect mbti
์์ ์ถ๋ ฅ
"Config": {
"ExposedPorts": {
"3000/tcp": {}
}
}
์ฃผ์์ฌํญ: EXPOSE๋ ํฌํธ๋ฅผ ๊ณต๊ฐํ์ง ์์ผ๋ฉฐ, ์ค์ ์ ๊ทผ์ ์ํ ๊ฒฝ์ฐ -p ์ต์ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์์ : ๋คํธ์ํฌ ๊ฐ ํต์ ํ ์คํธ
์ค์ ๋ก ๋คํธ์ํฌ๋ฅผ ์์ฑํ๊ณ , ๋ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์๋ก ๋ค๋ฅธ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ํ, ๋คํธ์ํฌ ๊ฐ ํต์ ์ ํ ์คํธํด๋ณด๊ฒ ์ต๋๋ค.
๋คํธ์ํฌ ์์ฑ
๋จผ์ , ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ๋ฅผ ์์ฑํฉ๋๋ค.
docker network create mbti-network
์คํ ๊ฒฐ๊ณผ
5d54f1726b1fcfb9d1874d33f55ea5b81c08956df37ae4004fb559cfd82bb207
์ปจํ ์ด๋ ์คํ
์ปจํ ์ด๋ #1: mbti-with-bridge-network
๊ธฐ๋ณธ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ์ ์ํ ์ปจํ ์ด๋๋ฅผ ์คํํฉ๋๋ค.
docker container run \
--name mbti-with-bridge-network \
-e PORT=3000 \
--rm \
-d \
daehyunbigbread/mbti:embedded-db
์ปจํ ์ด๋ #2: mbti-with-mbti-network
์ฌ์ฉ์ ์ ์ mbti-network์ ์ํ ์ปจํ ์ด๋๋ฅผ ์คํํฉ๋๋ค.
docker container run \
--name mbti-with-mbti-network \
-e PORT=3000 \
--rm \
-d \
--network mbti-network \
daehyunbigbread/mbti:embedded-db
์ปจํ ์ด๋ ๋คํธ์ํฌ ์ ๋ณด ํ์ธ
๊ฐ ์ปจํ ์ด๋์ IP ์ฃผ์์ DNS ์ด๋ฆ์ ํ์ธํฉ๋๋ค.
์ปจํ ์ด๋ #1: mbti-with-bridge-network
docker container inspect mbti-with-bridge-network
์ฃผ์ ์ ๋ณด
"NetworkSettings": {
"Networks": {
"bridge": {
"IPAddress": "172.17.0.2",
"Aliases": null
}
}
}
- IPAddress: 172.17.0.2
- Aliases: ๊ธฐ๋ณธ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ๋ DNS ์ด๋ฆ์ ์ ๊ณตํ์ง ์์.
์ปจํ ์ด๋ #2: mbti-with-mbti-network
docker container inspect mbti-with-mbti-network
์ฃผ์ ์ ๋ณด
"NetworkSettings": {
"Networks": {
"mbti-network": {
"IPAddress": "172.18.0.2",
"DNSNames": "mbti-with-mbti-network"
}
}
}
- IPAddress: 172.18.0.2
- DNSNames: mbti-with-mbti-network
๋คํธ์ํฌ ๊ฐ ํต์ ํ ์คํธ
๊ธฐ๋ณธ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ์ ์ํ ์ปจํ ์ด๋์์ mbti-with-bridge-network ์ปจํ ์ด๋์ ์์ฒญ ๋ณด๋ด๊ธฐ
๊ธฐ๋ณธ ๋คํธ์ํฌ์ ์ปจํ ์ด๋๋ ๋ค๋ฅธ ๋คํธ์ํฌ์ ์ํ ์ปจํ ์ด๋์ ์ง์ ํต์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋์ผ ๋คํธ์ํฌ ๋ด์์ IP๋ฅผ ํตํด ์ ๊ทผํ ์ ์์ต๋๋ค.
docker container run \
--rm \
-it \
curlimages/curl \
curl 172.17.0.2:3000/api/healthcheck
์คํ ๊ฒฐ๊ณผ
{"status":"ok"}%
์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ์ ์ํ ์ปจํ ์ด๋์์ mbti-with-mbti-network ์ปจํ ์ด๋์ ์์ฒญ ๋ณด๋ด๊ธฐ
docker container run \
--rm \
-it \
--network mbti-network \
curlimages/curl \
curl mbti-with-mbti-network:3000/api/healthcheck
์คํ ๊ฒฐ๊ณผ
{"status":"ok"}%
์ค๋ช :
- ๊ธฐ๋ณธ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ ์ปจํ ์ด๋ (172.17.0.2): ์ง์ IP๋ฅผ ํตํด ์ ๊ทผ.
- ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ ์ปจํ ์ด๋ (mbti-with-mbti-network): ์ปจํ ์ด๋ ์ด๋ฆ์ ํตํด ์ ๊ทผ ๊ฐ๋ฅ.
ํฌํธ ๋ฐ์ธ๋ฉ์ ํตํ ์ธ๋ถ ์ ๊ทผ
์ปจํ ์ด๋์ ํฌํธ๋ฅผ ํธ์คํธ์ ๋งคํํ์ฌ ์ธ๋ถ์์๋ ์ ๊ทผํ ์ ์๋๋ก ์ค์ ํฉ๋๋ค.
docker container run \
--name mbti \
-e PORT=3000 \
--rm \
-d \
-p 3003:3000 \
daehyunbigbread/mbti:embedded-db
ํ์ธ ๋ฐฉ๋ฒ
docker container ls
์์ ์ถ๋ ฅ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61676ab5ccbc daehyunbigbread/mbti:embedded-db "npm run start" 5 seconds ago Up 5 seconds 0.0.0.0:3003->3000/tcp mbti
- PORTS: 0.0.0.0:3003->3000/tcp๋ ํธ์คํธ์ 3003 ํฌํธ๊ฐ ์ปจํ ์ด๋์ 3000 ํฌํธ๋ก ๋งคํ๋จ์ ์๋ฏธํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์์ ํ์ธ
๋ธ๋ผ์ฐ์ ์์ http://localhost:3003/home์ผ๋ก ์ ์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์์ ์ผ๋ก ์คํ๋๋์ง ํ์ธํฉ๋๋ค.
์ถ๊ฐ ํ ๋ฐ ์ฃผ์์ฌํญ
Docker ๋คํธ์ํฌ๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ํ๊ณผ ์ฃผ์์ฌํญ์ ์๊ฐํฉ๋๋ค.
์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ ์ฌ์ฉ ๊ถ์ฅ
- DNS ์ด๋ฆ ์ฌ์ฉ: ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ ์ด๋ ์ด๋ฆ์ผ๋ก ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ด IP ์ฃผ์๋ฅผ ์ง์ ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
- ๊ฒฉ๋ฆฌ ๋ฐ ๋ณด์: ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ๋ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์๋น์ค ๊ทธ๋ฃน์ ๊ฒฉ๋ฆฌํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
ํฌํธ ๋งคํ๊ณผ Expose์ ์ฐจ์ด ์ดํดํ๊ธฐ
- Port Mapping (-p): ํธ์คํธ์ ์ปจํ ์ด๋ ๊ฐ์ ํฌํธ๋ฅผ ๋งคํํ์ฌ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๋๋ก ํฉ๋๋ค.
- Expose (--expose): Dockerfile์ด๋ ์คํ ์ ํฌํธ๋ฅผ ๋ ธ์ถํ์ง๋ง, ์ค์ ๋ก๋ ํธ์คํธ์ ๋งคํ๋์ง ์์ต๋๋ค. ์ด๋ ์ฃผ๋ก ๋ฌธ์ํ ๋ชฉ์ ์ ๋๋ค.
๋คํธ์ํฌ ๋๋ผ์ด๋ฒ ์ ํ
- Bridge: ๊ธฐ๋ณธ ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ๋ก, ๋๋ถ๋ถ์ ๋จ์ผ ํธ์คํธ ํ๊ฒฝ์์ ์ถฉ๋ถํฉ๋๋ค.
- Host: ๋คํธ์ํฌ ์ฑ๋ฅ์ด ์ค์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ์ง๋ง, ์ปจํ ์ด๋์ ํธ์คํธ ๊ฐ์ ์์ ํ ๋คํธ์ํฌ ๊ณต์ ๋ก ์ธํด ๋ณด์์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
- None: ์์ ํ ๋คํธ์ํฌ ๊ฒฉ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค.
๋คํธ์ํฌ ์ญ์ ์ ์ฃผ์์ฌํญ
๊ธฐ๋ณธ ์ ๊ณต๋๋ ๋คํธ์ํฌ (bridge, host, none)๋ ์ญ์ ํ ์ ์์ผ๋ฏ๋ก, ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ๋ง ์ญ์ ํ ์ ์์ต๋๋ค. ๋คํธ์ํฌ ์ญ์ ์ ํด๋น ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ปจํ ์ด๋๊ฐ ์ํฅ์ ๋ฐ์ ์ ์์ผ๋ฏ๋ก ์ ์คํ๊ฒ ๊ด๋ฆฌํ์ธ์.
๋ค์ค ๋คํธ์ํฌ ์ฐ๊ฒฐ
์ปจํ ์ด๋๋ ์ฌ๋ฌ ๋คํธ์ํฌ์ ๋์์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋ณต์กํ ํต์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
docker network connect another-network mbti
Docker ๋คํธ์ํฌ๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ทน๋ํํ๋ ํต์ฌ ์์์ ๋๋ค. ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ์ ์ดํด๋ถํฐ ์ปจํ ์ด๋ ๊ฐ์ ํต์ ์ค์ ๊น์ง, ์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๋ค ์ฒด๊ณ์ ์ด๊ณ ์์ ํ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฐธ๊ณ ์๋ฃ
- Docker ๊ณต์ ๋ฌธ์: https://docs.docker.com/
- Docker Network CLI Reference: Docker Network Commands
- Docker Hub: Docker Hub Container Image Library | App Containerization
- Next.js ๊ณต์ ๋ฌธ์: Next.js Documentation
- Docker Networking Best Practices: Networking Best Practices
'โ๏ธ Cloud Native > ๐ณ Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Docker Compose: ๋ค์ค ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌํ๊ธฐ (0) | 2025.01.17 |
---|---|
[Docker] Docker Volume: ๋์ปค ๋ณผ๋ฅจ, ์ปจํ ์ด๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ (0) | 2025.01.17 |
[Docker] Docker Container ์คํํ๊ธฐ: ๋จ๊ณ๋ณ ๊ฐ์ด๋ (0) | 2025.01.15 |
[Docker] Docker ์ด๋ฏธ์ง ๋น๋ & ๋ฐฐํฌ (0) | 2025.01.10 |
[Docker] Dockerfile ์์ฑํ๊ธฐ: ๋จ๊ณ๋ณ ๊ฐ์ด๋ (0) | 2025.01.10 |