如何通过容器提交镜像DockerCommit及推送镜像DockerPush
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章给大家分享的是有关如何通过容器提交镜像DockerCommit及推送镜像DockerPush的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在本地创建一个容器后,可以
千家信息网最后更新 2024年11月20日如何通过容器提交镜像DockerCommit及推送镜像DockerPush
这篇文章给大家分享的是有关如何通过容器提交镜像DockerCommit及推送镜像DockerPush的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
在本地创建一个容器后,可以依据这个容器创建本地镜像,并可把这个镜像推送到Docker hub中,以便在网络上下载使用。
查看镜像[root@docker-test1 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB 创建一个名为myubuntu的容器[root@docker-test1 ~]# docker run -ti --name myubuntu -d docker.io/ubuntu[root@docker-test1 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES651a8541a47d docker.io/ubuntu "/bin/bash" 37 seconds ago Up 36 seconds myubuntu docker commit :从容器创建一个新的镜像。# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]-a :提交的镜像作者;-c :使用Dockerfile指令来创建镜像;-m :提交时的说明文字;-p :在commit时,将容器暂停。 根据这个myubuntu容器提交镜像[root@docker-test1 ~]# docker commit -a "wangshibo" -m "this is test" 651a8541a47d myubuntu:v1sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4d 再次查看镜像,发现镜像myubuntu:v1已经提交到本地了[root@docker-test1 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmyubuntu v1 6ce4aedd12cd 59 seconds ago 84.1 MBdocker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB 在mybuntu:v1镜像推送到docker hub仓库中去# docker push [OPTIONS] NAME[:TAG]OPTIONS说明:--disable-content-trust :忽略镜像的校验,默认开启 首先是登录docker hub (用户名:wangshibo 密码:*******)[root@docker-test1 ~]# docker loginLogin with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.Username (wangshibo): wangshiboPassword:Login Succeeded [root@docker-test1 ~]# docker push wangshibo/myubuntu:v1The push refers to a repository [docker.io/wangshibo/myubuntu]An image does not exist locally with the tag: docker.io/wangshibo/myubuntu 这里需要将ubuntu:v1镜像改名,在名称前加上自己的docker hub的Docker ID,即wangshibo [root@docker-test1 ~]# docker tag 6ce4aedd12cd wangshibo/myubuntu:v1[root@docker-test1 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmyubuntu v1 6ce4aedd12cd 6 minutes ago 84.1 MBwangshibo/myubuntu v1 6ce4aedd12cd 6 minutes ago 84.1 MBdocker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB 再次进行推送(注意:下面的v1的tag标签可以不打,默认是latest)。推送操作时间稍微会有一点长,耐心等待~[root@docker-test1 ~]# docker push wangshibo/myubuntu:v1 The push refers to a repository [docker.io/wangshibo/myubuntu]b5948ba9486d: Pushed8d7ea83e3c62: Mounted from library/ubuntu6a061ee02432: Mounted from library/ubuntuf73b2816c52a: Mounted from library/ubuntu6267b420796f: Mounted from library/ubuntua30b835850bf: Mounted from library/ubuntuv1: digest: sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d size: 1564 最后登录自己的Docker Hub,即https://hub.docker.com/登录后,在Repositories里面就可以看到自己在上面推送的镜像wangshibo/myubuntu:v1了,这是个对外的镜像,可以在网络上下载。在Docker hub上可以看到这个镜像的下载命令(注意下载时跟上tag标签,如果是latest的默认tag可以不跟)也可以直接在Docker hub上删除这个镜像(Repositories-镜像-Settings-delete) 比如在另一台服务器上下载这个镜像[root@kevin-test ~]# docker pull wangshibo/myubuntuPulling repository wangshibo/myubuntuRepository not found 需要跟上tag标签[root@kevin-test ~]# docker pull wangshibo/myubuntu:v1v1: Pulling from wangshibo/myubuntu68e2a091ef24: Pull complete8f9dd35f6299: Pull completea81a6171600b: Pull completea211a2bc7010: Pull complete9e71a0b4f83a: Pull complete0cf75bb335aa: Pull completec393a882769e: Pull completeDigest: sha256:845fa3dcc9d0de1b9c701e1009918995da35a29012015f6c297a05edc489e018Status: Downloaded newer image for wangshibo/myubuntu:v1[root@kevin-test ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEwangshibo/myubuntu v1 c393a882769e 12 minutes ago 84.11 MB 在本机删除这个镜像[root@docker-test1 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmyubuntu v1 6ce4aedd12cd 15 minutes ago 84.1 MBwangshibo/myubuntu v1 6ce4aedd12cd 15 minutes ago 84.1 MBdocker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB 注意上面有两个6ce4aedd12cd的镜像ID,此时直接使用这个镜像ID是删除不掉的[root@docker-test1 ~]# docker rmi 6ce4aedd12cdError response from daemon: conflict: unable to delete 6ce4aedd12cd (must be forced) - image is referenced in multiple repositories 应该先删除docker tag改名前的镜像,使用镜像名称删除。(一般在docker tag镜像改名后,最好删除改名前的镜像)[root@docker-test1 ~]# docker rmi myubuntu:v1Untagged: myubuntu:v1Untagged: wangshibo/myubuntu@sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d [root@docker-test1 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEwangshibo/myubuntu v1 6ce4aedd12cd 15 minutes ago 84.1 MBdocker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB 这个时候就可以删除镜像ID删除了[root@docker-test1 ~]# docker rmi 6ce4aedd12cdUntagged: wangshibo/myubuntu:v1Deleted: sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4dDeleted: sha256:0ddeb6a16badd042914c2e72b9ef0331550c1cdcc4bdc6650a90cd9f57f1501b[root@docker-test1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/ubuntu 16.04 7aa3602ab41e 5 weeks ago 115 MB
删除镜像失败一例分享
[root@docker-test1 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@docker-test1 ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 打算删除掉docker的nginx镜像, 但是发现这个镜像就是删除不了,加了-f强制删除也不行,一直报Error: No such image的错误,最后终于找到了办法直接删除文件! [root@docker-test1 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 62f816a209e6 7 days ago 109MB [root@docker-test1 ~]# docker rmi nginxError: No such image: nginx [root@docker-test1 ~]# docker rmi 62f816a209e6Error: No such image: 62f816a209e6 [root@docker-test1 ~]# docker rmi 62f816a209e6 -fError: No such image: 62f816a209e6 如上,怎么都删除不掉nginx镜像!!!!! 处理办法:[root@docker-test1 ~]# systemctl stop docker[root@docker-test1 ~]# rm -rf /var/lib/dockerrm: cannot remove '/var/lib/docker/containers': Device or resource busy 删除不了的原因是: 在建立容器的时候做了相应目录的挂载,没有卸载,所以Device or resource busy 解决办法: 查找挂载的目录并卸载[root@docker-test1 ~]# cat /proc/mounts | grep "docker"/dev/mapper/centos-root /var/lib/docker/containers xfs rw,relatime,attr2,inode64,noquota 0 0proc /run/docker/netns/default proc rw,nosuid,nodev,noexec,relatime 0 0proc /run/docker/netns/a0626c54fd03 proc rw,nosuid,nodev,noexec,relatime 0 0proc /run/docker/netns/b18072de4224 proc rw,nosuid,nodev,noexec,relatime 0 0proc /run/docker/netns/b5298f643455 proc rw,nosuid,nodev,noexec,relatime 0 0proc /run/docker/netns/9f5e97637c98 proc rw,nosuid,nodev,noexec,relatime 0 0 [root@docker-test1 ~]# umount /var/lib/docker/containers[root@docker-test1 ~]# rm -rf /var/lib/docker [root@docker-test1 ~]# systemctl start docker 再次查看就没有这个镜像了[root@docker-test1 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
感谢各位的阅读!关于"如何通过容器提交镜像DockerCommit及推送镜像DockerPush"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
镜像
容器
推送
上下
再次
办法
标签
登录
内容
名称
时候
更多
目录
篇文章
网络
不行
不错
实用
耐心
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库管理系统安全性不
网络安全研究的论文
网络安全辩论会活动记录
网络安全面临的泄密风险
别以为网络安全离我们很远
修改数据库外观
服务器电源风扇安装
秦淮数据库谁的
上传照片服务器错误是什么意思
truenas能搭建云服务器
数据库序列风险
网络技术服务需要后置许可吗
宇视科技软件开发岗位薪资
网络安全事故罪判几年
无锡无线网络技术电话
服务器搭建邮件服务器
节点服务器什么意思
数据库网页程序设计
计算机网络安全培训课程全套
只狼npc数据库
什么是iis服务器
阳山百铢网络技术有限公司
网络安全检索式
张家口大数据服务器散热量
sql数据库调优软件
港股互联网科技板块被错杀了吗
公司网络安全调试
网络安全类算法
hyer v 服务器管理器
证券公司网络技术服务