Docker Network: cho các container nói chuyện với nhau
VietDevOps
0:00 / 0:00
Docker Network: cho các container nói chuyện với nhau
9 просмотров · 3 дня назад
VietDevOps
1 подписчик
9 просмотров · 3 дня назад
Vì sao trong docker compose, app kết nối tới database chỉ bằng cái tên db mà không cần IP hay localhost? Video này giải thích Docker Network: mạng ảo nối các container lại với nhau — 3 loại network (bridge, host, none), demo ping container bằng tên, phân biệt publish port với giao tiếp nội bộ, cái bẫy localhost kinh điển, network tự động trong compose, và các lệnh quản lý network.
Trong video: bí ẩn tên db trong compose, 3 driver network chính (bridge/host/none) và lưu ý default bridge không có DNS, thực chiến docker network create + ping bằng tên, publish port (-p) so với giao tiếp nội bộ, bẫy DATABASE_HOST=localhost, compose tự tạo network project_default, các lệnh ls/create/inspect/connect/disconnect/prune, 3 cái bẫy thường gặp.
⏱ Mục lục:
00:00 – Mở đầu: bí ẩn — vì sao app gọi database bằng tên db?
01:38 – 3 loại network: bridge, host, none (và overlay)
03:04 – Thực chiến: tạo network, chạy 2 container, ping bằng tên
04:30 – Publish port và cái bẫy localhost
05:51 – Docker Compose tự tạo network riêng cho project
07:18 – Lệnh quản lý network + 3 cái bẫy thường gặp
08:44 – Tóm tắt + video tiếp theo: Docker Hub
💻 Lệnh và file trong video (copy dùng ngay):
-- Liệt kê và tạo network:
docker network ls
docker network create mynet
docker network inspect mynet
docker network rm mynet
docker network prune
-- Chạy 2 container cùng network, ping bằng tên (không cần publish port):
docker run -d --name web --network mynet nginx:alpine
docker run -d --name db --network mynet -e POSTGRES_PASSWORD=secret postgres:16-alpine
docker exec -it web ping -c 3 db
-- Gắn hoặc tháo container đang chạy vào network (không cần restart):
docker network connect mynet web
docker network disconnect mynet web
-- Publish port: mở cửa từ ngoài máy host vào container:
docker run -d --name web -p 8080:80 nginx:alpine
-- App gọi database: ĐÚNG dùng tên container, SAI dùng localhost:
docker run -d --name app --network mynet -e DATABASE_HOST=db myapp:1.0
-- Network trong docker-compose (compose tự tạo project_default):
services:
app:
image: myapp:1.0
environment:
DATABASE_HOST: db
db:
image: postgres:16-alpine
docker compose up -d
docker network ls
docker compose down
-- Dùng network có sẵn trong compose:
networks:
mynet:
external: true
📌 Video tiếp theo (video số 10): Đẩy image lên Docker Hub và GitHub Container Registry — để image của bạn đi được khắp nơi. Đăng ký kênh VietDevOps để không bỏ lỡ series Docker từ con số 0!
Kênh VietDevOps — DevOps • Cloud • AI, song ngữ Việt–Anh. Video nói tiếng Việt, có phụ đề tiếng Việt & tiếng Anh.
#docker #dockernetwork #dockercompose #devops #vietdevops #hocdocker #container #localhost #networking #cloud