美文网首页
docker制作镜像和镜像的导入和导出

docker制作镜像和镜像的导入和导出

作者: Odven | 来源:发表于2020-06-11 10:11 被阅读0次

1) 制作镜像

# 使用commit制作镜像
1. 拉取基础镜像
docker pull 192.168.192.250:5000/smok/centos7

2. 运行基础镜像
docker container run --name base_centos7  -itd 192.168.192.250:5000/smok/centos7  # 后台运行容器
docker container ls  # 查看启动的容器

3. 进入容器安装nginx,vim, net-tools
docker container exec -it base_centos7 bash
[root@51d21c09e1e8 yum.repos.d]# yum -y install nginx
[root@51d21c09e1e8 yum.repos.d]# yum -y install vim
[root@51d21c09e1e8 yum.repos.d]# yum -y install net-tools
[root@51d21c09e1e8 ~]# exit

4. 停容器制作镜像
docker container stop base_centos7
docker container ls -a
docker container commit -m "为基础容器安装了nginx,vim,net-tools" base_centos7 nginx_vim_net-tools:v1
docker image ls

5. 检查新制作的nginx_vim_net-tools:v1镜像
docker container run --name nginx  -itd nginx_vim_net-tools:v1
docker container exec -it nginx bash
[root@81e7b9d254ff /]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

# 使用Dockerfile制作镜像
1. 创建一个制作Dockerfile的目录
mdkir dockerfile_dir
cd dockerfile_dir/

2. 准备Dockerfile中用到的文件
cat > yum-server.repo << EOF
[base]
name=name=CentOS-$releasever - base
baseurl=http://192.168.192.250:18000/base
enabled=1
gpgcheck=0

[extras]
name=name=CentOS-$releasever - extras
baseurl=http://192.168.192.250:18000/extras
enabled=1
gpgcheck=0

[updates]
name=name=CentOS-$releasever - updates
baseurl=http://192.168.192.250:18000/updates
enabled=1
gpgcheck=0

[epel]
name=name=CentOS-$releasever - epel
baseurl=http://192.168.192.250:18000/epel
enabled=1
gpgcheck=0
EOF

3. 配置Dockerfile文件
cat > Dockerfile << EOF 
FROM 
192.168.192.250:5000/smok/centos7:latest
RUN mv /etc/yum.repos.d/*.repo /tmp
COPY yum-server.repo /etc/yum.repos.d/yum-server.repo
RUN  yum -y install nginx
RUN  yum -y install vim
RUN  yum -y install net-tools
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
EOF

4. 制作镜像
docker image build -t nginx:v11 .  # 制作镜像
docker image ls  # 查看

5. 检查新制作的nginx_vim_net-tools:v1镜像
docker container run -itd --name nginx nginx:v11
docker container exec -it nginx bash
[root@5af9877a38d1 /]# curl -I http://127.0.0.1           
HTTP/1.1 403 Forbidden
Server: nginx/1.16.1
Date: Wed, 10 Jun 2020 09:30:44 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive

2) 镜像的导入和导出

# 使用save,load(推荐使用)
docker image --help  # 查看帮助
1. 导出
docker image save nginx:v11 -o nginx_v11.tar
2. 导入
docker image rm nginx:v11
docker image ls
docker image load -i nginx_v11.tar
docker image ls
3. 测试
docker container run  --name nginx  -itd nginx:v11
docker container exec -it nginx bash
[root@9bdbe302e030 /]# curl -I http://127.0.0.1
HTTP/1.1 403 Forbidden
Server: nginx/1.16.1
Date: Thu, 11 Jun 2020 01:37:02 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive

# 使用export,import
1. 导出
export 是导出一个容器归档
docker container run  --name nginx  -itd nginx:v11
docker container stop nginx
docker container ls -a # 查看准备导出容器的CONTAINER ID或名字
docker container export nginx -o nginx_v11.tar

2. 导入
docker container rm -f nginx
docker image rm -f nginx:v11
docker image ls 
docker image import nginx_v11.tar nginx:v11
docker image ls

3. 测试
docker container run  --name nginx  -itd nginx:v11 bash
docker container exec -it nginx bash
[root@b35d9ee2a7d9 /]# nginx
[root@9bdbe302e030 /]# curl -I http://127.0.0.1
HTTP/1.1 403 Forbidden
Server: nginx/1.16.1
Date: Thu, 11 Jun 2020 01:37:02 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive

相关文章

网友评论

      本文标题:docker制作镜像和镜像的导入和导出

      本文链接:https://www.haomeiwen.com/subject/eeoutktx.html