CodeGym /Các khóa học /Docker SELF /Xuất bản các cổng của container

Xuất bản các cổng của container

Docker SELF
Mức độ , Bài học
Có sẵn

4.1 Các khái niệm cơ bản về xuất bản cổng

Xuất bản cổng của container trong Docker cho phép các dịch vụ chạy bên trong container có thể được truy cập từ mạng bên ngoài hoặc từ host. Đây là một phần quan trọng khi cấu hình ứng dụng đa-container vì nó cho phép tương tác với các dịch vụ như web server, cơ sở dữ liệu và các ứng dụng mạng khác. Trong bài giảng này, chúng ta sẽ tìm hiểu cách xuất bản cổng cho container và cấu hình quyền truy cập vào các dịch vụ.

Các khái niệm cơ bản về xuất bản cổng

  • Mapping cổng: ánh xạ cổng từ host tới cổng của container.
  • Tham số -p/--publish: được sử dụng để chỉ định ánh xạ cổng khi khởi chạy container.
  • Tham số -P/--publish-all: tự động gán cổng host cho tất cả cổng của container được export.

Ví dụ sử dụng tham số -p

Khi khởi chạy container bạn có thể dùng tùy chọn -p để ánh xạ cổng từ host đến cổng của container. Cú pháp lệnh:

Terminal

docker run -d -p <host_port>:<container_port> <image> 

Ví dụ 1: Xuất bản cổng cho web server Nginx

Chạy một container với Nginx và xuất bản cổng 80 của container sang cổng 8080 của host.

Bây giờ Nginx sẽ có thể truy cập tại địa chỉ http://localhost:8080.

Terminal

docker run -d -p 8080:80 --name mynginx nginx 

Ví dụ 2: Xuất bản nhiều cổng

Bạn có thể xuất bản nhiều cổng bằng cách chỉ định nhiều tùy chọn -p.

Trong ví dụ này, Nginx sẽ có thể truy cập qua HTTP trên cổng 8080 và qua HTTPS trên cổng 8443.

Terminal

docker run -d -p 8080:80 -p 8443:443 --name mynginx nginx 

Ví dụ sử dụng tham số -P

Tham số -P tự động xuất bản tất cả các cổng được chỉ định trong Dockerfile hoặc cấu hình của container, sang các cổng ngẫu nhiên trên host.

Ví dụ:

Terminal

docker run -d -P --name mynginx nginx 

Để biết các cổng đã được chỉ định là gì, hãy sử dụng lệnh docker port:

Terminal

docker port mynginx

Dữ liệu xuất ra sẽ có dạng như sau:

Terminal

80/tcp -> 0.0.0.0:32768
443/tcp -> 0.0.0.0:32769

4.2 Xuất bản cổng trong Docker Compose

Để chỉ định các cổng trong Docker Compose, sử dụng directive ports trong file docker-compose.yml.

Ví dụ về file docker-compose.yml

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
      - "8443:443"

Khởi động Docker Compose:

Terminal

docker compose up -d 

Bây giờ Nginx sẽ có sẵn tại các địa chỉ http://localhost:8080https://localhost:8443.

4.3 Các tham số bổ sung để công bố cổng

1. Giới hạn địa chỉ IP

Bạn có thể giới hạn quyền truy cập vào cổng container bằng cách chỉ định địa chỉ IP của host.

Ví dụ:

Trong ví dụ này, Nginx chỉ có thể truy cập được từ host cục bộ qua địa chỉ http://127.0.0.1:8080.

Terminal

docker run -d -p 127.0.0.1:8080:80 --name mynginx nginx 

2. Sử dụng phạm vi cổng

Bạn có thể chỉ định phạm vi cổng để công bố.

Ví dụ:

Terminal

docker run -d -p 8080-8081:80-81 --name mynginx nginx 

Lời khuyên thực tế:

  • Chỉ công bố các cổng cần thiết: Chỉ công bố các cổng thực sự cần thiết để truy cập vào các dịch vụ, nhằm giảm thiểu các lỗ hổng tiềm ẩn.
  • Sử dụng firewall: Cấu hình firewall để giới hạn quyền truy cập vào các cổng được công bố từ các địa chỉ IP đáng tin cậy mà thôi.
  • Giám sát và ghi log: Sử dụng các công cụ giám sát và ghi log để theo dõi truy cập vào các cổng được công bố và phát hiện hoạt động đáng ngờ.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION