大家好,今天我们使用dockerfile 构建自己的centos 系统
看一下这个官网上centos 原生镜像
复制下来:
FROM scratch
ADD centos-7-x86_64-docker.tar.xz /
LABEL \
org.label-schema.schema-version="1.0" \
org.label-schema.name="CentOS Base Image" \
org.label-schema.vendor="CentOS" \
org.label-schema.license="GPLv2" \
org.label-schema.build-date="20201113" \
org.opencontainers.image.title="CentOS Base Image" \
org.opencontainers.image.vendor="CentOS" \
org.opencontainers.image.licenses="GPL-2.0-only" \
org.opencontainers.image.created="2020-11-13 00:00:00+00:00"
CMD ["/bin/bash"]
在官网上的大多数镜像都是基于scratch
这个东西
查看本地镜像(这里建议使用centos7系统 ,默认最新的centos8镜像相关的网络源有问题)
[root@localhost ~]# docker images
运行启动我们原先的centos7.9容器
[root@localhost ~]# docker run -it centos:7.9.2009 /bin/bash
[root@298bee7d20b0 /]#
写自己的centos
创建目录:
[root@localhost home]# mkdir dockerfile
[root@localhost home]# cd dockerfile/
[root@localhost dockerfile]# vim dockerfile-mycentos
原生的centos 镜像很单调,没有vim 命令
[root@298bee7d20b0 /]# vim
bash: vim: command not found
[root@298bee7d20b0 /]#
无法查看IP地址
[root@298bee7d20b0 /]# ifconfig
bash: ifcomfig: command not found
[root@298bee7d20b0 /]#
写dockerfile文件
[root@localhost home]# cd dockerfile/
[root@localhost dockerfile]# vim dockerfile-mycentos
这是它的dockerfile文件内容
FROM centos:7.9.2009
#依托于centos:7.9.2009做基础镜像
MAINTAINER shuaige<123456.qq.com>
# 这是作者信息,可以随便写
ENV MYPATH /tmp
#指定容器运行时的环境变量
WORKDIR $MYPATH
#镜像的工作目录
RUN yum -y install vim
#运行指令(安装vim)
RUN yum -y install net-tools
#运行指令(安装 net-tools)
EXPOSE 80
#保留端口配置80 端口
CMD echo $MYPATH
CMD echo "success---------ok"
CMD /bin/bash
打包成新的镜像
[root@localhost dockerfile]# docker build -f dockerfile-mycentos -t mycentos:0.1 .
Sending build context to Docker daemon 2.048kB
Step 1/10 : FROM centos:7.9.2009
---> eeb6ee3f44bd
Step 2/10 : MAINTAINER zzyy<zzyy@126.com>
---> Running in 1ff92bc1b164
Removing intermediate container 1ff92bc1b164
---> 51b30a3a47d4
Step 3/10 : ENV MYPATH /tmp
---> Running in b7fa138f873a
Removing intermediate container b7fa138f873a
---> 302085fae2f9
Step 4/10 : WORKDIR $MYPATH
---> Running in 139d84c578f1
Removing intermediate container 139d84c578f1
---> ae3ae6615556
Step 5/10 : RUN yum -y install vim
---> Running in 02ba54621929
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
* base: mirrors.nju.edu.cn
* extras: mirrors.cn99.com
* updates: mirrors.nju.edu.cn
http://mirrors.cn99.com/centos/7.9.2009/extras/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 502 - Bad Gateway
Trying other mirror.
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-common = 2:7.4.629-8.el7_9 for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: which for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Running transaction check
---> Package gpm-libs.x86_64 0:1.20.7-6.el7 will be installed
---> Package perl.x86_64 4:5.16.3-299.el7_9 will be installed
--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Temp) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Unix) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Functions) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec) for package: 4:perl-5.16.3