zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    VS2013 调试窗口一闪而过的解决方法
    什么是文件?
    局部变量和全局变量的区别
    一个简单java程序的要素
    运行一个简单的Java程序
    Javascript 构造函数原型继承机制
    函数式编程之一等公民的函数
    弹性布局flex-兼容问题
    TypeScript中的枚举类型
    依赖注入
  • 原文地址:https://www.cnblogs.com/studyitskill/p/14081899.html
Copyright © 2011-2022 走看看