我正在尝试使用适用于Windows的Docker运行基本的wordpress应用。 我只是按照以下食谱操作:https://docs.docker.com/compose/wordpress/
这是我的docker-compose.yml
:
# docker-compose.yml
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DB}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:${MYSQL_PORT}
WORDPRESS_DB_USER: ${WORDPRESS_DB_USER}
WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
volumes:
db_data:
还有.env
文件:
# DATABASE
MYSQL_DB=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=wordpress
MYSQL_ROOT_PASSWORD=somewordpress
MYSQL_PORT=3306
#WORDPRESS
WORDPRESS_DB_USER=wordpress
WORDPRESS_DB_PASSWORD=wordpress
我运行docker-compose up -d
时一切正常。
但是,当我尝试到达http://127.0.0.1:8080
时,即使我等待了几个小时,也只是一次又一次地得到ERR_EMPTY_RESPONSE
(文档说安装可能在后台花费了几分钟,但没有!)
如果我运行docker-compose up
,我会看到mysql用户的循环错误访问被拒绝...我是否在创建mysql用户时错过了某些东西?
非常感谢!
答案 0 :(得分:0)
好吧,我终于做到了。 这是两个问题的结合!
首先,我们必须将wordpress容器插入mysql根用户,除非它没有创建表等的权限。
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:${MYSQL_PORT}
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: ${MYSQL_ROOT_PASSWORD}
第二,db_data
是一个卷,因此Docker将其保留在某个位置。当我运行docker volume ls
时,我只是认出了多次尝试中创建的数十个卷。
但是我真的认为主要问题是wordpress对数据库的访问,这阻碍了所有安装过程。