一、准备工作
关闭防火墙等
linux时间校对
试验环境
虚拟机服务器版本:centos7
镜像制作机IP地址:192.168.1.10
镜像接收测试机IP地址:192.168.1.20
二、镜像制作
[root@localhost ~]# docker pull centos #拉取官方的centos系统镜像
[root@localhost ~]# docker run -it --name nginx centos /bin/bash #进入容器
[root@a0e807badc34 /]# yum install vim yum-utils nginx -y #下载nginx等
[root@a0e807badc34 /]# vim /etc/yum.repos.d/nginx.repo #设置 yum 存储库
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@a0e807badc34 /]# vim /etc/nginx/nginx.conf
daemon off; #关闭守护程序
[root@a0e807badc34 /]# nginx -v #查看nginx版本
nginx version: nginx/1.14.1
[root@a0e807badc34 /]# exit #退出容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0e807badc34 centos "/bin/bash" 32 minutes ago Up 6 minutes nginx
[root@localhost ~]# docker commit -m "nginx" a0e807badc34 docker-nginx:1.14.1 #制作镜像,名称docker-nginx:1.14.1
sha256:757ee9786fc9bc5016b22fb426bff7416dabbfe773565ef124d519757dc1c810
[root@localhost ~]# docker images #查看本地镜像,已生成成功
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-nginx 1.14.1 757ee9786fc9 2 minutes ago 271MB
centos latest 5d0da3dc9764 14 months ago 231MB
[root@localhost ~]# docker run -d -p 80:80 docker-nginx:1.14.1 nginx #运行自己制作的镜像
e239167eea401842c5622036838d50354f772fe44de5045f3c55a646f862de89
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e239167eea40 docker-nginx:1.14.1 "nginx" 47 seconds ago Up 46 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp hardcore_rhodes
访问测试
三、镜像打包
将制作好的docker镜像打包
[root@localhost ~]# docker save docker-nginx:1.14.1 > docker-nginx.tar
将docker-nginx.tar传到其他服务器上
[root@localhost ~]# scp /root/docker-nginx.tar root@192.168.1.20:/root/docker-nginx.tar
将打包的镜像加载到新服务docker中
[root@localhost ~]# docker load < docker-nginx.tar
[root@localhost ~]# docker images #查看镜像
也可以采用samba等拷贝到指定服务器
samba安装
四、其他
1、docker镜像下载太慢
中科大 https://docker.mirrors.ustc.edu.cn
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
2、镜像中yum update -y报错Error: Failed to download metadata for repo 'appstream': Cannot prepare inte
[root@a0e807badc34 /]# cd /etc/yum.repos.d/
[root@a0e807badc34 yum.repos.d]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@a0e807badc34 yum.repos.d]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*