首页 > 其他分享 >docker-compose 私有仓库搭建 支持https

docker-compose 私有仓库搭建 支持https

时间:2023-07-19 12:32:35浏览次数:34  
标签:文件 domain compose key 配置文件 registry https docker Docker

Docker Compose 私有仓库搭建 支持 HTTPS

Docker 是一个非常流行的容器化平台,允许用户将应用程序和其依赖项打包为一个独立的轻量级容器,并且可以在任何地方运行。Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多个容器的应用程序。

在某些情况下,我们可能需要在本地搭建一个私有的 Docker 仓库,并且希望能够通过 HTTPS 的方式进行安全访问。本文将介绍如何使用 Docker Compose 搭建一个私有仓库,并支持 HTTPS。

准备工作

在开始之前,我们需要确保系统已经安装了 Docker 和 Docker Compose 工具。这两个工具在官方网站上都有详细的安装指南。

创建 Docker Compose 文件

首先,我们需要创建一个 Docker Compose 文件来定义我们的私有仓库服务。在项目的根目录下创建一个名为 docker-compose.yml 的文件,并将以下内容添加到文件中:

version: '3'
services:
  registry:
    image: registry:2
    ports:
      - 5000:5000
    volumes:
      - ./data:/var/lib/registry
    environment:
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
      REGISTRY_HTTP_TLS_KEY: /certs/domain.key
    command: ["registry", "serve", "/etc/docker/registry/config.yml"]
    networks:
      - default

networks:
  default:
    external:
      name: my-network

上述配置文件中,我们创建了一个名为 registry 的服务,使用 Docker 官方提供的 registry:2 镜像。我们将容器的 5000 端口映射到主机的 5000 端口,并将数据卷挂载到本地的 data 目录。

此外,我们还指定了证书和密钥文件的位置,并将其作为环境变量传递给仓库服务。最后,我们使用了一个自定义的网络 my-network,你可以根据需要修改网络名称。

创建配置文件

在上述配置文件中,我们还指定了一个配置文件的路径 /etc/docker/registry/config.yml,接下来我们需要创建这个配置文件。

在项目的根目录下创建一个名为 config.yml 的文件,并将以下内容添加到文件中:

version: 0.1
log:
  level: info
  formatter: json
  fields:
    service: registry
    environment: development
storage:
  cache:
    layerinfo: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  tls:
    certificate: /certs/domain.crt
    key: /certs/domain.key

上述配置文件中,我们指定了存储方式为 filesystem,并将根目录设置为 /var/lib/registry。我们还指定了仓库服务的监听地址和端口,并且使用了之前设置的证书和密钥文件。

生成证书和密钥文件

接下来,我们需要生成证书和密钥文件,用于支持 HTTPS。可以使用 OpenSSL 工具来生成这些文件。

首先,打开终端并执行以下命令来生成私钥文件:

openssl genrsa -out domain.key 2048

然后,执行以下命令来生成证书签名请求文件:

openssl req -new -key domain.key -out domain.csr

在生成过程中,你需要提供一些证书信息,如国家、组织、通用名称等等。可以根据自己的需求进行填写。

最后,执行以下命令来生成自签名证书文件:

openssl x509 -req -in domain.csr -signkey domain.key -out domain.crt

现在,你可以将生成的 domain.crtdomain.key 文件移动到项目的根目录,并将其作为配置文件中指定的路径。

启动私有仓库服务

现在,我们已经完成了所有的准备工作,可以启动私有仓库服务了。

在终端中,进入项目的根目录,并执行以下命令:

docker-compose up -d

此命令将

标签:文件,domain,compose,key,配置文件,registry,https,docker,Docker
From: https://blog.51cto.com/u_16175440/6774188

相关文章

  • docker-compose 国内用户安装
    DockerCompose国内用户安装DockerCompose是一个用于定义和管理多个Docker容器的工具。它允许用户通过一个单独的配置文件来定义应用程序的多个服务,并且可以使用简单的命令来启动、停止和管理这些服务。在国内,由于一些原因,使用DockerCompose可能会遇到一些问题。本文将介绍如何......
  • docker-compose 更新文件
    DockerCompose文件更新流程作为一名经验丰富的开发者,你要教会这位刚入行的小白如何实现“docker-compose更新文件”。下面将详细介绍整个流程,并给出每一步所需的代码。流程概览下图展示了实现“docker-compose更新文件”的流程。步骤操作步骤一停止正在运行的容......
  • docker-compose 安装springboot
    DockerCompose安装SpringBoot在开发和部署SpringBoot应用程序时,使用DockerCompose是一个非常方便和高效的方法。DockerCompose可以帮助我们定义和运行多个Docker容器,从而简化了应用程序的部署过程。本文将介绍如何使用DockerCompose安装和运行一个简单的Spring......
  • 在本地启动一个 Docker 的 MySQL 服务
    要在本地启动一个Docker的MySQL服务,并允许其他Docker容器连接到该数据库,您可以按照以下步骤操作:1.确保已在本地安装了Docker。您可以在终端中运行`docker--version`命令来检查Docker是否已正确安装。2.使用以下命令来拉取MySQL8.0镜像:```dockerpullmysq......
  • mysql 5.7 修改密码 docker 导出容器
    MISCONFRedisisconfiguredtosaveRDBsnapshots,butiscurrentlynotabletopersistondisk.Commandsthatmaymodifythedatasetaredisabled.PleasecheckRedislogsfordetailsabouttheerror updateusersetauthentication_string=password('......
  • Android 7在Burpsuite中无法抓取HTTPS包
    链接(URL):https://www.hygrey.com/burpsuite-can-not-capture-https-packet-in-android7.html来源(Source):渡缘人  渡缘人大佬的教程详细的列出来Android7配置bp抓包的流程,也可以一同参考下面的链接https://blog.chenjia.me/articles/171029-223953.html 说说遇到的问题......
  • docker开启远程访问,并添加TLS证书认证
    默认情况下,docker是无法远程访问的但是有些场景下,是需要远程访问的新建存放证书的目录mkdir/etc/docker/certs.dcd/etc/docker/certs.d生成证书生成ca的私钥opensslgenrsa-aes256-passoutpass:123456-outca-key.pem4096生成CA证书opensslreq-new-x509-pas......
  • docker-compose使用踩坑
    之前在cm311-1a机顶盒上刷了armbian,开始把之前n5100x86小主机上的服务往上迁移,之前一直用docker,但是docker-compose没用过,正好部署rustdesk官网有docker-compose的示例,就顺便学习了一下,过程中遇到一些问题,特此记录:1.没有docker-compose命令,只有dockercompose(两个单词......
  • Docker被墙了怎么办?换源处理!
    Docker被墙了怎么办?换源处理!命令行输入以下命令换源,按提示进行操作(推荐南京大学和微软云的源)bash<(curl-sSLhttps://ghproxy.com/https://github.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)命令行代码来自于镜像中国......
  • GitLab + Jenkins + Docker 本地自动化部署
    GitLab+Jenkins+Docker本地自动化部署原创 贺大官人 猿起猿进 2023-07-1215:51 发表于浙江 GitLab+ Jenkins+ Docker+ Nginx 前端自动化部署 注GitLab 本地化部署——前端代码版本管理Docker+ Nginx 本地容器化部署前端项目——需手动上传......