Điểm:2

Docker Compose Port không bị lộ?

lá cờ vn

Tôi có một máy chủ web dựa trên Python đơn giản đang chạy trong một vùng chứa được thiết lập với trình soạn thảo docker hiển thị cổng 8080.

Khi tôi soạn các dịch vụ docker, nó báo cáo các cổng bị lộ nhưng cổng không bị lộ ra bên ngoài.

Tôi nên xem chẩn đoán gì tiếp theo?

Đây là một hoạt động điển hình

â demo04 Sudo docker-compose up -d
Tạo lại leagueweb_database... xong
Tạo lại leagueweb_server... xong

Máy chủ web Python (sử dụng CherryPy) báo cáo rằng nó đã khởi động bình thường và đã mở cổng 8080.

giải đấuweb_server | [25/Jan/2022:11:27:21] ENGINE Phục vụ trên http://127.0.0.1:8080

Docker báo cáo rằng nó đang chuyển tiếp cổng 8080

â demo04 sudo docker-compose ps
       Tên Lệnh Trạng thái Cổng
--------------------------------------------- --------------------------------------------- --------------------
leagueweb_database /entrypoint.sh mysqld Lên (khỏe mạnh) 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp
leagueweb_server ./wait-for-it.sh cơ sở dữ liệu: ... Lên 0.0.0.0:8080->8080/tcp,:::8080->8080/tcp

Kiểm tra điều này từ một PC từ xa, tôi có thể thấy rằng mặc dù cổng 3306 được mở từ bên ngoài nhưng cổng 8080 thì không.

PS C:> Test-NetConnection 192.168.1.132 -Port 3306
Địa chỉ từ xa : 192.168.1.132
Cổng từ xa: 3306
TcpTestSucceeded : Đúng

PS C:> Test-NetConnection 192.168.1.132 -Port 8080
CẢNH BÁO: Kết nối TCP với (192.168.1.132: 8080) không thành công

Tường lửa đã tắt

demo04 trạng thái sudo ufw
Tình trạng: không hoạt động

Đây là tập tin soạn thảo docker

phiên bản: '3'
dịch vụ:

    giải đấu web:
        # Cài đặt Python và các thư viện cần thiết với Dockerfile
        xây dựng:
            bối cảnh: .
            dockerfile: leagueweb.dockerfile
            
        khởi động lại: trừ khi dừng
        
        container_name: leagueweb_server
        
        # Không khởi động cho đến khi cơ sở dữ liệu được khởi động
        phụ thuộc:
            - cơ sở dữ liệu
        
        # Hiển thị cổng HTTP 
        cổng:
            - "8080:8080"

        # Gắn mã và tài nguyên web giải đấu
        khối lượng:
            - "/home/testuser/demo04/code:/leagueweb"
 
        # Chỉ khởi động máy chủ khi cơ sở dữ liệu đang chạy
        lệnh: ["./wait-for-it.sh", "database:3306", "--", "python", "-u", "/leagueweb/leagueweb.py"]
        

    cơ sở dữ liệu:
        # Sử dụng MySQL 5.7 làm cơ sở dữ liệu
        hình ảnh: mysql/mysql-server:5.7
        
        khởi động lại: trừ khi dừng
        
        container_name: leagueweb_database

        # Đặt biến môi trường để thiết lập cơ sở dữ liệu ban đầu
        môi trường:
            - "MYSQL_ROOT_PASSWORD=gốc"
            - "MYSQL_USER=leagueweb"
            - "MYSQL_PASSWORD=*********"
            - "MYSQL_DATABASE=leagueweb01"
            
        # Bỏ ghi chú để hiển thị cơ sở dữ liệu MySQL bên ngoài trên cổng 3306 cho 
        # thử nghiệm 
        cổng:
            - "3306:3306"

        # Mount file init.sql để tự động chạy và tạo bảng cho chúng ta.
        # mọi thứ trong thư mục docker-entrypoint-initdb.d được thực thi như 
        # ngay sau khi vùng chứa được thiết lập và chạy.
        khối lượng:
            - "/home/testuser/demo04/db:/docker-entrypoint-initdb.d"
Điểm:3
lá cờ cn

Điều này có vẻ như là một vấn đề:

ENGINE Phục vụ trên http://127.0.0.1:8080

Có vẻ như bạn cần cấu hình lại máy chủ python của mình để lắng nghe 0.0.0.0, không phải 127.0.0.1

evoelise avatar
lá cờ vn
Cảm ơn. Không thể tin rằng tôi đã không nhìn thấy điều đó - nó khiến tôi giật mình. Có vẻ như tôi đã quá tập trung vào việc nghĩ rằng đó là sự cố về thùng chứa.
lá cờ cn
Xảy ra với tất cả chúng ta!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.