如何解决Docker容器中使用yum安装时出现错误的问题?

4

我想尝试在centos:latest镜像中安装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 进行安装?

1
你之前执行了 yum update 命令吗? - codingwithmanny
https://github.com/moby/moby/issues/866 - Martin Zeitler
@codingwithmanny 是的,我试过了。但是还是出现了同样的错误。 - MaskerTim
奇怪。您的Docker版本和运行它的操作系统是什么? - codingwithmanny
Docker版本为19.03.10,操作系统为Linux CentOS 8。 - MaskerTim
3个回答

1
伪装允许Docker进出:
    firewall-cmd --zone=public --add-masquerade --permanent

具体允许端口80/443的入站流量:

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

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

     firewall-cmd --reload

重新启动 Docker:

     systemctl restart docker

0

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

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

0

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

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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接