搭建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容器状态的转换实现

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

    Docker 2023年5月15日
    00
  • docker镜像之调试dockerfile

    1、dockerfile构建镜像的过程是怎样的? 1、从 base 镜像运行一个容器。2、执行一条指令,对容器做修改。3、执行类似 docker commit 的操作,生成一个新的镜像层。4、Docker 再基于刚刚提交的镜像运行一个新容器。5、重复 2-4 步,直到 Dockerfile 中的所有指令执行完毕。 2、dockerfile的调试思路和调试的过…

    Docker 2023年4月13日
    00
  • Docker镜像加载原理

    Docker是一个开源的项目,为开发者提供了一种轻量级的容器化技术,使得在不同的环境中可以轻松地构建、打包、部署和运行应用程序。 Docker镜像是Docker容器启动所需的基础文件系统等资源的打包格式,Docker容器是在Docker镜像的基础上创建的运行实例,这里我们来详细探讨下Docker镜像的加载原理。 Docker镜像加载原理 Docker镜像加载…

    Docker 2023年5月15日
    00
  • Docker之docker log详解

    1.显示所有log docker logs [OPTIONS] <CONTAINER>   #显示某个容器的所有log docker-compose logs  #显示启动的所有容器的log 2.显示实时log(此效果和Linux的tail -f filename)一样,可以把最新的内容刷新到屏幕上) docker logs -f <CON…

    Docker 2023年4月11日
    00
  • Docker Compose的安装和使用步骤

    Docker Compose是Docker容器编排工具。使用它可以将多个容器组合在一起形成完整的应用,同时可以方便地进行资源管理、规划和部署、测试和升级等操作。这里是Docker Compose的安装和使用步骤的完整攻略。 安装Docker Compose 查看官网获取最新安装包的下载链接。 https://docs.docker.com/compose/i…

    Docker 2023年5月15日
    00
  • docker pull 报错解决办法

    今天在使用docker 时,将 image 文件从仓库抓取到本地一直报错,经过尝试,终于得以解决。 错误信息如下: [docker@web-test ~]$ docker pull nginx Using default tag: latest latest: Pulling from library/nginx f5d23c7fed46: Already …

    Docker 2023年4月13日
    00
  • Ubuntu20.04 Docker搭建远程xfce桌面以及ssh教程

    简介:本文主要介绍ubuntu20.04容器中搭建xfce远程桌面、C++、Go环境、容器内docker操作配置、   一、创建容器1、创建容器 docker pull ubuntu:20.04docker run -itd –privileged –name=my-desktop–ulimit memlock=-1:-1 –network=”net…

    Docker 2023年4月16日
    00
  • docke自定义网络之容器互联

    下面是针对“docker自定义网络之容器互联”的完整攻略以及两条示例说明。 Docker自定义网络 Docker提供了很多默认的网络,比如bridge(桥接网络)、host(宿主网络)、none(无网络)等,但是这些网络并不方便我们使用,在实际开发中很少用到,所以我们需要使用自定义网络。 自定义网络可以有效地解决容器之间的网络通信问题,同时可以将它们隔离在一…

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