如何在CentOS 8上通过Docker安装和使用Traefik作为反向代理
如何在CentOS 8上通过Docker安装和使用Traefik作为反向代理
Traefik是一个开放源代码HTTP反向代理和负载平衡器,可帮助您轻松部署微服务。 轻松与Docker,Kubernetes,Docker Swarm,Rancher和AWS等基础架构组件集成。 如果要在同一Docker主机上运行多个应用程序,则可以将Traefik用作反向代理,以将端口80和443公开给其他区域。
本教程显示了如何在CentOS 8上将Traefik安装和配置为反向代理。
先决条件
- 运行CentOS的服务器8。
- 指向服务器IP的有效域名。
- 根密码是在服务器上设置的。
安装Docker和Docker Compose
首先,您需要在系统上安装最新版本的Docker和Docker Compose。 默认情况下,CentOS 8默认存储库中不提供Docker。 因此,您需要将Docker CE存储库添加到您的系统。 您可以使用以下命令添加它。
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
创建存储库后,使用以下命令安装Docker CE:
dnf install docker-ce --nobest -y
安装Docker之后,启动Docker服务,以便可以使用以下命令在系统重启时启动它:
systemctl start dockersystemctl enable docker
要安装Docker Compose,您需要安装Curl并将Docker Compose二进制文件下载到您的系统。 您可以使用以下命令运行它:
dnf install curlcurl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
创建一个Docker网络
接下来,您需要创建一个新的Docker网络来运行traefik容器。 您可以通过运行以下命令以名称“ web”创建它:
docker network create web
然后使用以下命令检查网络:
docker network ls
您应该看到以下输出:
NETWORK ID NAME DRIVER SCOPE 76a9475e5ab0 bridge bridge local 2a3d79f64747 host host local 4c9123229eaa none null local 0b6e010b43d0 web bridge local
安装和配置Traefik代理
在开始之前,您需要安装httpd-tools来生成加密的密码。 可以使用以下命令安装此工具:
dnf install httpd-tools -y
安装后,使用以下命令生成加密的密码:
htpasswd -nb admin my_password
您应该看到以下输出:
admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0
然后使用以下命令创建新的Traefik配置文件:
nano traefik.toml
添加以下行,其中包含有效的域名,受保护的密码和端口。
defaultEntryPoints = ["http", "https"] [entryPoints] [entryPoints.dashboard] address = ":8080" [entryPoints.dashboard.auth] [entryPoints.dashboard.auth.basic] users = ["admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0"] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls] [api] entrypoint="dashboard" [acme] email = "[email protected]" storage = "acme.json" entryPoint = "https" onHostRule = true [acme.httpChallenge] entryPoint = "http" [docker] domain = "traefik.linuxbuz.com" watch = true network = "web"
完成后,保存文件并关闭它。 接下来,创建一个空文件来存储“让我们加密”信息。
touch acme.json
然后使用以下命令将此文件授予适当的权限:
chmod 600 acme.json
创建一个Docker创建文件
接下来,您需要创建一个新的docker-compose.yml文件来定义域,端口,网络和卷。
您可以使用以下命令创建它。
nano docker-compose.yml
添加以下行。
version: '3' services: traefik: image: traefik:1.7.21-alpine command: --docker --docker.domain=linuxbuz.com ports: - 80:80 - 443:443 networks: - web volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json labels: - "traefik.frontend.rule=Host:traefik.linuxbuz.com" - "traefik.port=8080" container_name: traefik restart: always networks: web: external: true
完成后,保存文件并关闭它。 广告
构建Traefik Docker容器
至此,Traefik和Docker Compose配置文件已准备就绪。 现在,使用以下命令构建Traefik容器:
docker-compose up -d
您应该看到以下输出:
Unable to find image 'traefik:1.7.21-alpine' locally 1.7.21-alpine: Pulling from library/traefik c9b1b535fdd9: Pull complete c141e361698e: Pull complete 2573c02b6f16: Pull complete 1619fb3841d1: Pull complete Digest: sha256:0e4ac8ae724603898620dbd5eb9cda7ec05f405d25476eb0d32b716b490ba079 Status: Downloaded newer image for traefik:1.7.21-alpine 27e735357bb3b7d2d253ff78ddf6e78896851420eff399e8ade23affc7ff0bf7
然后使用以下命令检查正在运行的容器:
docker ps
您应该看到以下输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7604696507a5 traefik:1.7.21-alpine "/entrypoint.sh --do…" 6 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp traefik
访问Traefik Web界面
然后打开Web浏览器,并使用URL https://traefik.linuxbuz.com访问Traefik Web界面。 系统将提示您输入用户名和密码:Ads
输入先前生成的管理员用户名和密码, 码 至 按钮。 Traefik仪表板将显示在下一个屏幕上。
请点击 健康 标签。 下一个屏幕显示Traefik容器的健康状态。
结论
恭喜! Traefik代理已成功安装在CentOS 8上。 访问Traefik了解更多信息 文件资料..