配置docker内的Centos8系统的网络yum源并使用dockerfile制作镜像并导出

想要交流可以加入🐧群:748360476

由于Centos8已经停止维护了,它的很多服务都不能使用,包括yum源,但是阿里源为还在使用Centos8的个人和企业提供了它的网络yum源,我们来尝试一下吧!

由于这一篇文档是描述在docker内操作的,所以还请先安装docker服务,不会安装可以点击我教你如何安装docker服务

1、从docker-hub里拉取我们想要的Centos8

docker pull centos 
#如果centos后面没有东西,那么系统就会帮你去拉取最新的(latest)镜像,想要centos7的话可以这样(docker pull centos:7)

docker images #查看我们服务器上拥有的镜像

2、新建容器并启动

docker run -d 5d0da3dc9764 
#-d为后台启动,5d0da3dc9764为镜像ID,这里也能用centos:latest (仓库名:标签)

3、进入容器

docker exec -it 7d25c6e62777 /bin/bash 
#exec:新建一个终端并进入 -it:前端运行 /bin/bash:修改docker中运行命令为/bin/bash

4、给Centos8添加网络yum源

由于docker内的Centos系统都是删减版的,所以会有很多命令都不存在(vim、net-tools等命令都是没有的)

我们来直接给它配网络yum源

cd /etc/yum.repos.d/    # 进入到配置文件
vi aliyun.repo          # 没有vim命令,只有vi
cat aliyun.repo         # 将一下代码写进aliyun.repo里面
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8.5.2111/AppStream/x86_64/os/
enabled=1
gpgcheck=0
​
[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/os/
enabled=1
gpgcheck=0
​
yum clean all && yum makecache fast  # 删除原有的数据缓存并重新建立数据缓存
yum repolist       # 查看yum源仓库是否建立

到了这里我们docker内的Centos8的网络yum源就配好了,现在我们将它创建成一个镜像存放在我们服务器上的镜像仓库里5、

语法:docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]

docker commit -m="centos8-yum" -a="gangshen" 5d0da3dc9764 centos8-yum:latest

这个centos8-yum就是我们自己创建的拥有正常yum源centos8系统镜像,现在,我要使用dockerfile来创建出一个有着更多命令的镜像。

6、Dockerfile常用指令

FROM             # 基础镜像,一切从这里开始构建
MAINTAINER       # 镜像是谁写的, 姓名+邮箱
RUN              # 镜像构建的时候需要运行的命令
ADD              # 步骤,tomcat镜像,这个tomcat压缩包!添加内容 添加同目录
WORKDIR          # 镜像的工作目录
VOLUME           # 挂载的目录
EXPOSE           # 保留端口配置
CMD              # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。
ENTRYPOINT       # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD          # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令。
COPY             # 类似ADD,将我们文件拷贝到镜像中
ENV              # 构建的时候设置环境变量!

实战

cd /home
vim dockerfile-test-centos
cat dockerfile-test-centos
FROM centos8-yum:latest            # 我们上一次创建好的拥有正常yum源的镜像ID
MAINTAINER gang<邮箱>               # 作者的名字和邮箱
ENV MYPATH                         # 设置的环境变量
WORKDIR $MYPATH                    # 进入到容器时所在目录
RUN yum install -y net-tools       # 下载net-tools工具
RUN yum install -y vim             # 下载vim工具
CMD echo "-----end-----"           # 运行结束
CMD /bin/bash                      # 修改docker中运行命令为/bin/bash
​
# 执行dockerfile
docker build -f dockerfile-test-centos -t mycentos:1.0 .
输出:
Sending build context to Docker daemon   7.68kB
Step 1/10 : FROM centos8-yum:latest
 ---> 05b27dce7d1f
Step 2/10 : MAINTAINER gangshen<2430689006@qq.com>
 ---> Running in cdf454efa46a
Removing intermediate container cdf454efa46a
 ---> bc5fb6fe38b8
Step 3/10 : ENV MYPATH /usr/local
 ---> Running in b07dc32de3e0
Removing intermediate container b07dc32de3e0
 ---> e8be87b478c1
Step 4/10 : WORKDIR $MYPATH
 ---> Running in fd71daa9e6d8
Removing intermediate container fd71daa9e6d8
 ---> 86d05eae62c6
Step 5/10 : RUN yum install -y vim
 ---> Running in c052ce4deb02
Last metadata expiration check: 0:04:19 ago on Thu Nov 10 04:42:35 2022.
Dependencies resolved.
================================================================================
 Package             Arch        Version                   Repository      Size
================================================================================
Installing:
 vim-enhanced        x86_64      2:8.0.1763-16.el8         AppStream      1.4 M
Installing dependencies:
 gpm-libs            x86_64      1.20.7-17.el8             AppStream       39 k
 vim-common          x86_64      2:8.0.1763-16.el8         AppStream      6.3 M
 vim-filesystem      noarch      2:8.0.1763-16.el8         AppStream       49 k
 which               x86_64      2.21-16.el8               BaseOS          49 k
​
Transaction Summary
================================================================================
Install  5 Packages
​
Total download size: 7.8 M
Installed size: 30 M
Downloading Packages:
(1/5): gpm-libs-1.20.7-17.el8.x86_64.rpm        117 kB/s |  39 kB     00:00    
(2/5): vim-filesystem-8.0.1763-16.el8.noarch.rp 400 kB/s |  49 kB     00:00    
(3/5): which-2.21-16.el8.x86_64.rpm             301 kB/s |  49 kB     00:00    
(4/5): vim-enhanced-8.0.1763-16.el8.x86_64.rpm  1.1 MB/s | 1.4 MB     00:01    
(5/5): vim-common-8.0.1763-16.el8.x86_64.rpm    1.4 MB/s | 6.3 MB     00:04    
--------------------------------------------------------------------------------
Total                                           1.7 MB/s | 7.8 MB     00:04     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : which-2.21-16.el8.x86_64                               1/5 
  Installing       : vim-filesystem-2:8.0.1763-16.el8.noarch                2/5 
  Installing       : vim-common-2:8.0.1763-16.el8.x86_64                    3/5 
  Installing       : gpm-libs-1.20.7-17.el8.x86_64                          4/5 
  Running scriptlet: gpm-libs-1.20.7-17.el8.x86_64                          4/5 
  Installing       : vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5 
  Running scriptlet: vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5 
  Running scriptlet: vim-common-2:8.0.1763-16.el8.x86_64                    5/5 
  Verifying        : gpm-libs-1.20.7-17.el8.x86_64                          1/5 
  Verifying        : vim-common-2:8.0.1763-16.el8.x86_64                    2/5 
  Verifying        : vim-enhanced-2:8.0.1763-16.el8.x86_64                  3/5 
  Verifying        : vim-filesystem-2:8.0.1763-16.el8.noarch                4/5 
  Verifying        : which-2.21-16.el8.x86_64                               5/5 
​
Installed:
  gpm-libs-1.20.7-17.el8.x86_64         vim-common-2:8.0.1763-16.el8.x86_64    
  vim-enhanced-2:8.0.1763-16.el8.x86_64 vim-filesystem-2:8.0.1763-16.el8.noarch
  which-2.21-16.el8.x86_64             
​
Complete!
Removing intermediate container c052ce4deb02
 ---> 5421e8ba4afe
Step 6/10 : RUN yum install -y net-tools
 ---> Running in d9948b0cbcd4
Last metadata expiration check: 0:04:34 ago on Thu Nov 10 04:42:35 2022.
Dependencies resolved.
================================================================================
 Package         Architecture Version                        Repository    Size
================================================================================
Installing:
 net-tools       x86_64       2.0-0.52.20160912git.el8       BaseOS       322 k
​
Transaction Summary
================================================================================
Install  1 Package
​
Total download size: 322 k
Installed size: 942 k
Downloading Packages:
net-tools-2.0-0.52.20160912git.el8.x86_64.rpm    56 kB/s | 322 kB     00:05    
--------------------------------------------------------------------------------
Total                                            56 kB/s | 322 kB     00:05     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 
  Running scriptlet: net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 
  Verifying        : net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 
​
Installed:
  net-tools-2.0-0.52.20160912git.el8.x86_64                                     
​
Complete!
Removing intermediate container d9948b0cbcd4
 ---> ffa875591158
Step 7/10 : EXPOSE 80
 ---> Running in de43d706b67a
Removing intermediate container de43d706b67a
 ---> a2d02de2343c
Step 8/10 : CMD echo $MYPATH
 ---> Running in 9799881a6085
Removing intermediate container 9799881a6085
 ---> e1b126f22ba0
Step 9/10 : CMD echo "-------end-------"
 ---> Running in c2e7c80938ac
Removing intermediate container c2e7c80938ac
 ---> a4d5fa57de7f
Step 10/10 : CMD /bin/bash
 ---> Running in 1b942795935f
Removing intermediate container 1b942795935f
 ---> e0bebfc5ee68
Successfully built e0bebfc5ee68
Successfully tagged mycentos:1.0
docker images

那么我们自己创建的有着正常yum源并且有更多命令的centos镜像就出来了

7、导出和导入镜像

语法:docker save -o 导出的镜像名.tar 本地镜像名:镜像标签

docker save -o mycentos-1.0.tar mycentos:1.0

导入本地镜像命令

语法:docker load -i 导入的镜像名.tar

docker load -i mycentos-1.0.tar

到此,我们的操作就完成了,是不是很简单呢?

想要交流可以加入🐧群:748360476

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值