入职必会-开发环境搭建50-Docker必会搭建Docker私有仓库

简介: Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地也可以把我们自己的镜像推送上去。但是有时候我们的服务器无法访问互联网或者不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的Docker私有仓库来存储和管理自己的Docker镜像。

Docker私有仓库搭建

Docker私有仓库介绍

Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地也可以把我们自己的镜像推送上去。但是有时候我们的服务器无法访问互联网或者不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的Docker私有仓库来存储和管理自己的Docker镜像。

Docker私有仓库搭建

Docker私有仓库搭建步骤:

  1. 拉取Docker私有仓库镜像
  2. 根据Docker私有仓库镜像创建容器并启动
  3. 修改daemon.json
  4. 重启docker 服务
  5. 将镜像上传至私有仓库
  6. 从私有仓库拉取镜像

具体操作:

  1. 拉取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 ~]#


  1. 根据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 ~]#

  1. 修改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"]
}


  1. 重启docker 服务

命令说明:

systemctl restart docker
docker start cregistry

操作示例:

[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker start cregistry
cregistry
[root@localhost ~]#


  1. 将镜像上传至私有仓库

命令说明:

# 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 ~]#

  1. 从私有仓库拉取镜像

命令说明:

# 删除本地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/

相关文章
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
14462 37
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
NoSQL MongoDB 数据库
使用 docker 快速搭建开发环境的 mongodb 服务
本指南介绍如何使用 Docker 和 Docker Compose 部署 MongoDB 和 Mongo Express。首先,通过 Docker 命令分别启动 MongoDB(镜像 `mongo:7.0.14`)和 Mongo Express(镜像 `mongo-express:1.0.2-20-alpine3.19`),并配置环境变量确保两者能正确连接。接着,提供了一个 `docker-compose.yaml` 文件示例,包含 MongoDB 数据卷、健康检查及服务依赖配置,简化多容器管理。
2102 2
|
安全 数据安全/隐私保护 Docker
docker私有仓库harbor安装
通过以上步骤,您可以成功在企业内部安装和配置Harbor私有仓库,方便地管理和分发Docker镜像。Harbor不仅提供了基础的镜像管理功能,还增强了安全性、身份管理和审计功能,使其成为企业级容器镜像管理的理想选择。
727 22
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
982 15
Docker自建仓库之Harbor高可用部署实战篇
|
存储 Ubuntu JavaScript
如何使用Docker优化你的开发环境配置
如何使用Docker优化你的开发环境配置
|
Docker 容器
利用Docker Compose优化开发环境的配置
在现代软件开发中,环境一致性至关重要。开发人员常需在不同机器间复制环境配置,而Docker Compose提供了一种简便有效的方法来定义和运行多容器Docker应用程序,确保开发、测试和生产环境一致,简化团队协作,提高开发效率。通过YAML文件配置服务、网络和卷,使用简单命令即可启动和停止服务。本文将介绍Docker Compose的核心优势、基本使用方法及高级功能,帮助你更好地管理和优化开发环境。
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
2499 13
|
JavaScript 开发者 Docker
深入理解Docker容器化技术,打造高效开发环境
深入理解Docker容器化技术,打造高效开发环境
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
406 1