创建docker镜像的私有仓库
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镜像的私有仓库的更多相关文章
- docker 创建新的镜像到私有仓库
docker:/data# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bd6db4127a9e centos &q ...
- [python](Docker SDK)上传镜像到私有仓库(tls、身份认证)
(Docker SDK)上传镜像到私有仓库(tls.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数 ...
- docker registry (私有仓库)
首先要导入registry的镜像文件 1.普通的registry 一条命令创建一个仓库 docker run -d -p 5000:5000 --restart=always --name regis ...
- Docker笔记--镜像&基于GO项目创建Docker镜像
Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...
- Spring Boot 创建 Docker 镜像
随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分.为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Dock ...
- win10 下安装docker,创建镜像,push镜像到私有仓库,创建私有仓库,修改镜像仓库地址
通过连接下载window docker安装文件,https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...
- Docker创建镜像以及私有仓库
Docker的安装及镜像.容器的基本操作详见博客https://blog.51cto.com/11134648/2160257下面介绍Docker创建镜像和创建私有仓库的方法,详细如下: 创建镜像 创 ...
- docker部署mysql,nginx,php,并上传镜像到私有仓库
前言 最近公司准备把现有环境全部搞成容器化,所以笔者就先了解了一下docker,并搞了一搞,并把自己搞的过程记录下来.话不多说直接开干 环境说明 Centos7 Docker version 18.0 ...
- docker推送镜像到私有仓库
配置私有仓库源 私有仓库地址:registry.supos.ai 修改/etc/docker/daemon.json文件,增加insecure-registries,如下所示: { "ins ...
随机推荐
- nodejs+mysql入门实例(删)
//连接数据库 var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'bdm253137448. ...
- np.percentile()
np.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=Fal ...
- iOS 崩溃分析
崩溃统计分析,在APP中是非常常见一种优化APP,发现APP的BUG的方式. 1.异常处理 可通过try catch 方式处理,如果发生异常,会走catch ,最终走fianlly.对一些我们不想他崩 ...
- 前端获取的数据是undefined
var id = $("id1").val(); var username = $("username1").val(); var password = $(& ...
- MySQL主从同步问题
1,The replication receiver thread cannot start because the master has GTID_MODE = OFF and this serve ...
- uvm设计分析——callback
uvm_callback,设计者在进行class的function设计时,有意留下的一些hook,总是遍历某个pool中的对象: 使用者在使用时,将实现添加到某个pool中: callback中,最重 ...
- DX9 顶点缓存案例
// @time 2012.3.5 // @author jadeshu //包含头文件 #include <Windows.h> #include <d3d9.h> #pra ...
- html5-常用的3个基本标签
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- sql server 将两列的值合并到另一列
select top 100 t2.FullName, * from Subject,(select id, isnull(first_name,'') +isnull(middle_name,'') ...
- Python并发编程之线程池/进程池--concurrent.futures模块
一.关于concurrent.futures模块 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/ ...