容器提交镜像以及推送镜像

标签: Docker

在本地创建一个容器后,可以依据这个容器创建本地镜像,并可把这个镜像推送到Docker hub中,以便在网络上下载使用

查看镜像
[root@client ~]# docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
ubuntu                                    16.04               005d2078bdfa        9 days ago          125MB
192.168.31.10:8080/kevin_bo/hello-world   v1                  bf756fb1ae65        4 months ago        13.3kB
 
创建一个名为myubuntu的容器
[root@client ~]# docker run -it --name myubuntu -d ubuntu:16.04 
ef4ca69f1419e1e1a74e4451a8cfded66d11849c36573a0089c7788995382140
[root@client ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ef4ca69f1419        ubuntu:16.04        "/bin/bash"         23 seconds ago      Up 9 seconds                            myubuntu
 
 
docker commit :从容器创建一个新的镜像。
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
 
根据这个myubuntu容器提交镜像
[root@client ~]# docker commit -a "hanshuaiping" -m "this is test" ef4ca69f1419 myubuntu:v1
sha256:4b24ccf98a3a17b7dc8a4253fb9e57e4e2d11fbd2d63988174bcdca39c434d9c
 
再次查看镜像,发现镜像myubuntu:v1已经提交到本地了
[root@client ~]# docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
myubuntu                                  v1                  4b24ccf98a3a        5 seconds ago       125MB
ubuntu                                    16.04               005d2078bdfa        9 days ago          125MB
192.168.31.10:8080/kevin_bo/hello-world   v1                  bf756fb1ae65        4 months ago        13.3kB
 
在mybuntu:v1镜像推送到docker hub仓库中去
# docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
--disable-content-trust :忽略镜像的校验,默认开启
 
 
首先是登录docker hub (用户名:hanshuaiping    密码:*******)
[root@client ~]# docker login
Login 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: hanshuaiping
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

在这里插入图片描述

[root@docker-test1 ~]# docker push wangshibo/myubuntu:v1
The 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 images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
myubuntu             v1                  6ce4aedd12cd        6 minutes ago       84.1 MB
wangshibo/myubuntu   v1                  6ce4aedd12cd        6 minutes ago       84.1 MB
docker.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: Pushed
8d7ea83e3c62: Mounted from library/ubuntu
6a061ee02432: Mounted from library/ubuntu
f73b2816c52a: Mounted from library/ubuntu
6267b420796f: Mounted from library/ubuntu
a30b835850bf: Mounted from library/ubuntu
v1: digest: sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d size: 1564

最后登录自己的Docker Hub,即https://hub.docker.com/
登录后,在Repositories里面就可以看到自己在上面推送的镜像hanshuaiping/myubuntu:v1了,这是个对外的镜像,可以在网络上下载。
在Docker hub上可以看到这个镜像的下载命令(注意下载时跟上tag标签,如果是latest的默认tag可以不跟)
也可以直接在Docker hub上删除这个镜像(Repositories-镜像-Settings-delete)

在这里插入图片描述

下载这个镜像
[root@client ~]# docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
hanshuaiping/myubuntu                     v1                  4b24ccf98a3a        19 minutes ago      125MB
myubuntu                                  v1                  4b24ccf98a3a        19 minutes ago      125MB
ubuntu                                    16.04               005d2078bdfa        9 days ago          125MB
192.168.31.10:8080/kevin_bo/hello-world   v1                  bf756fb1ae65        4 months ago        13.3kB
[root@client ~]# docker rmi hanshuaiping/myubuntu:v1
Untagged: hanshuaiping/myubuntu:v1
Untagged: hanshuaiping/myubuntu@sha256:675be105a0df1de53ee9d7866bf3522e1c496605f9cf142c75d2609e0e21415a
[root@client ~]# docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
myubuntu                                  v1                  4b24ccf98a3a        19 minutes ago      125MB
ubuntu                                    16.04               005d2078bdfa        9 days ago          125MB
192.168.31.10:8080/kevin_bo/hello-world   v1                  bf756fb1ae65        4 months ago        13.3kB
[root@client ~]# docker login
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@client ~]# docker pull hanshuaiping/myubuntu:v1
v1: Pulling from hanshuaiping/myubuntu
Digest: sha256:675be105a0df1de53ee9d7866bf3522e1c496605f9cf142c75d2609e0e21415a
Status: Downloaded newer image for hanshuaiping/myubuntu:v1
[root@client ~]# docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
myubuntu                                  v1                  4b24ccf98a3a        21 minutes ago      125MB
hanshuaiping/myubuntu                     v1                  4b24ccf98a3a        21 minutes ago      125MB
ubuntu                                    16.04               005d2078bdfa        9 days ago          125MB
192.168.31.10:8080/kevin_bo/hello-world   v1                  bf756fb1ae65        4 months ago        13.3kB

=删除镜像失败一例分享==

[root@client ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@client ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
 
打算删除掉docker的nginx镜像, 但是发现这个镜像就是删除不了,加了-f强制删除也不行,一直报Error: No such image的错误,
最后终于找到了办法直接删除文件!
 
[root@client ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              62f816a209e6        7 days ago          109MB
 
[root@client ~]# docker rmi nginx
Error: No such image: nginx
 
[root@client ~]# docker rmi 62f816a209e6
Error: No such image: 62f816a209e6
 
[root@client ~]# docker rmi 62f816a209e6 -f
Error: No such image: 62f816a209e6
 
如上,怎么都删除不掉nginx镜像!!!!!
 
处理办法:
[root@client ~]# systemctl stop docker
[root@client ~]# rm -rf /var/lib/docker
rm: cannot remove ‘/var/lib/docker/containers’: Device or resource busy
 
删除不了的原因是: 在建立容器的时候做了相应目录的挂载,没有卸载,所以Device or resource busy
 
解决办法: 查找挂载的目录并卸载
[root@client ~]# cat /proc/mounts | grep "docker"
/dev/mapper/centos-root /var/lib/docker/containers xfs rw,relatime,attr2,inode64,noquota 0 0
proc /run/docker/netns/default proc rw,nosuid,nodev,noexec,relatime 0 0
proc /run/docker/netns/a0626c54fd03 proc rw,nosuid,nodev,noexec,relatime 0 0
proc /run/docker/netns/b18072de4224 proc rw,nosuid,nodev,noexec,relatime 0 0
proc /run/docker/netns/b5298f643455 proc rw,nosuid,nodev,noexec,relatime 0 0
proc /run/docker/netns/9f5e97637c98 proc rw,nosuid,nodev,noexec,relatime 0 0
 
[root@client ~]# umount /var/lib/docker/containers
[root@client ~]# rm -rf /var/lib/docker
 
[root@client ~]# systemctl start docker
 
再次查看就没有这个镜像了
[root@client ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
版权声明:本文为youmatterhsp原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/youmatterhsp/article/details/105905942

智能推荐

ElasticSearch入门教程

什么是ElasticSearch 基于Apache Lucene构建的开源搜索引擎 采用Java编写,提供简单易用的RESTFul API 轻松的横向扩展,可支持BP级的结构化和非结构化的数据处理 可应用场景 海量数据分析引擎 站内搜索引擎 数据仓库 一线公司实际应用场景 英国卫报 - 实时分析公众对文章的回应 维基百科、GitHub-站内实时搜索 百度 - 实时日志监控平台 安装 Windows...

小程序明明已经分包了,为啥没有大小没有变???

为什么要分包 真机预览时出现大于2M,无法预览。 对项目进行规整划分 如何分包 实际操作 先将需要分包的文件拷贝到小程序根目录下 在app.json中配置分包结构(如图) 修改被分包中的引用路径,如图片资源、导航URL 可以设置分包的在哪个页面加载 图中表示在进入login页面进行下载设置的分包,all表示在所有网络下。 失败解决!分包了为啥还是提示大小超过2M 分包的文件内所引用的外部文件也必须...

js pixi框架 极其详细到位(入门)-----转载

pixi是一个js 的轻量级的游戏类库框架,很适用于做H5的一些canvas动画特效。 这篇文章是关于pixi的入门教程 ,里面的讲解非常的到位细致,是我看到过的文章里讲解的算是最好的了。  去年快过年看的教程 ,今天再想看的时候发现没找到,不过经过不懈的搜索还是找到 ,那就赶紧给转过来吧。   pixi(入门) Pixi教程 基于官方教程翻译;水平有限,如有错误欢迎提PR,转...

sklearn支持向量机(SVM)多分类问题

模型 sklearn.svm中的支持向量机: Classify:SVC、nuSVC、LinearSVC Regression:SVR、nuSVR、LinearSVR OneClassSVM 本文采用Classify系列,classify三个模型的区别;参数详解 预处理 建模 训练 多种SVC、核函数对比 对比的结果: 优化linear核函数的SVC的惩罚系数 惩罚系数(C=)越高,对错误分类的惩罚...

第一阶段:CSS初步探讨

传统盒子和怪异盒子的初接触 作为一个小白,第一次碰到这种盒子,总算能对盒子变形有一点粗浅认识了,不多说,直接上代码观察 传统盒子的宽高等于内容区域的宽高,如果padding改变则会导致整个盒子变形,撑开来,如box1和box1-1所示 怪异盒子的宽高=内容的宽高+padding2+border2,所以改变padding时不会改变整个盒子的大小,不会变形...

猜你喜欢

Etherlab源码解析--ecdev_offer()

在linux系统中,网卡及对应的net_device结构体实例是由上层的网络子系统操作的,ecdev_offer()的作用是将网卡转交给ehterlab master操作。 一、预备知识net_device结构体 linux系统中,每一个网卡对应一个net_device结构体的实例,一个网卡要能够被内核识别并收发数据,一般需要经过net_device结构体的创建、初始化、注册到内核、打开设备等步骤...

ARM裸机的知识点总结---------10、解决X210开发板软开关按键问题( 引脚功能复用)

Author: 想文艺一点的程序员 自动化专业 工科男 再坚持一点,再自律一点 CSDN@想文艺一点的程序员 来自朱有鹏嵌入式的学习笔记 目录 1、X210开发板的软启动电路详解 2、为什么要软启动 3、开发板供电置锁原理和分析 4、写代码+实验验证 1、X210开发板的软启动电路详解 (1)210供电需要的电压比较稳定,而外部适配器的输出电压不一定那么稳定,因此板载了一个文稳压器件MP1482....

Vue transition过渡

Vue transition过渡    Vue在插入、更新或者移除DOM时,提供多种不同方式的应用过渡效果。 (1)单元素/组件过渡          css过渡          css动...

异常java.lang.ExceptionInInitializerError

java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。 例如: 配置文件 java类 如果在Constant类中调用 可以对照配置文件发现不存在该参数,所以在程序启动初始化的时候就会报错,对应做出修改即可。...

OpenCV学习之路(十二) 形态学操作

  目录 腐蚀与膨胀 更多的形态学操作 腐蚀与膨胀 更多形态学操作   腐蚀与膨胀 形态学操作就是基于形状的一系列图像处理操作。 最基本的形态学操作就是腐蚀( erode )和膨胀( dilate )。其主要功能如下: 消除噪声; 分割出独立的图像元素,在图像中连接相邻的元素; 寻找图像中明显的极大值区域或极小值区域; 求出图像的梯度。 1. 膨胀函数: dilate() 。函...


http://www.vxiaotou.com