Docker-Gen 使用教程
项目介绍
Docker-Gen 是一个文件生成工具,它使用 Docker 容器的元数据来渲染模板。Docker-Gen 可以用于生成多种类型的配置文件,包括:
- 容器日志轮转配置(logrotate)
- 反向代理配置(如 Nginx、HAProxy 等)
- 服务发现脚本(如 etcd、hipache 等)
项目快速启动
主机安装
- 下载所需版本的 Docker-Gen:
wget https://github.com/nginx-proxy/docker-gen/releases/download/0.12.0/docker-gen-linux-amd64-0.12.0.tar.gz
- 解压并安装到 PATH 中:
tar xvzf docker-gen-linux-amd64-0.12.0.tar.gz -C /usr/local/bin
容器安装
- 启动 Nginx 并挂载共享卷:
docker run -d -p 80:80 --name nginx -v /tmp/nginx:/etc/nginx/conf.d -t nginx
- 获取模板并启动 Docker-Gen 容器:
mkdir -p /tmp/templates && wget -O /tmp/templates/nginx.tmpl https://raw.githubusercontent.com/nginx-proxy/docker-gen/master/templates/nginx.tmpl docker run -d --name docker-gen --volumes-from nginx -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/templates:/etc/docker-gen/templates -t jwilder/docker-gen /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
应用案例和最佳实践
自动化 Nginx 反向代理
使用 Docker-Gen 可以自动为 Docker 容器生成 Nginx 反向代理配置。以下是一个示例:
- 启动 Nginx 反向代理:
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock -t jwilder/nginx-proxy
- 启动容器并设置
VIRTUAL_HOST
环境变量:docker run -e VIRTUAL_HOST=foo.bar.com -e VIRTUAL_PORT=80 -t your_image
日志管理与 Fluentd
Docker-Gen 可以与 Fluentd 结合使用,实现容器日志的集中管理。
服务发现与 Etcd 和 HAProxy
Docker-Gen 可以生成配置文件,用于在 Etcd 和 HAProxy 中注册容器,实现服务发现。
典型生态项目
Nginx-Proxy
Nginx-Proxy 是一个常用的反向代理解决方案,它与 Docker-Gen 结合使用,可以自动为 Docker 容器生成 Nginx 配置。
Docker-Register
Docker-Register 是一个用于服务注册的工具,它使用 Docker-Gen 在 Etcd 中注册容器信息。
通过以上步骤和示例,您可以快速上手并使用 Docker-Gen 来管理 Docker 容器的配置文件和服务发现。