Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker compose-更改docker hub值不起作用?_Docker_Docker Compose - Fatal编程技术网

docker compose-更改docker hub值不起作用?

docker compose-更改docker hub值不起作用?,docker,docker-compose,Docker,Docker Compose,这看起来很简单,但我真的找不到错误,我相信这是非常简单的事情 我在这里有我的撰写文件: version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: w

这看起来很简单,但我真的找不到错误,我相信这是非常简单的事情

我在这里有我的撰写文件:

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
从码头中心直达。 但如果我尝试填写自己的数据,例如,我们称之为“awordpress”,而不是数据库名“wordpress”。然后整个事情就停止了,但是为什么呢

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: awordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: awordpress
volumes:
    db_data: {}
合成输出:

wordpress_1  | Complete! WordPress has been successfully copied to /var/www/html
wordpress_1  |
wordpress_1  | MySQL "CREATE DATABASE" Error: Access denied for user 'wordpress'@'%' to database 'awordpress'
wordpress_1  |
wordpress_1  | WARNING: unable to establish a database connection to 'db:3306'
wordpress_1  |   continuing anyways (which might have unexpected results)

奇怪的是,它通过环境变量创建了一个数据库“wordpress”,而不是我插入的“awordpress”。为什么它“忽略”我的变量并创建这个值呢

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)
目标是用我自己的数据自动配置wordpress。我相信这是一件非常简单的事我监督。。。 抱歉,如果这是个愚蠢的问题。我对docker很陌生。
提前谢谢

mysql
映像在空数据目录上启动时,它将从环境变量初始化自身

从(搜索“环境变量”)

请注意,如果使用已包含数据库的数据目录启动容器,则以下变量都不会产生任何影响:在容器启动时,任何预先存在的数据库都将始终保持不变

因此,如果在第一次运行后更改默认数据库的名称,那么
db_data
卷将已经包含一个初始化的mysql数据文件系统,并且不会创建这个新数据库

您有两个选择:

  • 在现有数据安装中手动创建/重命名数据库
  • 从头开始,让映像在新的空白卷上执行初始化工作
  • 使用docker compose执行第二个选项非常容易警告:以下内容将删除以前的所有数据

    首先,停止所有撰写服务并删除其关联的docker卷:

    docker-compose down -v
    
    然后重新启动一切,重新创建所有需要的卷

    docker-compose up -d
    

    mysql
    映像在空数据目录上启动时,将从环境变量初始化自身

    从(搜索“环境变量”)

    请注意,如果使用已包含数据库的数据目录启动容器,则以下变量都不会产生任何影响:在容器启动时,任何预先存在的数据库都将始终保持不变

    因此,如果在第一次运行后更改默认数据库的名称,那么
    db_data
    卷将已经包含一个初始化的mysql数据文件系统,并且不会创建这个新数据库

    您有两个选择:

  • 在现有数据安装中手动创建/重命名数据库
  • 从头开始,让映像在新的空白卷上执行初始化工作
  • 使用docker compose执行第二个选项非常容易警告:以下内容将删除以前的所有数据

    首先,停止所有撰写服务并删除其关联的docker卷:

    docker-compose down -v
    
    然后重新启动一切,重新创建所有需要的卷

    docker-compose up -d