簡體   English   中英

如何將域分配給 docker 容器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM