程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Docker 容器,相互连接数据库、Nginx 代理和 WordPress大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Docker 容器,相互连接数据库、Nginx 代理和 WordPress?

开发过程中遇到Docker 容器,相互连接数据库、Nginx 代理和 WordPress的问题如何解决?下面主要结合日常开发的经验,给出你关于Docker 容器,相互连接数据库、Nginx 代理和 WordPress的解决方法建议,希望对你解决Docker 容器,相互连接数据库、Nginx 代理和 WordPress有所启发或帮助;

我试图弄清楚 docker 网络和那种东西是如何工作的。 所以这是我的设置,我有 2 个带有 wordpress 和 MysqL 的 docker 容器。并且这两个需要能够通过直接数据库连接相互交谈。我也有域指向它们。 所以我尝试使用 docker Nginx 代理设置它,但是当我尝试通过域访问该站点时,我得到了 502 bat 网关。

所以我的 docker ngxinx 代理撰写文件看起来像这样,但端口不同:

version: "3.1"
services:
  Nginx-proxy:
    image: jwilder/Nginx-proxy:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./certs:/etc/Nginx/certs
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: unless-stopped
networks:
  default:
    external:
      name: Nginx-proxy

我的两个 wordpress 容器都是这样的

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    environment:
      wordpress_DB_HOST: db
      wordpress_DB_USER: exampleuser
      wordpress_DB_password: examplepass
      wordpress_db_name: exampledb
      VIRTUAL_HOST: wp1.local
      VIRTUAL_PORT: 3000
    volumes:
      - ./wp:/var/www/HTML
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    expose:
      - 3000

  db:
    image: MysqL:5.7
    restart: always
    environment:
      MysqL_DATABASE: exampledb
      MysqL_USER: exampleuser
      MysqL_password: examplepass
      MysqL_RANDOM_ROOT_password: '1'
    volumes:
      - db:/var/lib/MysqL
    ports:
      - "8086:3306"

  mailhog:
    image: mailhog/mailhog
    ports:
      - "1025:1025" # smtp server
      - "8025:8025" # web ui

networks:
  default:
    external:
      name: Nginx-proxy

volumes:
  db:

我已经将 127.0.0.1 wp1 添加到 /etc/hosts

但是当我启动代理和 WP 容器之一时,我的网关变得很糟糕。我不知道如何前进。也许这甚至不是正确的方法。因为我要解决的问题是 wp2 需要能够通过自定义 pdo 连接连接到 wp1 数据库。

我尽量解释清楚,但当谈到 docker 网络时,这对我来说是一个新领域。此外,我正在使用 wsl2 为 windows 运行 docker

解决方法

你应该添加

networks: 
 - default

到 docker-compose 中的每个服务定义。

version: '3.1'    

services:

  wordpress:
    image: wordpress
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_password: examplepass
      WORDPRESS_db_name: exampledb
      VIRTUAL_HOST: wp1.local
      VIRTUAL_PORT: 3000
    volumes:
      - ./wp:/var/www/html
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    expose:
      - 3000
    networks:
      - default

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_password: examplepass
      MYSQL_RANDOM_ROOT_password: '1'
    volumes:
      - db:/var/lib/mysql
    ports:
      - "8086:3306"
    networks:
      -default

  mailhog:
    image: mailhog/mailhog
    ports:
      - "1025:1025" # smtp server
      - "8025:8025" # web ui
    networks:
      - default

networks:
  default:
    external:
      name: nginx-proxy

volumes:
  db:

大佬总结

以上是大佬教程为你收集整理的Docker 容器,相互连接数据库、Nginx 代理和 WordPress全部内容,希望文章能够帮你解决Docker 容器,相互连接数据库、Nginx 代理和 WordPress所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。