Điểm:1

Không thể làm cho hai vùng chứa docker giao tiếp

lá cờ us

Tôi đang cố gắng tạo hai vùng chứa giao tiếp trên một máy chủ giống như nó đang hoạt động trên máy của tôi.

Vấn đề là họ không thể giao tiếp (cố gắng ping vùng chứa B từ vùng chứa A)

Lần đầu tiên tôi tạo một Dockerfile đang sử dụng hình ảnh python. Lưu ý rằng tôi đang sử dụng --mạng=máy chủ tùy chọn để xây dựng vùng chứa này (không có tôi không thể tải các gói trên internet)

Tiếp theo, tôi có một soạn thảo docker tệp đang tạo hai vùng chứa bằng hình ảnh đã tạo trước đó.

MẠNG ID TÊN PHẠM VI TRÌNH ĐIỀU KHIỂN
939d3e6af24e cầu cầu địa phương
cầu 2d455afde6fc dcoflask_default cục bộ
97f17b13840c máy chủ lưu trữ cục bộ
0f40cabe1c02 không null cục bộ

Bằng cách kiểm tra mạng nơi 2 vùng chứa của tôi được đính kèm:

        "Hộp đựng": {
            "2fe15640751ac7f6dd7bfa20e2e646e44cc2c53fbfa25e8f4df25dfbc08adb9f": {
                "Tên": "mssql",
                "ID điểm cuối": "39d1a5429f676d990c52932eed8a66376f76b9cbbff9bcd53b256e1720798bfd",
                "MacAddress": "02:42:ac:12:00:02",
                "Địa chỉ IPv4": "172.18.0.2/16",
                "Địa chỉ IPv6": ""
            },
            "50fc9a1f4a4743f2a4e9f80cd2d73515bad4fed748360fc4a26f289c06f8b245": {
                "Tên": "web-dco",
                "ID điểm cuối": "7d389570b1c80fa7a1fbb4a633dabbb4f7afd0063acb6cd41f12fc56a290650c",
                "MacAddress": "02:42:ac:12:00:03",
                "Địa chỉ IPv4": "172.18.0.3/16",
                "Địa chỉ IPv6": ""
            }
        },

Chúng tôi có thể xác nhận rằng chúng nằm trên cùng một giao diện mạng.

Bằng cách đưa ra lệnh ping (từ vùng chứa web-dco), tôi không thể nhận được phản hồi từ vùng chứa khác (mssql)

PING mssql (172.18.0.2) 56(84) byte dữ liệu.
^C
--- thống kê ping mssql ---
Truyền 6 gói, nhận 0 gói, mất gói 100%, thời gian 125ms

Bằng cách đánh hơi một chút trên giao diện mạng được tạo cho mạng vùng chứa, tôi có thể thấy các yêu cầu nhưng không có phản hồi:

legrand.g@my-server:~$ Sudo tshark -i br-2d455afde6fc
Nhập mật khẩu cho MFA tương tác. Nếu không, hãy nhập mật khẩu theo sau là mã PingID gồm 6 chữ số:
Chạy với tư cách người dùng "root" và nhóm "root". Điều này có thể nguy hiểm.
Chụp trên 'br-2d455afde6fc'
    1 0,000000000 172.18.0.2 â 143.26.128.29 DNS 85 Truy vấn chuẩn 0x54a6 A vortex.data.microsoft.com
    2 4.001179175 172.18.0.2 â 192.44.120.10 DNS 85 Truy vấn chuẩn 0x54a6 A vortex.data.microsoft.com
    3 4.088081213 02:42:ac:12:00:02 â 02:42:40:e2:2c:15 ARP 42 Ai có 172.18.0.1? Cho biết 172.18.0.2
    4 4.088130713 02:42:40:e2:2c:15 â 02:42:ac:12:00:02 ARP 42 172.18.0.1 ở 02:42:40:e2:2c:15
    5 5.003686924 172.18.0.2 â 143.26.128.29 DNS 85 Truy vấn chuẩn 0x54a6 A vortex.data.microsoft.com
    6 9.004492793 172.18.0.2 â 192.44.120.10 DNS 85 Truy vấn chuẩn 0x54a6 A vortex.data.microsoft.com
Các gói ^C6 bị bắt

Cuối cùng, từ các bài viết trước về giao tiếp vùng chứa, tôi không thấy có gì sai trong iptables

-P CHẤP NHẬN ĐẦU VÀO
-P CHẤP NHẬN VỀ PHÍA TRƯỚC
-P CHẤP NHẬN ĐẦU RA
-N DOCKER
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N DOCKER-NGƯỜI DÙNG
-A INPUT -p tcp -m tcp --dport 22 -j CHẤP NHẬN
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o br-2d455afde6fc -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A PHÍA TRƯỚC -o br-2d455afde6fc -j DOCKER
-A PHÍA TRƯỚC -i br-2d455afde6fc ! -o br-2d455afde6fc -j CHẤP NHẬN
-A VỀ PHÍA TRƯỚC -i br-2d455afde6fc -o br-2d455afde6fc -j CHẤP NHẬN
-A FORWARD -o docker0 -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A FORWARD -o docker0 -j DOCKER
-A VỀ PHÍA TRƯỚC -i docker0 ! -o docker0 -j CHẤP NHẬN
-A FORWARD -i docker0 -o docker0 -j CHẤP NHẬN
-A ĐẦU RA -p tcp -m tcp --sport 22 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.2/32 ! -i br-2d455afde6fc -o br-2d455afde6fc -p tcp -m tcp --dport 1433 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.3/32 ! -i br-2d455afde6fc -o br-2d455afde6fc -p tcp -m tcp --dport 5000 -j CHẤP NHẬN
-A DOCKER-ISOLATION-STAGE-1 -i br-2d455afde6fc ! -o br-2d455afde6fc -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o br-2d455afde6fc -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN

Sự khác biệt duy nhất mà tôi có thể thấy giữa việc chạy các bộ chứa này trên máy của mình và trên máy chủ là trên máy của tôi, tôi không cần xây dựng Dockerfile với --mạng=máy chủ Tùy chọn.

Internet cũng không thể truy cập được, nhưng đây là một phần khác của vấn đề, trước tiên tôi muốn hiểu tại sao hai vùng chứa đơn giản không thể giao tiếp ngay cả khi chúng đang sử dụng cùng một mạng.

Chuyển tiếp N.B IP được bật:

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Đă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.