8.3 Docker 容器_搭建本地私有仓库

1. 仓库

所谓仓库,其实是个镜像仓库,
里面有很多别人已经打包好的镜像,可以直接使用docker pull命令将仓库中的镜像拉到本地,
默认的仓库Docker的官方仓库Docker Hub Registry

2. 搭建本地私有仓库

第一步:从外网拉取仓库registry

[root@server61 new]# 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
[root@server61 new]# docker images | grep registry
registry                          latest              1fd8e1b0bb7e        5 weeks ago         26.2MB

第二步:运行仓库,并取名为registry,映射端口5000

[root@server61 new]# docker run -d --name registry -p 5000:5000 registry
8c68abe2a8dfd6d1ff937ba3dc992e34011af96f87ec3c7f87e1bdc43cd5c1f5
[root@server61 new]# docker inspect registry
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "c8f5cc7af3d0229372226ed87f643f0a2479871b0b18a5236108129be7b09da9",
                    "EndpointID": "f13cb75e1b799da085791a6b47b926fff29323ceb06c018579c288b9e85849de",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null

第三步:修改镜像的名字,并设定上传镜像的位置

[root@server61 new]# docker tag yakexi007/game2048:latest localhost:5000/game2048
[root@server61 new]# docker images | grep game2048
yakexi007/game2048                latest              19299002fdbe        4 years ago         55.5MB
localhost:5000/game2048           latest              19299002fdbe        4 years ago         55.5MB

第四步:上传镜像到仓库

[root@server61 new]# docker push localhost:5000/game2048:latest
The push refers to repository [localhost:5000/game2048]
88fca8ae768a: Pushed 
6d7504772167: Pushed 
192e9fad2abc: Pushed 
36e9226e74f8: Pushed 
011b303988d2: Pushed 
latest: digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390 size: 1364

第五步:删除本地镜像

[root@server61 new]# docker rmi localhost:5000/game2048:latest
Untagged: localhost:5000/game2048:latest
Untagged: localhost:5000/game2048@sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
[root@server61 new]# docker rmi yakexi007/game2048:latest
Untagged: yakexi007/game2048:latest
Untagged: yakexi007/game2048@sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
Deleted: sha256:19299002fdbedc133c625488318ba5106b8a76ca6e34a6a8fec681fb54f5e4c7
Deleted: sha256:a8ba4f00c5b89c2994a952951dc7b043f18e5ef337afdb0d4b8b69d793e9ffa7
Deleted: sha256:e2ea5e1f4b9cfe6afb588167bb38d833a5aa7e4a474053083a5afdca5fff39f0
Deleted: sha256:1b2dc5f636598b4d6f54dbf107a3e34fcba95bf08a7ab5a406d0fc8865ce2ab2
Deleted: sha256:af457147a7ab56e4d77082f56d1a0d6671c1a44ded1f85fea99817231503d7b4
Deleted: sha256:011b303988d241a4ae28a6b82b0d8262751ef02910f0ae2265cb637504b72e36

第六步:检测仓库registry是否运行

[root@server61 new]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8c68abe2a8df        registry            "/entrypoint.sh /etc…"   10 minutes ago      Up 10 minutes       0.0.0.0:5000->5000/tcp   registry
957f5d13395f        rhel7:v1            "/usr/local/nginx/sb…"   3 hours ago         Up 3 hours          80/tcp                   nginx

第七步:设定客户端server62
① 安装部署docker

[root@server62 ~]# cat /etc/yum.repos.d/docker.repo 
[docker]
name=docker-ce
baseurl=http://172.25.21.250/docker-ce
gpgcheck=0
[root@server62 ~]# yum install -y docker-ce

② 启动docker

[root@server62 ~]# systemctl start docker.service 
[root@server62 ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.15
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-957.el7.x86_64
 Operating System: Red Hat Enterprise Linux Server 7.6 (Maipo)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.952GiB
 Name: server62
 ID: 2EWB:6FO2:SUPY:GD55:CFTN:ZITU:OKDP:KBLR:RZKU:RGM4:3X27:JBDR
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
   Live Restore Enabled: false

③ 强制客户端的docker走非加密端口

[root@server62 ~]# vim /etc/docker/daemon.json
{
        "insecure-registries" : ["172.25.21.61:5000:]
}
[root@server62 ~]# systemctl reload docker.service 
[root@server62 ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.15
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-957.el7.x86_64
 Operating System: Red Hat Enterprise Linux Server 7.6 (Maipo)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.952GiB
 Name: server62
 ID: 2EWB:6FO2:SUPY:GD55:CFTN:ZITU:OKDP:KBLR:RZKU:RGM4:3X27:JBDR
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  172.25.21.61:5000
  127.0.0.0/8
 Live Restore Enabled: false

第八步:准备好客户端之后,拉取服务端server61的镜像

[root@server62 ~]# docker pull 172.25.21.61:5000/game2048:latest
latest: Pulling from game2048
534e72e7cedc: Pull complete 
f62e2f6dfeef: Pull complete 
fe7db6293242: Pull complete 
3f120f6a2bf8: Pull complete 
4ba4e6930ea5: Pull complete 
Digest: sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
Status: Downloaded newer image for 172.25.21.61:5000/game2048:latest
172.25.21.61:5000/game2048:latest
[root@server62 ~]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
172.25.21.61:5000/game2048   latest              19299002fdbe        4 years ago         55.5MB

修改镜像的名字,并删除之前拉取的镜像

[root@server62 ~]# docker tag 172.25.21.61:5000/game2048 game2048
[root@server62 ~]# docker rmi 172.25.21.61:5000/game2048:latest
Untagged: 172.25.21.61:5000/game2048:latest
Untagged: 172.25.21.61:5000/game2048@sha256:8a34fb9cb168c420604b6e5d32ca6d412cb0d533a826b313b190535c03fe9390
[root@server62 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
game2048            latest              19299002fdbe        4 years ago         55.5MB
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值