运维开发网

制作docker基础镜像

运维开发网 https://www.qedev.com 2020-07-11 17:09 出处:网络 作者:运维开发网整理
1.使用reposync将base镜像库同步到本地 yum -y install yum-utils createrepo mkdir -p /data/centos7 find /etc/yum.repos.d/[!.]* -exec mv {} {}.bak \; cat << EOF > /etc/yum.repos.d/sync.repo [base] name=aliyun-centos

1.使用reposync将base镜像库同步到本地

yum -y install yum-utils createrepo

mkdir -p /data/centos7

find /etc/yum.repos.d/[!.]* -exec mv {} {}.bak \;

cat << EOF > /etc/yum.repos.d/sync.repo

[base]

name=aliyun-centos7

enabled=1

baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/

gpgcheck=0

EOF

yum clean all

nohup reposync --newest-only --repoid=base -p /data/centos7/ >/dev/null 2>&1 &

createrepo /data/centos7/base -o /data/centos7/base

wget https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 -P /data/centos7

#备注:reposync命令可定期执行以保证本地源是最新的。

2.安装docker

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/Linux/centos/docker-ce.repo

yum install -y docker-ce

mkdir -p /etc/docker

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

systemctl daemon-reload && systemctl enable docker && systemctl restart docker

docker version

3.制作scratch空镜像

tar cf scratch.tar --files-from /dev/null

docker import scratch.tar scratch

或者

docker rmi scratch

tar cv --files-from /dev/null | docker import - scratch

#备注:减号是标准输出,将管道前面命令的执行结果放入减号位置。

4.在centos7.5操作系统的命令行中制作centos7.5的根目录并打包

mkdir /root/vroot

yum -y install --installroot=/root/vroot bash yum coreutils

chroot /root/vroot/

cp /etc/skel/.[!.]* /root/

ls -a /root

exit

chroot /root/vroot/

exit

tar -cJf centos-7-docker.tar.xz -C vroot ./

5.制作centos7.5的docker镜像

mkdir /root/mydocker

mv centos-7-docker.tar.xz /root/mydocker/

cd /root/mydocker/

echo ‘FROM scratch

ADD centos-7-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="20190716"

CMD ["/bin/bash"]‘  >  Dockerfile

docker build -t centos:latest .

docker images centos

docker history centos

6.运行刚制作的centos镜像并将容器中的更改备份出来

docker run -it centos

ifconfig

yum provides ifconfig

yum -y install net-tools

ifconfig

pstree

yum provides pstree

yum -y install psmisc

pstree -p

ls /

exit

docker container ls -a

docker save centos -o /root/centos.tar

tar -tvf /root/centos.tar

#备注:docker save导出的文件,其实就是一个普通的压缩文件,

这个压缩文件中包含了镜像的所有镜像层,以及包含镜像基本信息的Manifest文件。

在Manifest文件中,包含了所有镜像层的散列值,可以通过这些特征值来检查镜像层文件是否完整且正确。

7.启动容器并退出容器的正确做法

docker ps -adocker start ee6286a3d32fdocker attach ee6286a3d32f ctrl+p+qdocker ps

0

精彩评论

暂无评论...
验证码 换一张
取 消