文章目录
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