1、使用软硬件环境说明
镜像仓库服务器:是指专门用于存放docker镜像仓库的计算机。
客户端:是指可以在镜像仓库服务器上下载,或往镜像仓库服务器上推送镜像的计算机,客户端主要用于启动并运行容器。
2、镜像仓库服务器配置
注意1:根据需要,存放镜像的目录或分区空间要预留足够的空间。
注意2:本文档测试仓库镜像服务器Ip为:10.3.2.211
注意3:需要在root用户下操作。
- 确认docker hub申威镜像仓库
仓库地址:https://hub.docker.com/u/leechm
补充:若想使用docker hub仓库,确认宿主机可以上外网。
2)确认本机docker环境
说明:中标麒麟服务器操作系统可提供Docker17.06.2.ce和docker 1.12.2两个版本,根据所需安装好docker后,这里我们以docker17.06.2 ce版为例,通过如下命令查看docker版本,确认docker安装成功,命令如下:
[root@localhost ~]# docker -v
Docker version 17.06.2, build d12bd8cfe0
确认docker环境安装成功后,执行如下命令,启动docker服务:
[root@localhost ~]# systemctl start docker
设置docker服务为开机启动,执行如下命令:
[root@localhost ~]#systemctl enable docker
- 下载registry镜像
这里我们使用docker hub上的registry镜像
[root@localhost ~]# docker pull leechm/registry:2.7.2
2.7.2: Pulling from leechm/registry
Digest: sha256:95544a995c89bce33093161070b5116d232e5cbd40739a6d891f7bc2f3509b55
Status: Downloaded newer image for leechm/registry:2.7.2
4)查看本机镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
leechm/registry 2.7.2 576a4d82f357 44 minutes ago 318MB
leechm/sw-hello-world v1.0 284593b1c6b5 About an hour ago 851kB
leechm/k8sneokylin v5.0 809e0a2bd6a6 2 weeks ago 283MB
5)运行registry镜像
[root@localhost ~]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always leechm/registry:2.7.2
补充:上传的镜像在宿主机/opt/registry目录下
6)查看正在运行的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3926794c7b9f leechm/registry:2.7.2 "registry serve /e..." 34 seconds ago Up 32 seconds 0.0.0.0:5000->5000/tcp vibrant_lewin
7)确认仓库是否配置成功
[root@localhost ~]# curl 10.3.2.211:5000/v2/_catalog
{"repositories":[]}
3、客户端配置
注意1:需要在root用户下操作。
1)确认本机docker环境
说明:确认系统安装好docker后,通过如下命令查看docker版本,确认docker安装成功,命令如下:
[root@localhost ~]# docker -v
Docker version 17.06.2, build d12bd8cfe0
确认docker环境安装成功后,执行如下命令,启动docker服务:
[root@localhost ~]# systemctl start docker
设置docker服务为开机启动,执行如下命令:
[root@localhost ~]#systemctl enable docker
2)设置docker镜像仓库的URL地址
- 配置URL
创建配置文件,命令如下:
[root@localhost ~]# mkdir /etc/docker
[root@localhost ~]# echo '{ "insecure-registries":["10.3.2.211:5000"] }' > /etc/docker/daemon.json
- 重启docker服务使其设置生效
[root@localhost ~]#systemctl restart docker
- 确认是否可以访问仓库
[root@localhost ~]# curl 10.3.2.211:5000/v2/_catalog
{"repositories":[]}
4、上传或下载镜像
1)上传镜像
- 镜像重命名
镜像上传首先需要通过 docker tag 重命名镜像,使之符合仓库的要求,命名格式为:镜像仓库服务器IP地址:端口号/容器名:版本号,例如10.3.2.211:5000/sw-hello-world:v1.0。对现有镜像的重命名具体命令如下:
[root@localhost ~]# docker tag leechm/sw-hello-world:v1.0 10.3.2.211:5000/sw-hello-world:v1.0 #其中,leechm/sw-hello-world:v1.0是指镜像现有名称,10.3.2.211:5000/sw-hello-world:v1.0是新建的镜像名称。
- 客户端上传镜像到仓库
[root@localhost ~]# docker push 10.3.2.211:5000/sw-hello-world:v1.0
The push refers to a repository [10.3.2.211:5000/sw-hello-world]
23db77eeb16d: Pushed
v1.0: digest: sha256:a56673a88d8afb977bba89faf53edc9ae2b949e299b368f5d12b5c8f6d3fad4c size: 527
- 查看镜像仓库
[root@localhost ~]# curl 10.3.2.211:5000/v2/_catalog
{"repositories":["sw-hello-world"]}
[root@localhost ~]# curl 10.3.2.211:5000/v2/sw-hello-world/tags/list
{"name":"sw-hello-world","tags":["v1.0"]}
2)下载镜像
说明:由于终端本地已有10.3.2.211:5000/sw-hello-world:v1.0镜像,因此,为了测试下载功能,首先需删除本地的该镜像。命令如下:
[root@localhost ~]#docker rmi 10.3.2.211:5000/sw-hello-world:v1.0
查看是否删除成功:
[root@localhost ~]# docker images
- 下载镜像
[root@localhost ~]# docker pull 10.3.2.211:5000/sw-hello-world:v1.0
- 查看镜像是否下载成功:
[root@localhost ~]# docker images