想要交流可以加入🐧群: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