我需要为多个项目创建一个docker容器,以便在PHP 7.3中使用Mysql 8.0
我喜欢创建它,因为我需要修改mysql启动配置
为此,我创建
Dockerfile
FROM mysql:8.0
COPY mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
ENV MYSQL_ROOT_PASSWORD="123456"
mysqld_charset.cnf
[mysqld]
default-authentication-plugin = mysql_native_password
collation-server = utf8mb4_general_ci
character-set-server = utf8mb4
许可和自述文件。
执行
$ docker build --no-cache -t mysql8_legacy_password .
Sending build context to Docker daemon 14.85kB
Step 1/3 : FROM mysql:8.0
---> 62a9f311b99c
Step 2/3 : COPY mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
---> 0e21143ae822
Step 3/3 : ENV MYSQL_ROOT_PASSWORD="123456"
---> Running in a8d350dbd651
Removing intermediate container a8d350dbd651
---> 7dd66b27be00
Successfully built 7dd66b27be00
Successfully tagged mysql8_legacy_password:latest
$ docker run --name mysql8_legacy_password -it mysql:8.0
error: 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
答案 0 :(得分:1)
问题在运行命令中。
docker run --name mysql8_legacy_password -it mysql:8.0
您正在尝试从mysql:8.0
映像中启动一个未设置环境的容器。
docker run
命令的最后一个参数应该是图像名称。由于您已将图像标记为mysql8_legacy_password
,因此应该可以:
docker run --name container_name -it mysql8_legacy_password