vps交流

docker 容器大佬请进


本帖最后由 meta 于 2021-12-16 16:23 编辑

我们知道 2 个容器之间一般是隔离的

但是最近用 acme.sh 的时候看见 acme.sh 容器竟然能控制另一个 nginx 容器里面的服务重启

service nginx force-reload

貌似通过 labels 实现的,自己编排镜像应该怎么写呢?

https://github.com/acmesh-offici … ker-compose-example

  1. version: ‘3.4’
  2. services:
  3.   web:
  4.     image: nginx
  5.     container_name: nginx
  6.     labels:
  7.       – sh.acme.autoload.domain=example.com
  8.   acme.sh:
  9.     image: neilpang/acme.sh
  10.     container_name: acme.sh   
  11.     command: daemon
  12.     volumes:
  13.       – ./acmeout:/acme.sh
  14.       – /var/run/docker.sock:/var/run/docker.sock
  15.     environment:
  16.       – DEPLOY_DOCKER_CONTAINER_LABEL=sh.acme.autoload.domain=example.com
  17.       – DEPLOY_DOCKER_CONTAINER_KEY_FILE=/etc/nginx/ssl/example.com/key.pem
  18.       – DEPLOY_DOCKER_CONTAINER_CERT_FILE="/etc/nginx/ssl/example.com/cert.pem"
  19.       – DEPLOY_DOCKER_CONTAINER_CA_FILE="/etc/nginx/ssl/example.com/ca.pem"
  20.       – DEPLOY_DOCKER_CONTAINER_FULLCHAIN_FILE="/etc/nginx/ssl/example.com/full.pem"
  21.       – DEPLOY_DOCKER_CONTAINER_RELOAD_CMD="service nginx force-reload"

复制代码

学习了,/var/run/docker.sock:/var/run/docker.sock ,才是关键,以下是参考资料:
https://docs.docker.com/engine/r … ockerd/#description
https://cloud.tencent.com/developer/article/1454335

我看看            
– /var/run/docker.sock:/var/run/docker.sockdocker 容器大佬请进
并不是,这句才是可以控制的关键,

– /var/run/docker.sock:/var/run/docker.sock

用一下 Watchtower
你就懂了
https://www.freebuf.com/articles/system/201793.html
docker 容器大佬请进
https://github.com/madwind/docker-nginx 我也写了个集成acme的,caddy太难用了,还是nginx好