我參考 官網 用 Docker 啟動 Traefik ,跟者步驟試試
docker-compose down
確認一下有沒有容器在跑
docker ps
官網上面說在 docker-compose.yml 加上 reverse-proxy 這個服務
reverse-proxy:
# The official v2 Traefik docker image
image: traefik:v2.10
# Enables the web UI and tells Traefik to listen to docker
command: --api.insecure=true --providers.docker
ports:
# The HTTP port
- "80:80"
# The Web UI (enabled by --api.insecure=true)
- "8080:8080"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
我根據上方官網的提示將 service reverse-proxy
改為 traefik
,然後重新啟動 docker-compose 一次,首先使用 vi 來編輯:
vi docker-compose.yml
現在的 docker-compose.yml 長這樣:
version: "3.9"
services:
app:
image: krystallll/docker_test:1.0
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_HOST: db
POSTGRES_PORT: 5432
restart: on-failure
ports:
- 3000:3000
db:
image: postgres:14-alpine
restart: on-failure
environment:
POSTGRES_PASSWORD: password
traefik:
image: traefik:v2.10
command: --api.insecure=true --providers.docker
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
docker-compose up --build
官網說可以去以下網址看 Traefik 的 API 原始資料
http://localhost:8080/api/rawdata
看到無法連上網站,我先盲猜是因為沒有開 8080 port,所以跟之前一樣我先去 AWS EC2 裡跟之前設定 3000 port 一樣去設定 8080 port。
一樣先去編輯 Security Groups
加上 8080 port
重新看
http://localhost:8080/api/rawdata
一樣是無法連上網站,突然靈機一動上面的網址是 http://localhost
但現在網址是 http://ec2-52-199-213-167.ap-northeast-1.compute.amazonaws.com
所以我換網址為 http://ec2-52-199-213-167.ap-northeast-1.compute.amazonaws.com:8080/api/rawdata
可以看到以下
終於成功看到 API 原始資料,那明天我們繼續來完成使用 Traefik 取得 HTTPS 協定。