Bootstrap

Docker容器中的yum网络源配置(亲测有效)

目录

1、dockerfile方式配置

2、容器中配置


1、dockerfile方式配置

以dockerfile形式创建镜像配置好镜像yum源,然后通过镜像构建容器 

vim Dockerfile
FROM centos
RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* 
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
RUN yum makecache
RUN yum update -y

这个Dockerfile的含义是:

1. `FROM centos`: 基于CentOS镜像开始构建新的镜像。

2. `RUN cd /etc/yum.repos.d/`: 在新镜像中运行命令,切换到 `/etc/yum.repos.d/` 目录。

3. `RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*`: 使用sed命令在 `/etc/yum.repos.d/CentOS-*` 文件中,将所有包含 `mirrorlist` 的行替换为 `#mirrorlist`。注释掉原有的镜像源地址。

4. `RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*`: 使用sed命令在 `/etc/yum.repos.d/CentOS-*` 文件中,将 `#baseurl=http://mirror.centos.org` 替换为 `baseurl=http://vault.centos.org`。将镜像源地址改为CentOS Vault站点,用于访问旧版本软件包的站点。

5. `RUN yum makecache`: 更新YUM缓存,以便系统可以访问最新的软件包信息。

6. `RUN yum update -y`: 执行完整的系统更新,安装所有可用更新的软件包。

这个Dockerfile的目的是基于CentOS基础镜像,配置新的软件源(使用CentOS Vault站点)并进行系统更新,以确保最新的安全性和功能性修复。

构建好Dockerfile后就可以通过运行容器镜像,在该容器中yum命令安装软件了

#构建镜像
docker build -t centos/yum-dockerfile .

#查看镜像
docker images


#运行镜像,并进入容器
docker run -it centos/yum-dockerfile /bin/bash

2、容器中配置

我们已有的容器怎么配置呢?

直接运行容器,在容器里面配置yum源

#运行名为centos的容器
docker run -it centos --network bridge centos /bin/bash

#容器中输入命令,注释掉原有的镜像源地址
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* 


#将镜像源地址改为CentOS Vault站点,用于访问旧版本软件包的站点
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*


yum makecache
yum update -y

这样子 就可以在容器中直接配置网络yum源,再也没有软件安装无所需软件包的烦恼啦!

;