Looking in indexes: xxx WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None

docker 构建python程序报错

Step 7/10 : RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn --default-timeout=20 --no-cache-dir -r requirements.txt
 ---> Running in 2fe1512d82e8
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa7b89c4160>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/certifi/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa7b8618c10>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/certifi/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa7b867da90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/certifi/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa7b867da00>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/certifi/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fa7b867d970>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/certifi/
ERROR: Could not find a version that satisfies the requirement certifi==2022.6.15 (from versions: none)
ERROR: No matching distribution found for certifi==2022.6.15

本次测试、另一台服务器测试没问题。公司通过虚拟镜像搞的服务器出现问题,怀疑是配置

查看linux本身环境dns配置

cat /etc/resolv.conf
# 
nameserver 218.1.23.333

进入/etc/docker/下

cd /etc/docker

修改daemon.json文件(增加dns配置)如下

{
"insecure-registries": ["218.1.23.333:8089"],
"registry-mirrors": ["https://4xtasccp.mirror.aliyuncs.com"],
"dns":["218.1.23.333"]
}

重新加载配置文件

systemctl daemon-reload

重启docker生效

systemctl restart docker

重新构建python镜像

完成

补充docker daemon.json配置相关说明

{
    "api-cors-header": "",
    "authorization-plugins": [],
    "bip": "",
    "bridge": "",
    "cgroup-parent": "",
    "cluster-store": "",
    "cluster-store-opts": {},
    "cluster-advertise": "",
    "debug": true,            # 启用debug的模式,启用后,可以看到很多的启动信息,默认false
    "default-gateway": "",
    "default-gateway-v6": "",
    "default-runtime": "runc",
    "default-ulimits": {},
    "disable-legacy-registry": false,
    "dns": [
        "192.168.1.1"
    ],  # 设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看
    "dns-opts": [],        # 容器 /etc/resolv.conf 文件,其他设置
    "dns-search": [],      # 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS不仅搜索host,还会搜索host.example.com 。 注意:如果不设置, Docker 会默认用主机上的 /etc/resolv.conf 来配置容器
    "exec-opts": [],
    "exec-root": "",
    "fixed-cidr": "",
    "fixed-cidr-v6": "",
    "graph": "/var/lib/docker",      # 已废弃,使用data-root代替,这个主要看docker的版本
    "data-root": "/var/lib/docker",  # Docker运行时使用的根路径,默认/var/lib/docker
    "group": "",                    # Unix套接字的属组,仅指/var/run/docker.sock
    "hosts": [],                    # 设置容器hosts
    "icc": false,
    "insecure-registries": [],      # 配置docker的私库地址
    "ip": "0.0.0.0",
    "iptables": false,
    "ipv6": false,
    "ip-forward": false,  # 默认true, 启用 net.ipv4.ip_forward ,进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看
    "ip-masq": false,
    "labels": [
        "nodeName=node-121"
    ],  # docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121
    "live-restore": true,
    "log-driver": "",
    "log-level": "",
    "log-opts": {},
    "max-concurrent-downloads": 3,
    "max-concurrent-uploads": 5,
    "mtu": 0,
    "oom-score-adjust": -500,
    "pidfile": "",    # Docker守护进程的PID文件
    "raw-logs": false,
    "registry-mirrors": [
        "xxxx"
    ],  # 镜像加速的地址,增加后在 docker info中可查看
    "runtimes": {
        "runc": {
            "path": "runc"
        },
        "custom": {
            "path": "/usr/local/bin/my-runc-replacement",
            "runtimeArgs": [
                "--debug"
            ]
        }
    },
    "selinux-enabled": false,  # 默认 false,启用selinux支持
    "storage-driver": "",
    "storage-opts": [],
    "swarm-default-advertise-addr": "",
    "tls": true,      # 默认false, 启动TLS认证开关
    "tlscacert": "",  # 默认~/.docker/ca.pem,通过CA认证过的的certificate文件路径
    "tlscert": "",    # 默认~/.docker/cert.pem,TLS的certificate文件路径
    "tlskey": "",      # 默认~/.docker/key.pem,TLS的key文件路径
    "tlsverify": true, # 默认false,使用TLS并做后台进程与客户端通讯的验证
    "userland-proxy": false,
    "userns-remap": ""
}

你可能感兴趣的:(python,docker,pip,docker,容器,linux,python)