Điểm:7

Không thể cập nhật apt-get từ bên trong bộ chứa docker của tôi nếu được kết nối với mạng cầu nối

lá cờ gr

Tôi đang cố gắng để hiểu, tại sao tôi không thể chạy cập nhật apt-get từ bên trong các thùng chứa docker của tôi, hoặc debian:mới nhất hoặc Ubuntu: mới nhất.

  • tôi có thể ping 8.8.8.8 hoặc địa chỉ khác từ bên trong vùng chứa
  • tôi có thể truy cập google.com hoặc các miền khác từ bên trong vùng chứa
  • cập nhật apt-get hoạt động nếu tôi khởi động container với --máy chủ mạng
  • cập nhật apt-get không hoạt động nếu vùng chứa được kết nối với mặc định cầu mạng hoặc bất kỳ mạng nào do người dùng xác định khác có bộ điều hợp được đặt thành cầu nối
  • Máy chủ là một máy ảo được quản lý bởi openstack
  • Mọi thứ hoạt động như mong đợi trên máy tính của tôi (không phải openstack, không phải ảo)

cập nhật apt-get sẽ hết thời gian với:

root@66230c3e7572:/# cập nhật apt
Err:1 http://deb.debian.org/debian buster InRelease                           
  Kết nối không thành công [IP: 199.232.138.132 80]
Err:2 http://security.debian.org/debian-security buster/updates InRelease
  Kết nối không thành công [IP: 151.101.194.132 80]
Err:3 http://deb.debian.org/debian buster-updates InRelease              
  Kết nối không thành công [IP: 199.232.138.132 80]
Đọc danh sách gói... Xong
Xây dựng cây phụ thuộc       
Đang đọc thông tin trạng thái... Xong
Tất cả các gói được cập nhật.
W: Không thể tìm nạp http://deb.debian.org/debian/dists/buster/InRelease Kết nối không thành công [IP: 199.232.138.132 80]
W: Không thể tìm nạp http://security.debian.org/debian-security/dists/buster/updates/InRelease Kết nối không thành công [IP: 151.101.194.132 80]
W: Không thể tìm nạp http://deb.debian.org/debian/dists/buster-updates/InRelease Kết nối không thành công [IP: 199.232.138.132 80]
W: Một số tệp chỉ mục không tải xuống được. Họ đã bị bỏ qua, hoặc những người thân cũ được sử dụng để thay thế.

tôi muốn tìm hiểu tại sao apt-get cập nhật không hoạt động trong khi tôi kết nối với bất kỳ cầu mạng trên máy ảo. Vì vậy, bất kỳ gợi ý nào về cách gỡ lỗi sự cố này đều được đánh giá rất cao.

Michael Hampton avatar
lá cờ cz
Bạn đã làm điều này sáng hôm qua? Hãy thử lại ngay hôm nay. Điều này có vẻ liên quan đến sự cố mất điện nhanh chóng.
lá cờ gr
Nhanh chóng không phải là vấn đề, hành vi tương tự vẫn tồn tại. Tôi nhận thấy một cái gì đó khác: Mặc dù tôi có thể chạy `wget google.com` và lấy `index.html` nhưng tôi không thể `wget https://file-examples-com.github.io/uploads/2018/04/file_example_AVI_1920_2_3MG.avi` chẳng hạn .
Điểm:4
lá cờ gr

Sau nhiều giờ tôi đã có thể giải quyết vấn đề

MTU của mạng cầu nối của docker phải khớp với MTU của bộ điều hợp mạng của máy chủ

Trong trường hợp của tôi, MTU của eth0 (máy chủ) được đặt thành 1450 trong khi MTU của docker0 được đặt thành 1500

Bạn có thể thay đổi MTU bằng cách

Trong trường hợp bạn không có /etc/docker/daemon.json chỉ cần tạo một:

# /etc/docker/daemon.json
# điều chỉnh MTU phù hợp với bộ điều hợp mạng máy chủ

{
    "mtu":1450
}

Đừng quên khởi động lại docker.service: systemctl khởi động lại docker.service

Biết thêm chi tiết:

Nếu bạn không muốn kiểm tra cài đặt, hãy sử dụng ip và so sánh giá trị mtu

$ip một

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> **mtu 1450** trạng thái qdisc fq_codel UP nhóm mặc định qlen 1000
    ...
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> **mtu 1500** trạng thái qdisc noqueue DOWN nhóm mặc định 
    ...

Lưu ý rằng trạng thái docker0 luôn là 1500 và chỉ thay đổi giá trị nếu vùng chứa được kết nối với mạng đó

$ip một
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc trạng thái fq_codel UP nhóm mặc định qlen 1000
    ...
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 trạng thái qdisc noqueue UP nhóm mặc định 
    ...
17: vethe4b452f@if16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master docker0 trạng thái Nhóm UP mặc định 
    ...

Mạng tùy chỉnh

Tôi cũng đã cố gắng chỉ tạo một mạng tùy chỉnh với một MTU thay vì thiết lập MTU qua /etc/docker/daemon.json. Điều này đã không làm việc và tôi không biết tại sao

tạo mạng docker --opt com.docker.network.mtu=1450 CustomMTU

lá cờ iq
OH MY GOD cảm ơn bạn vì điều này ... Tôi đã thực sự mệt mỏi với những thất bại ngẫu nhiên này. Nhân tiện, tôi nghĩ rằng hầu hết mọi người sử dụng WireGuard VPN đều sẽ gặp sự cố này, vì vậy nếu bạn đang đọc phần này và đang sử dụng WG VPN, chỉ cần kiểm tra xem bạn đã định cấu hình chính xác chưa.

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