Docker - Quản lý các cổng
Trong Docker, bản thân các vùng chứa có thể có các ứng dụng chạy trên các cổng. Khi bạn chạy vùng chứa, nếu bạn muốn truy cập ứng dụng trong vùng chứa thông qua số cổng, bạn cần ánh xạ số cổng của vùng chứa với số cổng của máy chủ Docker. Hãy xem một ví dụ về cách có thể đạt được điều này.
Trong ví dụ của chúng tôi, chúng tôi sẽ tải xuống vùng chứa Jenkins từ Docker Hub. Sau đó, chúng tôi sẽ ánh xạ số cổng Jenkins với số cổng trên máy chủ Docker.
Step 1 - Đầu tiên, bạn cần thực hiện đăng ký đơn giản trên Docker Hub.
Step 2 - Khi bạn đã đăng ký, bạn sẽ được đăng nhập vào Docker Hub.
Step 3 - Tiếp theo, chúng ta hãy duyệt và tìm hình ảnh Jenkins.
Step 4 - Nếu bạn cuộn xuống trên cùng một trang, bạn có thể thấy Docker pullchỉ huy. Điều này sẽ được sử dụng để tải Hình ảnh Jenkins xuống máy chủ Ubuntu cục bộ.
Step 5 - Bây giờ vào máy chủ Ubuntu và chạy lệnh -
sudo docker pull jenkins
Step 6 - Để hiểu những cổng nào được tiếp xúc bởi vùng chứa, bạn nên sử dụng Docker inspect command để kiểm tra hình ảnh.
Bây giờ chúng ta hãy tìm hiểu thêm về điều này inspect chỉ huy.
thanh tra bến tàu
Phương thức này cho phép một người trả về thông tin cấp thấp trên vùng chứa hoặc hình ảnh.
Cú pháp
docker inspect Container/Image
Tùy chọn
Container/Image - Hộp đựng hoặc hình ảnh để kiểm tra
Giá trị trả lại
Thông tin cấp thấp của hình ảnh hoặc vùng chứa ở định dạng JSON.
Thí dụ
sudo docker inspect jenkins
Đầu ra
Đầu ra của inspectlệnh cung cấp đầu ra JSON. Nếu chúng ta quan sát đầu ra, chúng ta có thể thấy rằng có một phần của "ExposedPorts" và thấy rằng có hai cổng được đề cập. Một làdata port của 8080 và cái kia là control port trong tổng số 50000.
Để chạy Jenkins và ánh xạ các cổng, bạn cần thay đổi Docker runvà thêm tùy chọn 'p' chỉ định ánh xạ cổng. Vì vậy, bạn cần chạy lệnh sau:
sudo docker run -p 8080:8080 -p 50000:50000 jenkins
Phía bên trái của ánh xạ số cổng là cổng máy chủ Docker để ánh xạ tới và phía bên phải là số cổng vùng chứa Docker.
Khi bạn mở trình duyệt và điều hướng đến máy chủ Docker trên cổng 8080, bạn sẽ thấy Jenkins đang hoạt động.