美文网首页
Docker学习笔记-私有仓库

Docker学习笔记-私有仓库

作者: 我已不是少年郎 | 来源:发表于2019-11-18 11:06 被阅读0次

把自己的镜像上传到公共仓库有很大风险,速度有时候也慢,搭建自己的仓库调试起来速度也快很多。
有harbor和registry两个方案,由于本人非正规化流程化大规模使用,所以用的是registry,harbor方式不做介绍。

一、本地单机仓库

拉取镜像
docker pull registry

修改地址,如果没有daemon.json文件,创建个新的
vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"],
   "insecure-registries":["http://192.168.1.81:5000"]
}

重启docker
systemctl daemon-reload
systemctl restart docker

打开5000端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent
firewall-cmd --reload

启动镜像本地/home/server/docker_repo目录挂载到虚拟目录/var/lib/registry
docker run -d -v /home/server/docker_repo:/var/lib/registry -p 5000:5000 --name myregistry registry:latest

修改tag
docker tag sapp 192.168.1.81:5000/sapp

上传
docker push 192.168.1.81:5000/sapp

下载
docker pull 192.168.1.81:5000/sapp

二、局域网及外网仓库

1、环境

1.1、2台物理机,仓库搭建在81上

仓库 IP 简称 系统
192.168.1.81 81 centos7.5
192.168.1.91 91 centos7.5

1.2、二级域名一个

如果不需要外网访问,可以不用二级域名。

由于笔者使用的是TP-LINK的路由器,所以直接申请的是tpddns的二级域名,当然也可以使用花生壳。测试环境准备好的域名是,lucien.tpddns.cn

1.3、测试环境

已经搭建过swarm集群环境,其中81作为master

2、搭建

以下操作均在81上进行,如果在91上进行会添加说明。

2.1、认证

创建证书,其中Common Name填写自己的二级域名:lucien.tpddns.cn

mkdir -p certs && openssl req \
   -newkey rsa:4096 -nodes -sha256 -keyout certs/tpddns.key \
   -x509 -days 99999 -out certs/tpddns.crt

创建认证目录
mkdir auth

创建账号user91和密码password91
docker run --entrypoint htpasswd registry:latest -Bbn user91 password91 > auth/htpasswd

把tpddns.crt证书copy到81、91的/home目录

在所有的集群物理机上(包括81和91)创建证书存放目录
mkdir -p /etc/docker/certs.d/lucien.tpddns.cn:5000

在81和91上拷贝证书到docker的认证目录
cp /home/tpddns.crt /etc/docker/certs.d/lucien.tpddns.cn\:5000/

在81和91上修改地址,如果没有daemon.json文件,创建个新的
vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"],
   "insecure-registries":["http://lucien.tpddns.cn:5000"]
}

2.2、端口和路由转发

打开81的5000端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent
firewall-cmd --reload

2.2.1、外网配置

在路由器里映射端口,把外网的5000端口映射到本地局域网内的81物理机上。操作路径:
应用管理——>虚拟服务器——>添加


2.2.2、内网配置

如果没有二级域名或者路由器等条件,可以自行修改各自主机的host配置,添加一个本地的虚拟域名映射到81的IP上,具体操作这里不再介绍。

2.3、建立仓库

启动registry,注意自己的auth目录、certs证书目录、仓库存放目录挂载地址。

docker run -d -p 5000:5000 --restart=always --name myregistry \
  -v /home/server/docker_repo/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v /home/server/docker_repo/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/tpddns.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/tpddns.key \
  -v /home/server/docker_repo:/var/lib/registry \
  registry:latest

在81、91上登录,输入刚才创建的账号密码user91,password91
docker login lucien.tpddns.cn:5000

3、测试

创建nginx的副本镜像,并且修改tag
docker tag nginx:latest lucien.tpddns.cn:5000/sapp:v2

上传到私有仓库
docker push lucien.tpddns.cn:5000/sapp:v2

编写swarm环境的配置文件sapp-compose.yml

version:    "3.7"

services:
 sapp: #服务名,自定义
   image: lucien.tpddns.cn:5000/sapp:v2 #镜像名,自己build或者改tag
   ports:
     - 18080:80 #映射物理机的18080端口
   networks:
     - sapp_overlay_network #使用网络名称
   deploy:
     mode:    replicated
     replicas:    5 #启动5个container

networks:
   sapp_overlay_network:



部署,注意加上--with-registry-auth参数,否则91上无法下载image
docker stack deploy -c sapp-compose.yml sapp --with-registry-auth

反部署
docker stack down sapp

相关文章

  • Docker学习笔记-私有仓库

    把自己的镜像上传到公共仓库有很大风险,速度有时候也慢,搭建自己的仓库调试起来速度也快很多。有harbor和regi...

  • Docker

    构建镜像仓库 Docker运行java程序 1.1.6 搭建docker私有仓库 新建私有仓库 1.2.1 数据挂...

  • docker

    docker 私有仓库 下载镜像registrydocker pull registry 配置私有仓库(/etc/...

  • docker 连接私有仓库

    docker 连接私有仓库,并向私有仓库推送镜像 一、检查是否已经配置私有仓库 Insecure Registri...

  • k8s学习笔记-5-私有harbor

    5 创建docker私有仓库 使用node5节点搭建harbor私有仓库 harbor仓库依赖docker和doc...

  • Docker

    一、Docker 私有仓库搭建 环境centos 6 192.168.1.2 Docker 仓库 192.168....

  • 【docker学习笔记】搭建私有仓库

    1.下载registry镜像 2. 通过下载后的镜像启动一个容器 参数说明: -v /opt/registry:/...

  • Docker搭建私有仓库之Harbor

    Docker搭建私有仓库之Harbor Harbor Harbor是构建企业级私有docker镜像的仓库的开源解决...

  • Docker之八私有仓库

    个人专题目录 Docker 私有仓库 1. 私有仓库搭建 2. 将镜像上传至私有仓库 3. 从私有仓库拉取镜像

  • 创建私有docker仓库

    使用私有仓库pull push更快速。 使⽤registry镜像创建私有仓库(仓库端) docker-regist...

网友评论

      本文标题:Docker学习笔记-私有仓库

      本文链接:https://www.haomeiwen.com/subject/iouvictx.html