docker centos容器无法yum

 
问题 dockerfile yum -y install vim的时候一直未响应 但是在本地虚拟机centos7上运行则没问题
 
但是我的防火墙是开启的 systemctl status firewalld

 

 

然后就卡住了 一直没找到问题所在 虚拟机的yum源也检查了是阿里的没问题 yum repolist enabled

 

 

然后突然想到是不是docker容器的问题 ,因为我的docker容器依赖的是centos,是不是在docker容器中无法连接网络导致的。
 
查看镜像列表 docker images

 

 

用镜像新启动一个容器(df/centos 是我自己命名的一个容器和centos一样)
docker run -it --name=docker-net-test df/centos
进入容器测试网络
1 ping www.baidu.com -- 说明容器内网络是通的

 

 

 
2 既然网络是通的 那么是不是yum命令无法使用 在容器内测试一下 yum -y -install vim

 

 

3 发现果然是没有速度 (以为终于找到了原因) -- Failed to set locale,defaulting to C.UTF-8
------ 一顿百度 是因为阿里云拉下来的镜像centos默认的语言格式没有en_US.UTF-8
locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
当前系统没有安装en_US.UTF-8语言 那么安装所有的字符集
dnf install langpacks-en glibc-all-langpacks -y
这时候安装也是没有速度 -- 终于想到了可能是因为容器内的yum源没有换成阿里云(真正的原因)
-----------------
所以问题的关键是yum源没有配置成国内的 而不是语言格式问题(当然字符集也是个问题,需要注意)
-----------------
--配置阿里源
查看当前centos版本 -- 8.0的版本 docker自动下载的centos镜像是8.0版本
cat /etc/redhat-release
 
1. 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2 下载
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
 
 
但是我们 yum makecache 的时候还是没有速度---Repository AppStream is listed more than once in the configuration

 

 

--我们ls /etc/yum.repos.d --发现有个AppStream.repo --把它删了
rm -rf CentOS-AppStream.repo
重新yum makecache 发现有速度了
这时候我们 yum -y install vim 也可以了
 
 
----所以重新设计dockerFile文件 当作练习了
 
之前的----  
FROM centos
ENV mypath /tmp
WORKDIR $mypath
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo 'to be not success running'
CMD echo 'success------ok'
CMD /bin/bash
 
-- 成功执行
FROM centos
ENV mypath /tmp
WORKDIR $mypath
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
RUN rm -rf /etc/yum.repos.d/CentOS-AppStream.repo
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo 'to be not success running'
CMD echo 'success------ok'
CMD /bin/bash
 
posted @ 2020-12-03 18:24  丁一江  阅读(8007)  评论(0编辑  收藏  举报