DNS issues in user-defined docker networks

Đang mở
#575 10 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
50/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
docker, go
Lĩnh vực
networking

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện các lệnh mạng Docker và container urunc đã cung cấp, sau đó kiểm tra /etc/resolv.conf và chạy nslookup github.com bên trong container. Được xem là hoàn tất khi việc phân giải DNS hoạt động đối với các container dựa trên urunc trên các mạng Docker do người dùng định nghĩa mà không gặp các lỗi từ chối kết nối và hết thời gian chờ được mô tả.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

K8s/Tools Network

The DNS resolution for urunc-based containers which start in a user-defined network of docker does not work. To reproduce the issue:

  1. Create a new network in docker.
$ sudo docker network create -d bridge my-bridge-network
74bc6ad05c22bdec6267fe95d27b3c3ac13be3bda89c73463890068893bbbaff
  1. Start a urunc container in this network:
$ sudo docker run --rm --network my-bridge-network -it --runtime io.containerd.urunc.v2 harbor.nbfc.io/nubificus/urunc/busybox-qemu-linux-raw:latest
  1. From inside the container try to resolve any domain:
# nslookup github.com
nslookup: write to '127.0.0.11': Connection refused
;; connection timed out; no servers could be reached

As shown from nslookup, the DNS request goes to 127.0.0.11. Also the /etc/resolv.conf of the container:

# cat /etc/resolv.conf 
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 127.0.0.11
...

This happens because docker sets up an internal DNS server which listens at localhost for each container inside the network namespace (See https://docs.docker.com/engine/network/#dns-services). Therefore, when docker sets the localhost as a DNS server in /etc/resolv.conf, a urunc based container does not communicate with the localhost of the network namespace in the host, but with the localhost inside the sandbox and hence the request fails.

Ngôn ngữ chính
Go
Star
308
Fork
222
Merge trung bình
2 ngày 13 giờ
Pull request đã merge (30 ngày)
43

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của urunc-dev/urunc

Tất cả issue của urunc-dev/urunc

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.