部署私有镜像仓库

如果在离线环境中使用 DevStream,你需要准备一个私有镜像仓库用于保存相关容器镜像。 如果你的环境里还没有一个可用的镜像仓库,那么可以参考本文步骤快速部署一个简易的容器镜像仓库用于支持离线使用 DevStream。

提示:本文基于 CentOS 7 编写。

一、准备证书

下文域名均以 registry.devstream.io 为例,你在实际执行的时候需要按需修改。

Bash

  1. cd ~ && mkdir certs
  2. openssl genrsa -out certs/ca.key 2048
  3. openssl req -new -x509 -days 3650 -key certs/ca.key -subj "/C=CN/ST=GD/L=SZ/O=DevStream, Inc./CN=DevStream Root CA" -out certs/ca.crt
  4. openssl req -newkey rsa:2048 -nodes -keyout certs/domain.key -subj "/C=CN/ST=GD/L=SZ/O=DevStream, Inc./CN=*.devstream.io" -out certs/domain.csr
  5. openssl x509 -req -extfile <(printf "subjectAltName=DNS:devstream.io,DNS:registry.devstream.io") \
  6. -days 3650 -in certs/domain.csr -CA certs/ca.crt -CAkey certs/ca.key -CAcreateserial -out certs/domain.crt

二、启动 Docker Registry

Bash

  1. docker run -d \
  2. --restart=always \
  3. --name registry \
  4. -v $(pwd)/certs:/certs \
  5. -v $(pwd)/registry:/var/lib/registry \
  6. -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
  7. -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  8. -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  9. -p 443:443 \
  10. registry:2

三、配置 Docker Registry

1、在 /etc/hosts 中配置本机 IP 到自定义域名(如:registry.devstream.io)之间的映射,如:

Bash

  1. # docker registry
  2. 192.168.39.100 registry.devstream.io

2、配置 Docker 信任刚才生成的证书(域名以 registry.devstream.io 为例)

Bash

  1. sudo mkdir -p /etc/docker/certs.d/registry.devstream.io
  2. sudo cp ~/certs/ca.crt /etc/docker/certs.d/registry.devstream.io/ca.crt
  1. 验证 Docker Registry 可用

Bash

  1. docker pull busybox
  2. docker tag busybox registry.devstream.io/busybox
  3. docker push registry.devstream.io/busybox