Tags docker registry ssl nginx
2021-01-14 12:07:26
docker registry 是作为容器相关自动化关键底层基础设施,作为一种重要的artifact存储形式,对接CI/CD Kubernetes 都非常方便。
结构设计:
---> registry (run in docker container)
http traffic -> host nginx with ssl ---|
---> registry UI (run in docker container)
docker run -d -p 5000:5000 --restart=always --name registry -v /data/registry:/var/lib/registry registry:2
docker run -d -p 5001:80 --name registry-ui -e DELETE_IMAGES=true joxit/docker-registry-ui:static
注意:
/data/registry
位置需要可以修改跨域
和 registry_url
和 SSL
相关配置可以直接如下的 Nginx reverse proxy配置中直接干净快速的解决。$ cat /etc/nginx/sites-enabled/registry
server {
listen 443 ssl;
server_name hub.philo.top;
ssl_certificate /etc/ssl/1_hub.philo.top_bundle.crt;
ssl_certificate_key /etc/ssl/2_hub.philo.top.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 2048M;
location / {
proxy_pass http://127.0.0.1:5001;
}
location /v2 {
proxy_pass http://127.0.0.1:5000;
}
}
server{
listen 80;
server_name hub.philo.top;
return 301 https://$host$request_uri;
}
注意:
apt-get update && apt-get install -y nginx
server_name
命令需要改成你自己的域名鼎森网络科技有限公司
因为是内网使用的证书所以用Let’s encrypt比较麻烦。client_max_body_size
不要裁剪,因为docker pull 和 push 的 http body 很大。location /
的作用是路由到 ui containerlocation /v2
的作用是路由到 docker registrySSL
证书最好是要配置上的,原因是docker pull过程默认是要证书的不然需要特别配置trust同理 kubernetes 也有类似的需求稍微衡量一下5块钱还是值得的