搭建自己的docker registry,非生产环境
来源:互联网 发布:手机 dns劫持 数据网络 编辑:程序博客网 时间:2024/05/19 20:19
版本信息
ubuntu 16.04
docker 1.11.2
registry 2
本地安装registry
由于docker中registry的latest版本为1.x, 所以我们指定安装版本2。
docker pull registry:2
通过这个image创建一个Container
docker run -p 5000:5000 -d --name=local_registry registry:2
docker ps
之后使用docker ps查看就能看到名为 local_registry的container已经在后台运行了。
测试registry
从官方下载hello-world image 用以测试, 192.168.223.132是本机局域网IP
docker pull hello-world:latest
docker tag hello-world:latest 127.0.0.1:5000/hello-world
docker tag hello-world:latest 192.168.223.132:5000/hello-world
进入container容器查看
docker exec -i -t local_registry /bin/sh
或者
docker exec -i -t local_registry /bin/bash
这个就看到了我们的上传的image了, 由于使用registry:2所以在容器中上传的image存在 /var/lib/registry中,我们将其删除。
然后exit退出容器。
如果再按照这个地址push, 就会出现错误。
如果再按照这个地址push, 就会出现错误。
docker push 192.168.223.132:5000/hello-world
这是由于使用https原因,查了很多,都说在/etc/default/docker中修改 DOCKER_OPTS, 然后重启docker。 然而这并没有什么卵用
所以,这种方式只能用于本地主机,不能用在局域网中。所以,我们采取官方推荐的,用https,自建证书
搭建https regsitry
server 端:
- 生成自签名证书
mkdir -p ~/registry/certs && cd ~/registry/certs
openssl req -x509 -days 3650 -subj '/CN=reg.domain.com/' -nodes -newkey rsa:2048 -keyout registry.key -out registry.crt
这个由于ca认证不支持ip地址,所以采用域名,之后在hosts中添加映射就可以了。
- 添加域名
在 /etc/hosts 添加一行 192.168.1.102 reg.domain.com
vim /etc/hosts
- 生成用户名密码
mkdir -p ~/registry/auth && cd ~/registry/auth
$ docker run --rm --entrypoint htpasswd registry:2 -Bbn testuser password > ./htpasswd
使用registry:2中的 htpasswd 生成用户名密码 testuser password 并存到本地。
- 创建证书目录
mkdir -p /etc/docker/certs.d/reg.domain.com:5000
cp ~/registry/certs/registry.crt /etc/docker/certs.d/reg.domain.com:5000
- 启动registry , 删除之前的 local_registry
docker stop local_registry && docker rm local_registry
$ docker run -d -p 5000:5000 --name=registry --restart=always -v ~/registry/auth:/auth -v ~/registry/certs:/certs -v /data/registry:/var/lib/registry -e REGISTRY_AUTH=htpasswd -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key registry:2
如果启动之后 5000端口没有监听,尝试将-d 放到-p的后面
client 端:
- 证书相关
通过scp将证书copy到本地
sudo mkdir -p /etc/docker/certs.d/reg.domain.com:5000
$ sudo scp -r todd@192.168.223.132:/home/todd/registry/certs/registry.crt /etc/docker/certs.d/reg.domain.com:5000
测试
登录输入之前设置的 testuser 和 password
docker login reg.domain.com:5000
Username: testuser
Password: password
docker pull hello-world
docker tag hello-world:latest reg.domain.com:5000/hello-world
docker push reg.domain.com:5000/hello-world
阅读全文
1 0
- 搭建自己的docker registry,非生产环境
- 搭建自己的docker registry仓库
- 搭建docker-registry开发环境
- Docker Swarm搭建生产环境的集群
- docker registry v2 ssl 环境搭建
- Docker学习记录(1)——搭建自己的Docker Registry
- Docker-搭建Docker Registry
- 部署自己的私有 Docker Registry
- 构建自己的私人docker registry
- 部署自己的私有 Docker Registry
- 如何使用自己的Docker Registry
- 记一次Docker生产环境搭建
- 关于Docker Registry v2的搭建
- 关于Docker Registry v2的搭建
- 搭建一个私有的Docker registry
- 关于Docker Registry v2的搭建
- Docker私有仓库Registry的搭建验证
- Docker私有仓库Registry的搭建验证
- P2327 [SCOI2005]扫雷
- PHP开源框架之AJAX
- Ubuntu14.04.3安装Openssh-server
- 条件随机场专题(3)--说起CRF,不得不提的HMM
- win10下安装caffe新得
- 搭建自己的docker registry,非生产环境
- Android广播总结
- zxing实现生成二维码与解析
- 安卓QQ,微信分享URL后面拼接参数
- uva 514 Rails
- 因服务器时间不一致导致的MapRecude 任务运行失败
- 计算机网络——运输层TCP/UDP
- tf.cond()的用法
- matlab转置的问题