详解Docker基于已有的镜像制新的镜像

时间:2021-05-19

1.根据运行的容器制作镜像

#查看所有的容器docker ps#暂停当前容器docker pause COTNAINER-ID#将容器运行当前状态提交docker commit COTNAINER-ID
#根据COMMIT-ID打包容器Tagdocker tag COMMIT-ID

经过以上几个步骤,根据当前运行的容器制作镜像就完成了。

2.上传镜像到Docker Hub

如果未登录Docker Hub,需要登录Docker Hub

docker login#输入用户名和密码

推送镜像到Docker Hub

docker push IMAGE-NAME

运行结果如下图所示:

在Docker Hub上可以查看到我们刚刚上传的镜像文件,因为这个镜像是公开的,所以现在所有人都能够docker pull获取该镜像。

3.获取上传的镜像并运行

因为我使用的是同一台Ubuntu机器,我本地已经有了bage88/firstimage这个镜像,我先要删除该镜像,然后再获取。

3.1 删除镜像

#### 删除镜像docker rmi IMAGE_NAME

提示如下错误,有基于该镜像的容器在运行,所以我先要删除这个容器,再删除镜像。

Error response from daemon: conflict: unable to remove repository reference "bage88/firstimage"(must force) - container 25dca6040e7e is using its referenced image 31758d7d9e60

3.2 删除容器

docker rm 25dca6040e7e(这个是容器ID)

再执行一次删除镜像命令:

docker rmi bage88/firstimage###结果如下,说明删除镜像成功Untagged: bage88/firstimage:latestUntagged: bage88/firstimage@sha256:dc8a6511903cdcd25cf2d9de76a1c9ba21c050bb7702525fb3e1ba0168071481Deleted: sha256:31758d7d9e60b3c77bad4f477faae5e9dc87d3d5d16a085263f2f6de58a381adDeleted: sha256:77757027951c22c480289ef98c6109c6d7df4e0bae9bda5db1e43436159de9e5

3.3 获取镜像

docker pull bage88/firstimage

3.4 运行镜像

docker run -d -p 8010:80 bage88/firstimage

查看结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章