Docker简介
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
CentOS镜像制作步骤
1、安装Docker
在开始制作CentOS镜像之前,首先需要在你的计算机上安装Docker,安装过程如下:
(1)下载Docker安装包
访问Docker官网(https://www.docker.com/)下载对应操作系统的Docker安装包。
(2)安装Docker
根据下载的安装包进行安装,具体安装过程请参考官方文档(https://docs.docker.com/engine/install/)。
2、拉取CentOS镜像
在安装好Docker后,我们需要从Docker Hub拉取CentOS镜像,打开终端,输入以下命令:
docker pull centos
3、创建本地目录并运行容器
接下来,我们需要创建一个本地目录来存放我们的CentOS镜像文件,使用Docker命令启动一个新的容器,并将CentOS镜像挂载到容器中,具体操作如下:
(1)创建本地目录
mkdir -p ~/centos_images/centos7/rootfs
(2)运行容器
docker run -itd --name my_centos centos /bin/bash -c "while true; do sleep 3600; done"
这条命令会启动一个名为my_centos的容器,并将宿主机的3600秒(1小时)时间同步到容器内,这样,我们就可以在容器内使用date
命令查看当前时间了。
4、将镜像写入磁盘
为了让其他人能够访问我们的CentOS镜像,我们需要将其写入磁盘,找到刚刚启动的容器的ID:
docker ps | grep my_centos
记下容器ID,然后执行以下命令将镜像写入磁盘:
docker commit my_centos <image_name>:<tag>
<image_name>
是你为镜像起的名字,<tag>
是镜像的标签(latest
),执行成功后,镜像文件将被保存在~/centos_images/centos7/rootfs
目录下。
5、制作其他版本的CentOS镜像(可选)
如果你想要制作其他版本的CentOS镜像,只需替换上述命令中的<image_name>
和<tag>
即可,要制作一个名为my_centos_8
的CentOS 8镜像,可以使用以下命令:
docker commit my_centos centos:8.4.299-90-generic-x86_64-with-glibc2.12-SCL-12.3.1-1.el8.x86_64 <image_name>:<tag> --build-arg http_proxy=http://user:pass@proxyserver:port --build-arg https_proxy=http://user:pass@proxyserver:port --build-arg no_proxy="localhost|127.0.0.1" --build-arg ftp_proxy=http://user:pass@proxyserver:port --build-arg ssh_proxy=http://user:pass@proxyserver:port --build-arg rsync_proxy=http://user:pass@proxyserver:port --build-arg sysctl=net.ipv4.ip_forward=0 --build-arg sysctl=net.ipv6.conf.all.disable_ipv6=0 --build-arg sysctl=kernel.exec-shield=1 --build-arg sysctl=net.ipv4.tcp_syncookies=1 --build-arg sysctl=net.ipv4.tcp_max_syn_backlog=20480 --build-arg sysctl=kernel.core_uses_pid=1 --build-arg sysctl=net.ipv4.tcp_fin_timeout=30 --build-arg sysctl=net.ipv4.tcp_tw_reuse=1 --build-arg sysctl=net.ipv4.tcp_keepalive_time=1200 --build-arg sysctl=net.ipv4.ip_local_port_range="1024 65000" --build-arg sysctl=net.ipv4.tcp_synack_retries=2 --build-arg sysctl=net.ipv4.tcp_synack_retries_ms=500 --build-arg sysctl=net.ipv4.tcp_syn_retries=5 --build-arg sysctl=net.ipv4.tcp_syn_retries_ms=500 --build-arg sysctl=net.ipv4.tcp_timestamps=1 --build-arg sysctl=net.ipv4.tcp_window_scaling="1" --build-arg sysctl=net.core.somaxconn="65535" --build-arg sysctl=net.ipv4.tcp_rmem="4096 87380 67108864" --build-arg sysctl=net.ipv4.tcp_wmem="4096 65536 67108864" --build-arg netbsdrc="YES" --build-arg linuxrc="YES" --build-arg freebsdrc="YES" --build-arg openbsdrc="YES" --build-arg sunosrc="YES" --build-arg aixrc="YES" --build-arg dragonflybsdsrc="YES" --build-arg alpinelinuxsrc="YES" --build-arg archlinuxrc="YES" --build-arg gentoorc="YES" --build-arg fuchsiasrc="YES" --build-arg androidsrc="NO" --no-cache CMD ["/usr/sbin/init"] && docker tag my_centos centos:8.4.299-90-generic-x86_64-with-glibc2.12-SCL-12.3.1-1.el8.x86_64 my_centos:8.4.299-90-generic-x86_64-with-glibc2.12-SCL-12.3.1-1.el8.x86_64 && docker push my_centos:8.4.299-90-generic-x86_64-with-glibc2.12-SCL-12.3.1-1.el8.x86_64 && docker save my_centos:8.4.299-90-generic-x86_64-with-glibc2.12-SCL-12.3.1-1.el8 > /tmp/my_centos:8.4.299-90-generic-x86_64-with-glibc2.12-SCL-12.3.1-1.el8 && docker load /tmp/my_centos:8.4.299-90-generic-x86_64-with-glibc2.12-SCL
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/166499.html