【Docker系列】6-Docker Hub和Registry实战

专栏目录

  1. 【Docker系列】1-virtual box配置Linux虚拟机
  2. 【Docker系列】2-Docker入门,容器化剖析
  3. 【Docker系列】3-Centos7 Docker安装手册
  4. 【Docker系列】4-Docker image和container实战操作大全
  5. 【Docker系列】5-Dockerfile镜像制作指南
  6. 【Docker系列】6-Docker Hub和Registry实战
  7. 【Docker系列】7-Docker 数据持久化和网络模式

Docker Hub和Registry实战

官方参考 https://docs.docker.com/registry/configuration/

环境说明
仓库搭建在centos7中,讲解linux和win两端发布到镜像

角色系统类型IP
服务端Centos 7192.168.56.185
客户端Centos 7192.168.56.186
客户端Windows 10192.168.119.47

私服服务器下载registry镜像

在服务端下载私服镜像

[root@localhost registry]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
ddad3d7c1e96: Pull complete 
6eda6749503f: Pull complete 
363ab70c2143: Pull complete 
5b94580856e6: Pull complete 
12008541203a: Pull complete 
Digest: sha256:bac2d7050dc4826516650267fe7dc6627e9e11ad653daca0641437abdf18df27
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest

运行registry镜像

docker run -itd -v /data/registry:/var/lib/registry --net=host --name kojon-registry registry:latest

run命令参数说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

  • -d: 后台运行容器,并返回容器ID;

  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -P: 随机端口映射,容器内部端口随机映射到主机的端口

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

  • –name=“nginx-lb”: 为容器指定一个名称;

  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

  • -h “mars”: 指定容器的hostname;

  • -e username=“ritchie”: 设置环境变量;

  • –env-file=[]: 从指定文件读入环境变量;

  • –cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;

  • -m : 设置容器使用内存最大值;

  • –net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

    默认为bridge桥接,需要指定参数-p 来映射端口 参考-p参数

    如果使用–net=host 即让容器和宿主机共享同一网络,容器内部运行程序的端口不能和宿主机有冲突

  • –link=[]: 添加链接到另一个容器;

  • –expose=[]: 开放一个端口或一组端口;

  • –volume , -v: 绑定一个卷 将一个本地地址映射复制到docker内

示例如下:

# 运行镜像
[root@localhost registry]# docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --name kojon-registry registry:latest
47723102fe8d8ae35bce39744298f9dd916fa6515ed86805ceeaf693a4157410

查看日志:

[root@localhost registry]# docker logs -f -t --tail 500 47723102fe8d8ae35bce39744298f9dd916fa6515ed86805ceeaf693a4157410
2021-05-19T08:47:05.128492112Z WARN[0000] No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable.  go.version=go1.11.2 instance.id=aaec4b0e-266e-45f0-9876-e9713a879488 service=registry version=v2.7.1
2021-05-19T08:47:05.128560572Z INFO[0000] redis not configured                          go.version=go1.11.2 instance.id=aaec4b0e-266e-45f0-9876-e9713a879488 service=registry version=v2.7.1
2021-05-19T08:47:05.138087303Z INFO[0000] Starting upload purge in 25m0s                go.version=go1.11.2 instance.id=aaec4b0e-266e-45f0-9876-e9713a879488 service=registry version=v2.7.1
2021-05-19T08:47:05.151680721Z INFO[0000] using inmemory blob descriptor cache          go.version=go1.11.2 instance.id=aaec4b0e-266e-45f0-9876-e9713a879488 service=registry version=v2.7.1
2021-05-19T08:47:05.158031343Z INFO[0000] listening on [::]:5000                        go.version=go1.11.2 instance.id=aaec4b0e-266e-45f0-9876-e9713a879488 service=registry version=v2.7.1

访问私服

  • 如果有防火墙,请先关闭或者添加TCP入口规则
防火墙命令
#查看防火墙运行状态
systemctl status firewalld   
#关闭防火墙
service firewalld stop
  • 访问: http://192.168.56.185:5000/v2/_catalog

image-20210519165241638

此时私服上还没有镜像,接下来配置好客户端就可以上传镜像了。

客户端配置daemon.json

官方配置参考 https://docs.docker.com/engine/reference/commandline/dockerd/

默认缺省值是上传到docker hub上

{
  "registry-mirrors": [],
  "insecure-registries": [],
  ... other info
}
# 等同于
{
  "registry-mirrors": [
    "https://registry.hub.docker.com"
  ],
  "insecure-registries": [
    "registry.hub.docker.com"
  ]
  ... other info
}

需要修改为指定的仓库时,修改此处的insecure-registries的值

centos7客户端
创建daemon.json配置文件

创建并写入值

echo '{ "insecure-registries":["192.168.56.185:5000"] }' > /etc/docker/daemon.json
重启docker服务
# systemctl stop docker
# systemctl start docker
windows10客户端
打开docker desktop
设置通讯开关

image-20210520162615759

设置私服仓库地址,并重启

image-20210520162756171

客户端发布镜像

打tag

语法 docker tag imageName:version registry-address/userName/imageName:version

docker tag springboot-docker:latest 192.168.56.185:5000/kojon/springboot-docker:latest
push 到仓库

语法 docker push registry-address/userName/imageName:version

docker push 192.168.56.185:5000/kojon/springboot-docker

docker命令是跨平台的,linux命令也如下:

PS C:\Users\OnlyC> docker images
REPOSITORY                                    TAG       IMAGE ID       CREATED       SIZE
springboot-docker                             latest    79f9b1219197   3 hours ago   643MB
java                                          latest    d23bdf5b1b1b   4 years ago   643MB
PS C:\Users\OnlyC> docker tag springboot-docker:latest 192.168.56.185:5000/kojon/springboot-docker:latest
PS C:\Users\OnlyC> docker images
REPOSITORY                                    TAG       IMAGE ID       CREATED       SIZE
192.168.56.185:5000/kojon/springboot-docker   latest    79f9b1219197   3 hours ago   643MB
springboot-docker                             latest    79f9b1219197   3 hours ago   643MB
java                                          latest    d23bdf5b1b1b   4 years ago   643MB
PS C:\Users\OnlyC> docker push 192.168.56.185:5000/kojon/springboot-docker
Using default tag: latest
The push refers to repository [192.168.56.185:5000/kojon/springboot-docker]
35c20f26d188: Pushed
c3fe59dd9556: Pushed
6ed1a81ba5b6: Pushed
a3483ce177ce: Pushed
ce6c8756685b: Pushed
30339f20ced0: Pushed
0eb22bfb707d: Pushed
a2ae92ffcd29: Pushed
latest: digest: sha256:da8f846f6754fd60e2be2895b4816bdb43c745c38f390923f646dd831e4369e3 size: 2000

windows上也可以直接使用docker desktop 来push

image-20210520180707858

所有文章都是以专栏系列编写,建议系统性学习,更容易成为架构师!
博主每天早晚坚持写博客给与读者价值提升,为了让更多人受益,请多多关照,如果觉得文章质量有帮助到你,请关注我的博客,收藏此文,持续提升,奥利给!
另外我不打算靠运营方式拿到博客专家的认证,纯纯的科技与狠活来征服读者,就看读者的感恩之心了,祝你好运连连。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xianghan收藏册

极简精品作,一分也是一份鼓励哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值