Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.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
Mysql Docker容器从CLI启动,但不是从Docker-compose.yml启动_Mysql_Linux_Docker_Docker Compose_Confluence - Fatal编程技术网

Mysql Docker容器从CLI启动,但不是从Docker-compose.yml启动

Mysql Docker容器从CLI启动,但不是从Docker-compose.yml启动,mysql,linux,docker,docker-compose,confluence,Mysql,Linux,Docker,Docker Compose,Confluence,我有一个在Linux上运行的MySQL docker容器。 它有一个名为confluence的数据库,其中填充了大约140个表。 从CLI启动时,启动良好,如下所示: docker run --name mysqlconf -v /local/disk0/confluence/:/data -e MYSQL_ROOT_PASSWORD=XXXXXXX -e MYSQL_ROOT_HOST=% -e character-set-server=utf8 -e collation-server=utf

我有一个在Linux上运行的MySQL docker容器。
它有一个名为confluence的数据库,其中填充了大约140个表。
从CLI启动时,启动良好,如下所示:

docker run --name mysqlconf -v /local/disk0/confluence/:/data -e MYSQL_ROOT_PASSWORD=XXXXXXX -e MYSQL_ROOT_HOST=% -e character-set-server=utf8 -e collation-server=utf8_bin -v sql_volume:/var/lib/mysql -p 3306:3306 -d rbarak/mysql:CHARACTER-SET-utf8
但是,当我尝试在
docker compose.yml
中获取相同的参数时,
它未能启动并抱怨:

2021-06-01T23:42:57.436446Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2021-06-01T23:42:57.436459Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2021-06-01T23:42:57.436523Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-06-01T23:42:57.436680Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.25)  MySQL Community Server - GPL.
这是我的
docker compose.yml

version: '3'
services:
  confl-mysql:
    image: rbarak/mysql:CHARACTER-SET-utf8
    container_name: mysqlconf
    restart: always
    volumes:
      - /local/disk0/confluence/:/data
      - sql_volume:/var/lib/mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_HOST=%
      - MYSQL_ROOT_PASSWORD=XXXXXXX
    command: [mysqld, --character-set-server=utf8, --collation-server=utf8_bin]
   
volumes:
  sql_volume:
我在我的
docker compose.yml中做错了什么?

编辑1: 我注意到,当使用
docker compose
创建容器时,它的端口没有定义。
因此,我使用命令
docker compose run--serviceports conl mysql-d
创建了它,结果如下:

[qa@docker-rbarak confluence]$ docker-compose run --service-ports confl-mysql -d
Creating confluence_confl-mysql_run ... done
2021-06-02 17:09:10+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.
2021-06-02 17:09:10+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2021-06-02 17:09:10+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.
2021-06-02 17:09:10+00:00 [Note] [Entrypoint]: Initializing database files
2021-06-02T17:09:10.937809Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.25) initializing of server in progress as process 40
2021-06-02T17:09:10.940345Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2021-06-02T17:09:10.940357Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2021-06-02T17:09:10.940424Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-06-02T17:09:10.940581Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.25)  MySQL Community Server - GPL.
ERROR: 1

什么是rbarak/mysql,它是如何形成的?compose和
docker运行
之间的区别在于
命令
,出于某种原因,
docker运行
作为参数作为环境变量(
-e
)。这里的区别在于入口点如何处理这种差异(因此是第一个问题)。还不清楚/local/disk0/confluence是什么,它与/var/lib/mysql卷有何不同。入口点是否以某种方式处理/处理数据?