Docker系列06—基于容器制作镜像并上传到Docker Registry

1、制作镜像

1.1 镜像的生成途径

  • 基于容器制作
  • dockerfile,docker build

  本篇主要详细讲解基于容器制作镜像;基于dockerfile 制作镜像在后一张文章Docker系列07—Dockerfile 详解中详细介绍;

1.2 基于容器制作

docker commit

(1)格式

?
1
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

(2)Options 参数

  • -a,作者(例如,“along <along@along.com>”)
  • -c,修改Dockerfile指令应用于创建的镜像
  • -m,提交消息
  • -p,在提交期间暂停容器(默认为true)

(3)示例1:简单的基于容器创建一个新的镜像

① 先运行一个容器

?
1
2
3
4
5
6
7
[root@along ~]# docker run --name b1 -it busybox
/ # ls /
bin   dev   etc   home  proc  root  sys   tmp   usr   var
/ # mkdir -p /date/html
/ # echo "<h1>busybox httpd server</h1>" > /date/html/index.html
/ # cat /date/html/index.html
<h1>busybox httpd server</h1>

  

② 不用退出这个容器,另起终端在b1容器基础上,制作新镜像

?
1
2
3
4
5
[root@along ~]# docker commit -p b1
sha256:3a6523b08bea7eb339ae04cc8a98caabfd46fbd27ccf31409cc3e8a764effdc1
[root@along ~]# docker image ls
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
<none>                   <none>              bf29b97ba38d        7 seconds ago       1.15 MB

  

③ 给新制作的镜像打标签

?
1
2
3
4
[root@along ~]# docker tag bf29b97ba38d along/httpd:v0.1
[root@along ~]# docker image ls
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
along/httpd              v0.1                bf29b97ba38d        39 seconds ago      1.15 MB

  

④ 可以对同一个镜像,再打标签

?
1
2
3
4
5
[root@along ~]# docker tag along/httpd:v0.1 along/httpd:latest
[root@along ~]# docker image ls
REPOSITORY               TAG                 IMAGE ID            CREATED              SIZE
along/httpd              latest              bf29b97ba38d        About a minute ago   1.15 MB
along/httpd              v0.1                bf29b97ba38d        About a minute ago   1.15 MB

  

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

?
1
2
3
4
5
[root@along ~]# docker image rmi along/httpd:latest
Untagged: along/httpd:latest
[root@along ~]# docker image ls
REPOSITORY               TAG                 IMAGE ID            CREATED              SIZE
along/httpd              v0.1                bf29b97ba38d        About a minute ago   1.15 MB

  

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

?
1
2
3
4
[root@along ~]# docker run --name b2 -it along/httpd:v0.1
/ # cat /date/html/index.html
<h1>busybox httpd server</h1>
/ # exit

  

(4)示例2:基于容器创建新的镜像,并修改执行命令CMD

① 基于容器b1创建新的镜像,并修改命令为执行httpd服务

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

注解:busybox 中httpd 语法

  • -f:不运行为守护进程,在前台运行
  • -h:指定httpd运行的主目录

② 运行新的镜像v0.2

?
1
2
[root@along ~]# docker run --name b3 -d along/httpd:v0.2
43e8731be7abd34a9b332c84bc622a1ef8707dc94465d3639db194c0b504cc42

  

③ 验证成功

?
1
2
3
4
5
6
[root@along ~]# docker inspect b3 |grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3"
[root@along ~]# curl 172.17.0.3
<h1>busybox httpd server</h1>

  

2、了解Docker Registry

2.1 介绍

  • registry 用于保存docker 镜像,包括镜像的层次结构和元数据。
  • 启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从registry中下载该镜像并保存到本地;
  • 拉取镜像时,如果不知道registry仓库地址,默认从Docker Hub搜索拉取镜像

2.2 分类

  • Sponsor Registry第三方的registry,供客户和docker社区使用;
  • mirror Registry第三方的registry,只让客户使用;如docker cn和阿里云的镜像加速器;
  • vendor Registry服务商的registry,由发布docker镜像的供应商提供的registry;如红帽提供的专有的,收费提供;
  • private Registry通过设有防火墙和额外的安全层的私有实体提供的registry;自建的registry,在本地搭建registry,节省带宽

2.3 registry组成(repository和index)

(1)Repository

  • 由特定的docker镜像的所有迭代版本组成的镜像仓库;
  • 一个registry中可以存在多个repository:
    • repository可分为“顶层仓库”和“用户仓库”
    • 用户仓库名称格式为“用户名/仓库名”
  • 每个仓库可以包含多个Tag(标签),每个标签对应一个镜像

(2)Index

  • 维护用户账户、镜像的校验以及公共命名空间的信息
  • 相当于为registry提供了一个完成用户认证等功能的检索接口

2.4 拉取仓库镜像的格式

?
1
docker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
  • registry:仓库服务器地址:不指定默认是docker hub
  • port:端口;默认是443,因为是https协议
  • namespace:名称空间,指是哪个用户的仓库,如果是顶层仓库,可省
  • name:仓库名
  • tag:标签名;默认是latest版本

2.5 知名docker仓库

  • https://hub.docker.com/
  • https://quay.io/

  例:docker pull quay.io/coreos/flannel:v0.10.0-amd64

3、将制作的镜像上传到自己的私有registry仓库中

3.1 创建自己的docker registry

(1)可以在docker hub上创建;但注册docker hub需要***;

(2)也可以在阿里云上https://cr.console.aliyun.com/cn-hangzhou/repositories创建自己的docker仓库

① 创建镜像仓库

② 选择创建本地仓库

③ 点击管理,会有操作指南,大家跟着操作即可,这里我就不再演示了

本文用的是docker hub

3.2 登录docker仓库

?
1
2
3
[root@along ~]# docker login -u alongedu
Password:
Login Succeeded

  

3.3 将镜像打标签,对应自己的registry

?
1
[root@along ~]# docker tag busybox:latest alongedu/httpd:v0.1

  

3.4 push上传自己的镜像

?
1
2
3
4
[root@along ~]# docker push alongedu/httpd:v0.1
The push refers to a repository [docker.io/alongedu/httpd]
23bc2b70b201: Pushed
v0.1: digest: sha256:cbcde3595079b1f7a6b046e96e7547fe786d5c2c8eba678bc260161bc01b8dbe size: 527

  

3.5 在自己的私有仓库验证

转载于:https://www.cnblogs.com/dengbingbing/p/10399251.html

Docker系列06—基于容器制作镜像并上传到Docker Registry相关推荐

  1. 基于容器制作镜像(apache)

    准备工作 //下载apache源码包 [root@localhost ~]# wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz https: ...

  2. Docker系列五基于CentOS制造镜像

    前言 起因是在更新博客的时候,发现可以用更优雅的方式来实现原有的目的,所以重新整理后,将原文改成了两篇,都收录在了该系列中. 构建Docker镜像,简单来说分为以下两种: 拉取CentOS的操作系统镜 ...

  3. docker镜像文件上传至Docker Hub

    1. Docker Hub中新建存储库 https://hub.docker.com 2. 构建docker镜像文件 进入Dockerfile 文件所在的路径,构建镜像文件命令 docker imag ...

  4. Docker基于容器制作httpd镜像(使用nfs共享存储部署一个网站)

    Docker基于容器制作httpd镜像 1 编译安装httpd 2 安装nfs共享存储 3 使用nfs共享存储提供httpd网页服务 4 在浏览器上进行测试访问 1 编译安装httpd [root@d ...

  5. 基于Dockerfile制作镜像

    <基于Dockerfile制作镜像> 目录... 2 一.Dockerfile简介及书写规则... 3 1.FROM(指定基础image)... 3 2.MAINTAINER(用来指定镜像 ...

  6. jenkins+maven+docker java项目编译、打包、构建镜像、上传私有仓库、web容器部署

    本环境非常简单,主要实现如下流程功能 员工通过eclipse提交java代码---gitlab更新代码----jenkins通过maven编译打包----生成war包----制作docker镜像并上传 ...

  7. 容器单机编排工具 Docker Compose,swap 限制,配置默认的CFS调度程序,Stress-ng 压力测试工具,docker官网镜像上传,及阿里云镜像上传,Docker 的资源限制

    目录 Docker Compose介绍   有版本问题 一键生成 docker-compose.yml docker官网镜像上传,及阿里云镜像上传 Docker 之分布式仓库 Harbor Docke ...

  8. docker镜像打包上传

    首先我们先到docker官网注册一个账号,这样我们才能将制作好的镜像上传到docker仓库,打开https://hub.docker.com/ 1.查看本地所有镜像 docker images 2.选 ...

  9. 如何将docker 镜像上传到docker hub仓库

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

最新文章

  1. PyCharm中控制台输出日志分层级分颜色显示
  2. JavaBean的保存范围与javaBean的删除
  3. oracle中的decode的使用
  4. 浏览器卡怎么办_SD卡无法格式化怎么修复?简单修复方法介绍
  5. C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!
  6. nginx html解析插件,nginx配置信息的解析流程
  7. Sobel两种算子形式
  8. eclipse 上svn插件的安装,百度知道
  9. apache基本配置
  10. OpenCV3.4.13+OpenCV_contrib 双摄像头实时拼接 环境配置
  11. linux 文件名加粗,konsole与用粗体绘制强调色
  12. 【高速PCB电路设计】2.高速电路DDR原理图概述
  13. java 淘口令_淘口令解析
  14. MySQL报错端口3306解决方法
  15. 如何用python画流程图_Markdown笔记:如何画流程图
  16. CTF 每日一题 Day18 传统知识+古典密码
  17. 微信小老虎图标怎么弄?微信小老虎状态设置方法详细步骤
  18. qrcodejs2二维码生成js
  19. 蓝桥杯真题 14省3-李白打酒 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上
  20. 用来测试的在线小视频url地址

热门文章

  1. 买卖股票的最佳时机IV
  2. 解决ImportError: cannot import name ‘imread‘ from ‘scipy.misc‘
  3. HTML <dfn> 标签的简单介绍
  4. html代码中本地路径里斜杠 / 和反斜杠 \ 的区别
  5. 家庭中计算机应用包括,《管理信息系统中计算机应用》沟通考笔试B卷答案
  6. 2.5 使用scriptfiles
  7. 致力协同办公oa系统服务器设置,致力协同办公oa系统安装手册新.pdf
  8. get pid and kill
  9. linux下scp命令详解
  10. Apache Commons:Betwixt介绍