docker制作镜像

当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改:
(1)从已经创建的容器中更新镜像,并且提交这个镜像
(2)使用Dockerfile指令来创建一个新的镜像
1 基于容器制作镜像

Options 参数
-a,作者(例如,“along along@along.com”)
-c,修改Dockerfile指令应用于创建的镜像
-m,提交的描述信息,即记录本次修改的内容
-p,在提交期间暂停容器(默认为true)

1)示例1:简单的基于容器创建一个新的镜像
A.先运行一个容器

[root@localhost ~]# docker run --name b1 -it busybox 
/ # ls / 
bin dev etc home proc root sys tmp usr var 
/ # mkdir -p /data/html 
/ # echo busybox httpd server >/data/html/index.html 
/ # cat /data/html/index.html 
busybox httpd server

B.不用退出这个容器,另起终端在b1容器基础上,制作新镜像
保存镜像:

[root@localhost ~]# docker commit -p b1

C.给新制作的镜像打标签

[root@localhost ~]# docker tag 5d6 along/httpd:v0.1

D.删除同一镜像的标签,只是把这个镜像的标签去掉,直到删除这个镜像的最后一个标签,此镜像才会被删除。

[root@localhost ~]# docker image rm along/httpd:latest

E.基于新的镜像运行一个容器,验证是否是基于b1创建成功的

[root@localhost ~]# docker run --name b2 -it --rm along/httpd:v0.1 
/ # cat /data/html/index.html 
busybox httpd server

2)示例2:基于容器创建新的镜像,并修改执行命令CMD
A.基于容器b1创建新的镜像,并修改命令为执行httpd服务

[root@localhost ~]# docker commit -a "Along <along@along.com>" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' -p b1 along/httpd:v0.2

B.运行新的镜像v0.2

[root@localhost ~]# docker run --name b3 -d along/httpd:v0.2

C. 验证

[root@localhost ~]# docker inspect b3 | grep -i ipaddress 						"SecondaryIPAddresses": null, "IPAddress": "172.17.0.3", "IPAddress": "172.17.0.3", 
[root@localhost ~]# curl 172.17.0.3 
busybox httpd server

2 基于Dockerfile制作镜像

  1. 创建一个名为“Dockerfile”的文件
    注意,文件名必须是“Dockerfile”,“D”是大写字母。

[root@server ~]# mkdir /myimg
[root@server~]# cd /myimg/
[root@server myimg]# vim Dokerfile
[root@server myimg]# cat Dokerfile
#This is a demo Image
FROM ubuntu
MAINTAINER root@server.com
RUN apt-get update
CMD [“echo”, “Image created”]

第一行#This is a demo Image 是一条注释。Dockerfile 中注释以#开头。

下一行需以 FROM 关键字开始。构建自己的镜像时,通常以其他镜像为基础。FROM ubuntu 表示将以 ubuntu 镜像为基础创建一个镜像。

MAINTAINER root@server.com 指明镜像维护者。

RUN 指令用于执行命令。这里更新 ubuntu 系统。

最后一个指令向用户显示一条消息。
2 创建镜像----docker build 命令用于从 Dockerfile 构建镜像
典型用法:docker build -t ImageName:TagName dir

[root@kittod myimg]# docker build -t myimg:0.1 .

查看定制的镜像

[root@server myimg]# docker images

运行定制镜像

[root@server myimg]# docker run myimg:0.1

Dockerfile指令:https://www.runoob.com/docker/docker-dockerfile.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值