【发布时间】:2026-02-17 13:50:02
【问题描述】:
当我尝试使用 docker swarm 设置集群时,我收到此错误:
$ docker logs 6ea0f7290cb0
2020-11-30 10:46:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.8+maria~focal started.
2020-11-30 10:46:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2020-11-30 10:46:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.8+maria~focal started.
2020-11-30 10:46:08+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
奇怪的是,如果我使用 docker-compose 工具,一切都运行良好。
要复制此问题,请按照以下步骤操作。
创建一个.env 文件:
DB_NAME=nest
DB_USERNAME=nest
DB_PASSWORD=nest
DB_ROOT_PASSWORD=nest
创建一个docker-compose.yml 文件:
version: '3.8'
services:
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
如果我使用命令docker-compose up -d,我可以使用docker-compose ps 命令检查一切是否正常:
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------
db-debug_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
如果我使用命令docker stack deploy -c docker-compose.yml db,我可以使用命令docker service ls检查数据库没有启动:
$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
ux1p4k6vwiyh db_db replicated 0/1 mariadb:latest
【问题讨论】:
标签: mysql docker docker-compose mariadb docker-swarm