- Dockerfile
- 基于容器
- docker hub automated build(依据dockerfile制作)

基于容器制作镜像,我们会先安装一个基础镜像,然后在基础镜像的基础上安装别的应用或者配置,完成后执行docker commit 命令提交到docker hub.
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

以我之前机器上安装的busybox为例:
step1
docker container run --name busybox1 -it busybox
step2
在根目录下创建/data/page/index.html
mkdir -p /data/page/
vi index.html
在文件中输入hello world
setp3
保持docker container启动的状态下,执行命令:
docker commit -p busybox1
因为这个命令里我们没有加tag和repository,所以生成的镜像如下:

我们可以在后期去修改一个文件的tag和repository
docker tag 22e17e3bd56f levi/busybox_httpd:v0.1

step4
根据新制作的镜像,启动容器:
docker run --name busybox-levi -it levi/busybox_httpd:v0.1
使用inspect命令查看容器的启动命令如下:
docker inspect busybox-levi

创建一个新的镜像,并且修改启动参数:
docker commit -a "levi<leveldc@126.com>" -c 'CMD ["/bin/httpd","-f", "-h", "/data/page"]' -p busybox-levi levi/busybox_httpd:v0.2
docker image ls

docker run --name busybox-0.2 levi/busybox_httpd:v0.2
在另外一个终端中查看busybox-0.2的地址,并执行curl命令:

step5
推送镜像到hub.docker, 因为我的镜像的repository和tag都是随便取得,为了能推上去,我需要重新命名我的 repository 和 tag
docker tag levi/busybox_httpd:v0.2 leveldc/busybox_httpd:v0.1
--登陆dockerhub
docker push leveldc/busybox_httpd:v0.1
推送成功

本文详细介绍了如何使用Dockerfile从基础镜像开始,逐步安装应用并配置,最终通过docker commit命令创建新的镜像。并通过实例演示了如何修改镜像的tag和repository,以及如何使用docker push命令将镜像推送到Docker Hub。
850

被折叠的 条评论
为什么被折叠?



