Mysql Docker容器从CLI启动,但不是从Docker-compose.yml启动
我有一个在Linux上运行的MySQL docker容器。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
它有一个名为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卷有何不同。入口点是否以某种方式处理/处理数据?