【问题标题】:How to fix: yum install with error in docker container?如何修复:yum install 在 docker 容器中出错?
【发布时间】:2020-07-03 11:41:55
【问题描述】:

我只是想尝试在 centos:latest image 中安装 sshd。

我尝试安装“passwd”,输入如下命令:

yum install passwd

但我有这样的错误:

Failed to set locale, defaulting to C.UTF-8
CentOS-8 - AppStream                            0.0  B/s |   0  B     00:30    
Errors during downloading metadata for repository 'AppStream':
  - Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=container [Could not resolve host: mirrorlist.centos.org]
Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=container [Could not resolve host: mirrorlist.centos.org]

不知道为什么不能在 docker 容器中使用 yum 安装?

【问题讨论】:

  • 你之前做过yum update
  • @codingwithmanny 是的,我做到了。但同样的错误。
  • 很奇怪。 Docker 版本以及你在什么操作系统上运行它?
  • docker 版本 19.03.10,操作系统 linux CentOS 8

标签: docker yum


【解决方案1】:

伪装允许 docker 入口和出口:

    firewall-cmd --zone=public --add-masquerade --permanent

特别允许端口 80/443 上的传入流量:

     firewall-cmd --zone=public --add-port=443/tcp

重新加载防火墙以应用永久规则:

     firewall-cmd --reload

重启泊坞窗:

     systemctl restart docker

【讨论】:

    【解决方案2】:

    刚刚在我的本地机器上测试了这个:

    docker run -it -d --name test centos:latest;
    
    docker exec -it test /bin/bash;
    

    在 docker 容器中:

    [root@f3b8b3fe70df /]# yum update -y;
    [root@f3b8b3fe70df /]# yum install passwd;
    

    【讨论】:

      【解决方案3】:

      使用--network host添加对主机网络的访问

      docker run --network host -it -d --name test centos:latest
      

      【讨论】:

        猜你喜欢
        • 2018-10-05
        • 1970-01-01
        • 2017-04-27
        • 2020-07-28
        • 2019-06-17
        • 1970-01-01
        • 1970-01-01
        • 2020-04-19
        • 2022-11-14
        相关资源
        最近更新 更多