Docker私有仓库搭建
Docker私有仓库介绍
Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地也可以把我们自己的镜像推送上去。但是有时候我们的服务器无法访问互联网或者不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的Docker私有仓库来存储和管理自己的Docker镜像。
Docker私有仓库搭建
Docker私有仓库搭建步骤:
- 拉取Docker私有仓库镜像
- 根据Docker私有仓库镜像创建容器并启动
- 修改daemon.json
- 重启docker 服务
- 将镜像上传至私有仓库
- 从私有仓库拉取镜像
具体操作:
- 拉取Docker私有仓库镜像
命令说明:
# 拉取Docker私有仓库镜像 docker pull registry
操作示例:
[root@localhost ~]# docker pull registry Using default tag: latest latest: Pulling from library/registry ca7dd9ec2225: Pull complete c41ae7ad2b39: Pull complete 1ed0fc8a6161: Pull complete 21df229223d2: Pull complete 626897ccab21: Pull complete Digest: sha256:ce14a6258f37702ff3cd92232a6f5b81ace542d9f1631966999e9f7c1ee6ddba Status: Downloaded newer image for registry:latest docker.io/library/registry:latest [root@localhost ~]#
- 根据Docker私有仓库镜像创建容器并启动
命令说明:
# 根据Docker私有仓库镜像创建容器并启动 docker run -di --name cregistry -p 5000:5000 registry # 打开浏览器输入地址http://192.168.100.132:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
操作示例:
[root@localhost ~]# docker run -di --name cregistry -p 5000:5000 registry 78bcb7f9f79938abe07c59bbb7833c29a83037da406fa7599cad14a53e6c91eb [root@localhost ~]#
- 修改daemon.json
命令说明:
vi /etc/docker/daemon.json # 添加配置 "insecure-registries":["192.168.100.132:5000"]
操作示例:
[root@localhost ~]# vi /etc/docker/daemon.json { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } 修改后 { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"], "insecure-registries":["192.168.100.132:5000"] }
- 重启docker 服务
命令说明:
systemctl restart docker docker start cregistry
操作示例:
[root@localhost ~]# systemctl restart docker [root@localhost ~]# docker start cregistry cregistry [root@localhost ~]#
- 将镜像上传至私有仓库
命令说明:
# 1.标记镜像为私有仓库的镜像 # 语法: docker tag 镜像名 宿主机IP:5000/镜像名 docker tag centos:7 192.168.100.132:5000/centos:7 # 2.上传标记的镜像到私有仓库 # 语法: docker push 宿主机IP:5000/镜像名 docker push 192.168.100.132:5000/centos:7 # 3.输入网址查看仓库效果
操作示例:
[root@localhost ~]# docker tag centos:7 192.168.100.132:5000/centos:7 [root@localhost ~]# [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry latest 81c944c2288b 8 weeks ago 24.1MB 192.168.100.132:5000/centos 7 eeb6ee3f44bd 15 months ago 204MB centos 7 eeb6ee3f44bd 15 months ago 204MB [root@localhost ~]# [root@localhost ~]# docker push 192.168.100.132:5000/centos:7 [root@localhost ~]#
- 从私有仓库拉取镜像
命令说明:
# 删除本地192.168.100.132:5000/centos:7镜像 docker rmi 192.168.100.132:5000/centos:7 # 拉取镜像 # 语法: docker pull 服务器ip:5000/镜像名 docker pull 192.168.100.132:5000/centos:7 #可以通过如下命令查看 docker 的信息;了解到私有仓库地址 docker info
操作示例:
[root@localhost ~]# docker rmi 192.168.100.132:5000/centos:7 Untagged: 192.168.100.132:5000/centos:7 Untagged: 192.168.100.132:5000/centos@sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry latest 81c944c2288b 8 weeks ago 24.1MB [root@localhost ~]# docker pull 192.168.100.132:5000/centos:7 7: Pulling from centos Digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f Status: Downloaded newer image for 192.168.100.132:5000/centos:7 192.168.100.132:5000/centos:7 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry latest 81c944c2288b 8 weeks ago 24.1MB 192.168.100.132:5000/centos 7 eeb6ee3f44bd 15 months ago 204MB [root@localhost ~]#
到此我们就可以把本地的镜像保存到Docker私有仓库,也可以从Docker私有仓库下载镜像到本地。
DockerCompose的详细语法参考官网:https://docs.docker.com/compose/compose-file/