搭建docker内网私服的方法(docker-registry with nginx&ssl on centos)

下面是搭建docker内网私服的方法(docker-registry with nginx&ssl on centos)的完整攻略,包含了两个示例说明:

准备工作

  • 确保已经安装dockerdocker-compose
  • 安装nginxopenssl

示例一:使用纯docker-registry搭建私服

  1. 创建配置文件config.yml

version: 0.1
log:
level: debug
formatter: json
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
tls:
certificate: /usr/local/nginx/ssl/registry.crt
key: /usr/local/nginx/ssl/registry.key

其中:
- http.addr设置为:5000表示服务监听在本机的5000端口。
- http.tls表示开启SSL/TLS加密;certificatekey分别指定证书和私钥的路径。
- storage指定镜像的存储路径;filesystem表示使用本地文件系统存储,rootdirectory指定存储路径为/var/lib/registry

  1. 运行服务:

docker run -dit --name registry -p 5000:5000 \
-v `pwd`/config.yml:/etc/docker/registry/config.yml \
registry:2

其中:
- -p参数指定了服务暴露的端口5000
- -v参数将本地的config.yml配置文件挂载到容器中的/etc/docker/registry/config.yml路径下。

  1. 验证服务是否正常:

curl -k https://localhost:5000/v2/

如果输出{}表示服务正常运行。

示例二:使用docker-registrynginx结合搭建私服

  1. 创建docker-compose.yml配置文件:

version: '3'
services:
nginx:
image: nginx:latest
ports:
- "443:443"
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl:/etc/nginx/ssl:ro
depends_on:
- registry
restart: always
registry:
image: registry:2
volumes:
- ./registry:/var/lib/registry
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /etc/nginx/ssl/registry.crt
REGISTRY_HTTP_TLS_KEY: /etc/nginx/ssl/registry.key
REGISTRY_STORAGE_DELETE_ENABLED: "true"
restart: always

其中:
- nginx服务使用nginx镜像,开放44380端口,挂载nginx.confssl目录,通过depends_on依赖于registry服务。
- registry服务使用registry:2镜像,挂载registry目录,设置SSL/TLS证书和私钥的路径,开启镜像删除功能。

  1. 创建nginx.conf配置文件:

```
events {
worker_connections 1024;
}

http {
upstream docker-registry {
server registry:5000;
}

   server {
       listen 443 ssl;
       server_name example.com;

       ssl_certificate /etc/nginx/ssl/registry.crt;
       ssl_certificate_key /etc/nginx/ssl/registry.key;

       location /v2/ {
           proxy_pass                  https://docker-registry;
           proxy_set_header    Host            $http_host;
           proxy_set_header    X-Real-IP       $remote_addr;
           proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header    X-Forwarded-Proto $scheme;
           proxy_read_timeout             900;
       }
   }

}
```

其中:
- upstream定义了docker-registry后端服务。
- server定义了nginx服务器,监听443端口,设置SSL/TLS证书和私钥的路径。
- location定义了请求的URL前缀为/v2/的请求转发到docker-registry后端服务。

  1. 创建SSL/TLS证书:

openssl req \
-newkey rsa:2048 -nodes -keyout ssl/registry.key \
-x509 -days 365 -out ssl/registry.crt

这个命令会生成一个自签名的证书。

  1. 启动服务:

docker-compose up -d

  1. 验证服务是否正常:

curl -k https://example.com/v2/

如果输出{}表示服务正常运行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:搭建docker内网私服的方法(docker-registry with nginx&ssl on centos) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 剖析国内Docker容器提供商DaoCloud的创业亮点

    剖析国内Docker容器提供商DaoCloud的创业亮点 简介 DaoCloud(道客云)是国内一家 Docker 容器服务提供商,提供 Docker 基础设施、Docker 桌面、Docker PaaS 等全方位支持,聚焦 Docker 领域的技术创新和产品创新。DaoCloud 在 2014 年成立,短短几年时间里已经成为国内 Docker 生态系统中的…

    Docker 2023年5月15日
    00
  • Docker版本升级至17.03

    2017/3/3,Docker官方发表了一篇博客,Docker版本从1.13.*直接跳入17.03,该版本的意思是17年3月。同时,还声明了Docker以后会以CE(Community Edition)和EE(Enterprise Edition)的形式发布。其中,CE版本每个月发布一次,也就是说,随后的版本就是17.03、17.04、17.05等,而EE的…

    Docker 2023年4月11日
    00
  • Docker 常用命令整理(实用篇)

    下面是对 “Docker 常用命令整理(实用篇)” 这篇文章的详细讲解: 1. 概览 这篇文章主要介绍了 Docker 常用命令,通过示例说明了这些命令的具体用法和注意事项。整篇文章分为以下几个部分: 安装 Docker 基本命令 镜像管理 容器管理 网络管理 数据管理 2. 安装 Docker 该文章介绍了如何在 Ubuntu 和 MacOS 上安装 Do…

    Docker 2023年5月16日
    00
  • docker安装后启动出现错误

    重启报错:   [root@localhost ~]# systemctl restart docker Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “jo…

    Docker 2023年4月11日
    00
  • docker的基本安装和简单使用+Dockerfile常用指令

    Centos7.6  1.配置docker的yum源,可以使用阿里云的https://yq.aliyun.com/articles/110806sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager –add-repo http://mi…

    Docker 2023年4月13日
    00
  • docker容器状态的转换实现

    这里我们将详细讲解如何实现 Docker 容器状态的转换,包括创建、启动、停止、重启等操作,并提供两个示例说明。具体攻略如下: 1. 创建容器 要创建一个容器,我们可以使用 docker create 命令。该命令用于在本地主机上创建一个空容器。使用示例如下: docker create –name my_container_name nginx 其中,m…

    Docker 2023年5月15日
    00
  • Centos中的Docker 配置:将loop-lvm改为derict-lvm

    重新装了个虚拟机,回顾一下最近三天的工作: Centos 查看版本 cat /etc/redhat-release yum -y upgrade 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变 目前的版本为CentOS Linux release 7.2.1511 (Core)   添加内核参数 默认配置下,在 CentOS 使用 Docke…

    Docker 2023年4月13日
    00
  • NACOS DOCKER 官方镜像启动失败 No Datasource set

    1.4.0 解决 官方文档的环境变量是错的官方 Nacos Docker 快速开始 其中 MYSQL_MASTER_SERVICE_HOST mysql 主节点host MYSQL_MASTER_SERVICE_PORT mysql 主节点端口 default : 3306 MYSQL_MASTER_SERVICE_DB_NAME mysql 主节点数据库 …

    Docker 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部