Docker compose不会为链接服务设置公开端口80

时间:2018-12-05 21:40:50

标签: docker docker-compose

这是docker compose文件

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - blog-vol:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: mysqlpass
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wpuser
       MYSQL_PASSWORD: mysqluserpass

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wpuser
       WORDPRESS_DB_PASSWORD: mysqluserpass
volumes:
    blog-vol:

我像平常一样把它提起来

docker-compose up -d

由于某种原因,http://localhost(端口80)或http://my_private_ip(端口80)启动时无法解析。

但是,当我将上面的“端口”配置更改为

时,
ports:
 -"8000:80"

http://localhost:8000http://my_private_ip:8000可以正常工作。不知道端口80发生了什么。我确实看到它可用。我通过运行nginx实例来测试端口80

docker run -p 80:80 -d nginx

这很好地公开了端口80上的服务。我不确定上面的docker-compose配置发生了什么。我在这里想念东西吗?

1 个答案:

答案 0 :(得分:0)

问题出在官方Docker映像中的默认Wordpress配置。我公开了上述MySQL实例的端口,并连接到数据库服务器。我检查了WP配置,以了解它具有服务器运行所在位置(包括端口)的固定配置。我对此进行了更新,一切开始按预期工作!