[英]How to assign domain to a docker container
我使用 Docker-compose 與 Mysql 和 Z83580F5F7BFE3B16362426B176 一起開發 WordPress 網站。 另外,使用 Portainer 監控它們,顯示健康圖標,我可以通過鍵入 IP 地址 192.168.188.80:3001 來訪問它,我可以從端口 3001 訪問 curl 頁面。
我嘗試為不同的容器分配域名,會有幾個 WordPress 網站,我計划將它們托管在端口 3001、3002、3003 上......
我在 Nginx 和 conf 文件中啟用了 conf 文件
server {
listen 80;
server_name forktruck.bcsystems.nz;
location / {
proxy_pass http://0.0.0.0:3001;
}
}
yml 文件在這里
version: '3.8'
volumes:
wp-forktruck-data:
networks:
wp-forktruck-network:
services:
db:
image: mysql:latest
volumes:
- ./wp-forktruck-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: wordpress-forktruck
MYSQL_USER: wp-forktruck
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- 3201:3306
healthcheck:
test: curl --fail http://localhost || exit 1
interval: 300s
start_period: 5s
timeout: 10s
restart: always
networks:
- wp-forktruck-network
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: db
MYSQL_USER: wp-forktruck
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
ports:
- 3101:80
healthcheck:
test: curl --fail http://localhost || exit 1
interval: 300s
start_period: 5s
timeout: 10s
networks:
- wp-forktruck-network
wordpress:
depends_on:
- db
image: wordpress
ports:
- 3001:80
healthcheck:
test: curl --fail http://localhost || exit 1
interval: 300s
start_period: 5s
timeout: 10s
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wp-forktruck
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
WORDPRESS_DB_NAME: wordpress-forktruck
volumes:
- ./forktruck:/var/www/
container_name: wp-forktruck
networks:
- wp-forktruck-network
但是出了點問題,域名出現 520 錯誤。
您正在使用 Cloudflare? 您的 Cloudflare DNS 配置是什么。 您確定該域指向 192.168.188.80 的公共地址(因為 192.168.188.80 是私有 IP 地址,它只能在您的內部網絡上訪問,但不能在互聯網上訪問)。
If you don't know your public IP address, run curl ipinfo.io
on the 192.168.188.80 server to get your public IP address. 然后將域forktruck.bcsystems.nz
的 Cloudflare DNS 配置更新到該地址。
注意:僅當您使用 static IP 地址時,它才容易且有效。 如果沒有,請考慮https://ngrok.com/而不是 Cloudflare。
您需要在 nginx 中添加重定向選項
server {
listen 80;
server_name forktruck.bcsystems.nz;
location / {
proxy_pass http://0.0.0.0:3001;
proxy_read_timeout 90;
proxy_redirect http://0.0.0.0:3001 http://forktruck.bcsystems.nz/;
}
}
應該工作,祝你好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.