1.镜像编排文件准备
mkdir /data/centos7
cd /data/centos7
cat > centos7.yml << EOF
EOF
*/
/var/cache/yum/ --下载的包的缓存在这里,需要清除。
CMD ["/usr/sbin/init"] --要执行下这个才能启动容器。初始化启动。
cat > docker-build-centos7.sh << EOF
EOF
chmod u+x docker-build-centos7.sh
上传文件镜像仓库文件:Centos-7.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
2.配置镜像。
[root@es1 centos7]# ll
total 12
-rw-r--r-- 1 root root 2523 Jul 5 11:27 Centos-7.repo
-rw-r--r-- 1 root root 811 Jul 5 11:20 centos7.yml
-rwxr--r-- 1 root root 61 Jul 5 11:22 docker-build-centos7.sh
[root@es1 centos7]#
[root@es1 centos7]#
[root@es1 centos7]#
[root@es1 centos7]# sh docker-build-centos7.sh
Sending build context to Docker daemon 6.656kB
Step 1/9 : FROM 192.168.1.11:443/myharbor/centos:7.9.2009
---> eeb6ee3f44bd
Step 2/9 : MAINTAINER xueshuangqi
---> Using cache
---> b2d7b928ca92
Step 3/9 : RUN rm -rf /etc/yum.repos.d/**/
---> Using cache
---> 08da9859a832
Step 4/9 : ADD Centos-7.repo /etc/yum.repos.d/
---> 512a2c7d2ef2
Step 5/9 : RUN yum install -y gcc gcc-c++ vim tree lrzsz make pcre pcre-devel gd-devel iproute net-tools telnet wget unzip libxml2 libxml2-devel openssl openssl-devel zlib zlib-devel curl curl-devel libjpeg-devel libpng-devel libicu-devel sqlite-devel freetype-devel openldap-devel openldap autoconf automake libtool libcurl-devel libmcrypt-devel libzip openssh-clients libzip-devel bzip2-devel.x86_64 libxslt-devel && yum clean all && rm -rf /var/cache/yum/*
---> Running in d40fb3a3447f */
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
.................(省略安装过程)............................
Updated:
curl.x86_64 0:7.29.0-59.el7_9.2 libxml2.x86_64 0:2.9.1-6.el7_9.6
openldap.x86_64 0:2.4.44-25.el7_9 zlib.x86_64 0:1.2.7-21.el7_9
Dependency Updated:
cyrus-sasl-lib.x86_64 0:2.1.26-24.el7_9
expat.x86_64 0:2.1.0-15.el7_9
glibc.x86_64 0:2.17-326.el7_9.3
glibc-common.x86_64 0:2.17-326.el7_9.3
krb5-libs.x86_64 0:1.15.1-55.el7_9
libblkid.x86_64 0:2.23.2-65.el7_9.1
libcurl.x86_64 0:7.29.0-59.el7_9.2
libmount.x86_64 0:2.23.2-65.el7_9.1
libsmartcols.x86_64 0:2.23.2-65.el7_9.1
libuuid.x86_64 0:2.23.2-65.el7_9.1
libxml2-python.x86_64 0:2.9.1-6.el7_9.6
openssl-libs.x86_64 1:1.0.2k-26.el7_9
util-linux.x86_64 0:2.23.2-65.el7_9.1
xz.x86_64 0:5.2.2-2.el7_9
xz-libs.x86_64 0:5.2.2-2.el7_9
Complete!
Loaded plugins: fastestmirror, ovl
Cleaning repos: base extras updates
Cleaning up list of fastest mirrors
Removing intermediate container d40fb3a3447f
---> 17746327a6c4
Step 6/9 : RUN groupadd -g 50001 www && useradd www -u 50001 -g www && groupadd -g 50002 nginx && useradd nginx -u 50002 -g nginx
---> Running in e3130913ddc7
Removing intermediate container e3130913ddc7
---> 71b58e9a1858
Step 7/9 : RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
---> Running in 9c0c55a1b4c9
Removing intermediate container 9c0c55a1b4c9
---> ad743cd8b00e
Step 8/9 : VOLUME [ "/data" ]
---> Running in 1775b9f51b58
Removing intermediate container 1775b9f51b58
---> cbdb4c84fd0b
Step 9/9 : CMD ["/usr/sbin/init"]
---> Running in 3651d7dc6bc6
Removing intermediate container 3651d7dc6bc6
---> 77596ed99450
Successfully built 77596ed99450
Successfully tagged centos:7.9
3.使用镜像
[root@es1 centos7]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.9 77596ed99450 About a minute ago 490MB
--创建一个容器,使用刚配置的镜像。
docker run -itd --name centos7 -h centos7 centos:7.9
[root@es1 centos7]# docker run -itd --name centos7 -h centos7 centos:7.9
ad70881408cc8d21e45ab146608caa8123073698108cda25ce39a5abe3472222
[root@es1 centos7]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad70881408cc centos:7.9 "/usr/sbin/init" 2 minutes ago Up 2 minutes centos7
[root@es1 centos7]# docker exec -it ad70881408cc ls
anaconda-post.log data etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
4.给镜像文件打标签并推送到远程镜像库。
docker tag centos:7.9 192.168.1.11:443/myharbor/centos:7.9
docker push 192.168.1.11:443/myharbor/centos:7.9 --推送到镜像仓库。
[root@es1 merged]# docker push 192.168.1.11:443/myharbor/centos:7.9
The push refers to repository [192.168.1.11:443/myharbor/centos]
53c61a520c85: Pushed
88765da43086: Pushed
2ca40431ab7d: Pushed
caceb42f09c2: Pushed
5b1d42135d46: Pushed
174f56854903: Layer already exists
7.9: digest: sha256:4b7008aaa03742554280e4c9387b3c9a6ea4a8c6ca542878f50d1712722f54f0 size: 1572
5.容器内部文件查看
[root@es1 data]# docker exec -it ad70881408cc ls -lsa
total 12
0 drwxr-xr-x 1 root root 18 Jul 5 11:41 .
0 drwxr-xr-x 1 root root 18 Jul 5 11:41 ..
0 -rwxr-xr-x 1 root root 0 Jul 5 11:41 .dockerenv
12 -rw-r--r-- 1 root root 12114 Nov 13 2020 anaconda-post.log
0 lrwxrwxrwx 1 root root 7 Nov 13 2020 bin -> usr/bin
0 drwxr-xr-x 2 root root 6 Jul 5 11:41 data
0 drwxr-xr-x 5 root root 360 Jul 5 11:41 dev
0 drwxr-xr-x 1 root root 66 Jul 5 11:41 etc
0 drwxr-xr-x 1 root root 30 Jul 5 11:37 home
0 lrwxrwxrwx 1 root root 7 Nov 13 2020 lib -> usr/lib
0 lrwxrwxrwx 1 root root 9 Nov 13 2020 lib64 -> usr/lib64
0 drwxr-xr-x 2 root root 6 Apr 11 2018 media
0 drwxr-xr-x 2 root root 6 Apr 11 2018 mnt
0 drwxr-xr-x 2 root root 6 Apr 11 2018 opt
0 dr-xr-xr-x 265 root root 0 Jul 5 11:41 proc
0 dr-xr-x--- 2 root root 114 Nov 13 2020 root
0 drwxr-xr-x 1 root root 48 Jul 5 11:37 run
0 lrwxrwxrwx 1 root root 8 Nov 13 2020 sbin -> usr/sbin
0 drwxr-xr-x 2 root root 6 Apr 11 2018 srv
0 dr-xr-xr-x 13 root root 0 Jul 2 16:16 sys
0 drwxrwxrwt 1 root root 6 Jul 5 11:37 tmp
0 drwxr-xr-x 1 root root 96 Nov 13 2020 usr
0 drwxr-xr-x 1 root root 30 Nov 13 2020 var