CentOS Linux release 7.2.1511

Docker version 17.03.1-ce

安装registry镜像

同时安装一个比较小的镜像alpine待会作测试用:

# docker pull daocloud.io/registry
# docker pull daocloud.io/alpine

来个简单的测试下:

# docker run -d -p : --restart=always daocloud.io/registry
# docker tag daocloud.io/alpine localhost:/alpine
# docker push localhost:/alpine
# docker rmi localhost:/alpine
# docker pull localhost:/alpine
# docker images

这个仓库服务问题主要有两个,一是仓库的数据保存在容器而不是持久化到本地,二是不能在其他机器pull或push;

保存仓库数据

保存到宿主机的/data/docker/registry/:

# mkdir -p /data/docker/registry
# docker run -d -p : \
-v /data/docker/registry/:/var/lib/registry \
daocloud.io/registry
# docker push localhost:5000/alpine
# tree /data/docker/registry/ -L 5
  /data/docker/registry/
  └── docker
      └── registry
          └── v2
              ├── blobs
              │   └── sha256
              └── repositories
                  └── alpine

增加https认证

域名已经有证书的直接用,没有的生成一个自己的证书(红色那行必须填自己的域名):

# mkdir -p /data/docker/certs
# cd /data/docker/certs
# openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:GD
    Locality Name (eg, city) [Default City]:SZ
    Organization Name (eg, company) [Default Company Ltd]:YYYY
    Organizational Unit Name (eg, section) []:MMMM
    Common Name (eg, your name or your server's hostname) []:my.cn
    Email Address []:my@mail.cn

启动一个支持https的镜像,端口用默认的443就不需要在域名后面带端口了,顺便给容器起个名字myreg方便管理:

# docker run -d -p : --restart=always --name myreg \
-v /data/docker/registry/:/var/lib/registry \
-v /data/docker/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
daocloud.io/registry

现在去到另一台机器上测试下,配置下域名映射,然后把证书文件拷贝过来:

# sed -i '$a\[your ip] my.cn' /etc/hosts
# mkdir -p /etc/docker/certs.d/my.cn/
# cd /etc/docker/certs.d/my.cn/
# scp my.cn:/data/docker/certs/domain.crt .
# docker pull daocloud.io/alpine
# docker tag daocloud.io/alpine my.cn/alpine
# docker push my.cn/alpine
# docker pull my.cn/alpine

over

创建docker镜像的私有仓库的更多相关文章

  1. docker 创建新的镜像到私有仓库

    docker:/data# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bd6db4127a9e centos &q ...

  2. [python](Docker SDK)上传镜像到私有仓库(tls、身份认证)

    (Docker SDK)上传镜像到私有仓库(tls.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数 ...

  3. docker registry (私有仓库)

    首先要导入registry的镜像文件 1.普通的registry 一条命令创建一个仓库 docker run -d -p 5000:5000 --restart=always --name regis ...

  4. Docker笔记--镜像&基于GO项目创建Docker镜像

    Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...

  5. Spring Boot 创建 Docker 镜像

    随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分.为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Dock ...

  6. win10 下安装docker,创建镜像,push镜像到私有仓库,创建私有仓库,修改镜像仓库地址

    通过连接下载window docker安装文件,https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...

  7. Docker创建镜像以及私有仓库

    Docker的安装及镜像.容器的基本操作详见博客https://blog.51cto.com/11134648/2160257下面介绍Docker创建镜像和创建私有仓库的方法,详细如下: 创建镜像 创 ...

  8. docker部署mysql,nginx,php,并上传镜像到私有仓库

    前言 最近公司准备把现有环境全部搞成容器化,所以笔者就先了解了一下docker,并搞了一搞,并把自己搞的过程记录下来.话不多说直接开干 环境说明 Centos7 Docker version 18.0 ...

  9. docker推送镜像到私有仓库

    配置私有仓库源 私有仓库地址:registry.supos.ai 修改/etc/docker/daemon.json文件,增加insecure-registries,如下所示: { "ins ...

随机推荐

  1. [LeetCode] 276. Paint Fence_Easy tag: Dynamic Programming

    There is a fence with n posts, each post can be painted with one of the k colors. You have to paint ...

  2. Redis:redis.conf配置

    redis.conf配置: 配置主要分为几类:基础.快照.复制.安全.限制.详细日志.虚拟内存.高级配置.文件包含 ##------------------------------------基础配置 ...

  3. React对比Vue(03 事件的对比,传递参数对比,事件对象,ref获取DOM节点,表单事件,键盘事件,约束非约束组件等)

    import React from 'react'; class Baby extends React.Component { constructor (props) { super(props) t ...

  4. cocos2d JS-(JavaScript) JavaScript 中的简单继承关系

    JavaScript 语言本身没有提供类,没有其他语言的类继承机制,它的继承时通过对象的原型实现的,但这不能满足我们对 Cocos2d-JS 引擎的要求,所有类都直接或间接继承实现的. var Per ...

  5. 用URLRewriter重写url

    用url重新一般都是使用URLRewriter库,基本上都是一些配置,在webconfig中 首先配置configuration节点 <configSections> <sectio ...

  6. RNN通俗理解

    让数据间的关联也被 NN 加以分析,我们人类是怎么分析各种事物的关联,?最基本的方式,就是记住之前发生的事情. 那我们让神经网络也具备这种记住之前发生的事的能力. 再分析 Data0 的时候, 我们把 ...

  7. 22.用demo通过点击切换图片路径

    用demo通过点击切换图片路径 html: <img src="images/driving.png" class="driving"/> js: ...

  8. Unity shader学习之遮罩纹理

    什么是遮罩? 遮罩允许我们可以保护某些区域,使它们奂于某些修改. 例如下面的例子,使用遮罩来控制高光反射. 转载请注明出处:http://www.cnblogs.com/jietian331/p/71 ...

  9. [4]Windows内核情景分析---内核对象

    写过Windows应用程序的朋友都常常听说"内核对象"."句柄"等术语却无从得知他们的内核实现到底是怎样的, 本篇文章就揭开这些技术的神秘面纱. 常见的内核对象 ...

  10. django-pagination配置出错处理

    是否有人出现这类错误: 首先确认几个修改处: setting.py添加 INSTALLED_APPS = ( # ... 'pagination', ) 添加中间件 MIDDLEWARE_CLASSE ...