docker创建镜像的三种方法

在工作中我们交付给你客户的往往都是一些定定制的容器,但是在这之前我们要先学会怎么去创建镜像来交付
一、docer创建镜像的创建方法
创建docker镜像的三种方法,分别是基于已有的容器创建、基于本地模板创建、以及dockerfile创建。
1.基于以有容器创建镜像。
基于已有的容器创建主要是使用docker commit命令。实质就是把一个容器里面运行的程序以及该程序的运行环境打包起来生成新的镜像。
命令:docker commit 选项 容器ID/名称 仓库名称:标签
常用的选项:
-m:说明信息
-a:作者
-p:生成过程中停止容器的运行(一般不会使用)
在这里插入图片描述

2.基于本地模板镜像创建:
通过导入操作系模板文件可以生成镜像,模板可以从OPENVZ开源项目下载,下载地址为:https://wiki.openvz.org/Download/template/precreated

Cat 镜像包 | docker import - 生成的镜像名:标签
在这里插入图片描述在这里插入图片描述
3.用dockerfile生成镜像:
Dockerfile结构的四个部分:基本镜像信息,维护者信息,镜像操作指令和容器启动执行指令:
3.1:建立工作目录:
[root@123456 ~]# mkdir myapache
[root@123456 ~]# cd myapache/

3.2创建并编写dockerfile文件:
在这里插入图片描述
3.3编写执行脚本文件:
[root@123456 myapache]# vim run.sh

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND
在这里插入图片描述
3.4创建测试页面:
[root@123456 myapache]# echo “then is httpd”>index.html
[root@123456 myapache]# ls
Dockerfile index.html run.sh
在这里插入图片描述

3.5使用dockerfile生存镜像文件:
命令docker build 选项 路径
常用选项:
-t:指定镜像的标签选项。
[root@123456 myapache]# docker build -t centos:httpd .
在这里插入图片描述
3.6使用新的镜像运行容器:
将容器中的暴露端口映射到宿主机上端口号为8888
[root@123456 myapache]# docker run -it -d -p 8888:80 centos:httpd
c3b0432591612bf0697404e4044eeb45d42e072ea27388e8b498697a2ebb7436

在这里插入图片描述

3.7用真实主机去访问宿主机加映射的端口号:
在这里插入图片描述
4.将镜像上层到仓库:
为dockerfile创建的镜像添加别名(如果要上传到公共仓库需要在前面标签你的docker hub账号)
[root@123456 myapache]# docker tag centos:httpd zj199711/centos:httpd
在这里插入图片描述
上传成功:
在这里插入图片描述

5.创建私有仓库:
可以使用registry来搭建本地私有仓库:

5.1需要在构建私有仓库的服务器上下载registry镜像
[root@123456 ~]# docker pull registry
Using default tag: latest
之后需要在/etc/docker/目录下创建一个json文件。否则在往自定义的私有仓库中上传镜像是会包错:
[root@123456 ~]# vim /etc/docker/daemon.json

{
“registry-mirrors”: [“https://5fpngg16.mirror.aliyuncs.com”]
}
{
“insecure-registres”: [“172.16.16.200:5000”]

}
在这里插入图片描述
5.2
使用registry镜像创建一个容器,默认情况下仓库放于容器内的/tmp/registry目录下,使用-v选项可以将本地目录挂载到容器内的/tmp/registry下使用这样就不怕容器被删除后镜像也会随之丢失:(默认的监听端口为registry 5000端口号)
将创建的容器5000的端口号映射到本机:
[root@123456 ~]# docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
5c70a2c6ae9722696bf9004e5dcc637f2bef9ba621be15948b08d461fa515bfb
在这里插入图片描述
使用docker tag 命令将要上传的镜像标记为宿主机的IP/+镜像名
[root@123456 ~]# docker tag centos:httpd 172.16.16.200:5000/centos:httpd
在这里插入图片描述
用docker push上传标记的镜像:
在这里插入图片描述

  • 11
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值