无需重启:如何让已运行Docker容器加入Traefik的proxy网络
如何将运行中的Docker容器加入已存在的网络(无需重启)
当然可以!Docker 支持在容器运行状态下将它连接到已创建的网络,完全不需要重启你的gui容器。下面是具体的操作步骤和后续配置提示:
1. 将运行中的gui容器连接到proxy网络
直接执行这条命令即可完成网络连接:
docker network connect proxy gui
- 这里的
docker network connect是Docker专门用于将容器(无论运行中还是停止状态)接入指定网络的命令 - 第一个参数
proxy是你已经创建好的目标网络名称 - 第二个参数
gui是你要接入网络的容器名称
2. 验证网络连接是否成功
你可以通过以下两种方式确认连接状态:
- 查看
gui容器的网络配置,确认proxy网络已存在:docker inspect gui | grep -A 10 "Networks" - 或者查看
proxy网络下的所有关联容器,检查gui是否在列表中:docker network inspect proxy | grep -A 20 "Containers"
3. 配置Traefik自动发现该容器
连接网络后,你还需要给gui容器添加Traefik的标签,让Traefik能够自动识别并配置反向代理路由。同样不需要重启容器,用docker container update命令即可添加标签:
docker container update \ --label-add "traefik.enable=true" \ --label-add "traefik.http.routers.gui.rule=Host(`gui.yourdomain.com`)" \ --label-add "traefik.http.services.gui.loadbalancer.server.port=80" \ gui
traefik.enable=true:告诉Traefik要启用这个容器的代理traefik.http.routers.gui.rule:设置访问该服务的域名规则(替换成你自己的域名)traefik.http.services.gui.loadbalancer.server.port:指定容器对外提供服务的端口(根据你的gui容器实际端口调整)
完成这些操作后,Traefik就会自动识别到gui容器,你可以通过设置的域名访问该服务了。
内容的提问来源于stack exchange,提问作者Jens Kohl
相关产品推荐
相关产品推荐

