如何在本地运行此mysql docker映像构建

时间:2020-07-18 09:12:24

标签: mysql image docker

我的主机操作系统是Ubuntu18。Docker版本19.03.6,内部版本369ce74a3c

这是docker文件:-

FROM mysql:5.7
ADD  docker-entrypoint-initdb.d/ /docker-entrypoint-initdb.d/
ENV MYSQL_DATABASE=dockercon2035
ENV MYSQL_USER=gordon
ENV MYSQL_PASSWORD=password

docker-entrypoint-initdb.d具有initialize_db.sql

    CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`dateOfBirth` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`emailAddress` varchar(255) NOT NULL,
`firstName` varchar(255) NOT NULL,
`lastName` varchar(255) NOT NULL,
`password` varchar(8) NOT NULL,
`userName` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1;

我将其构建为:docker build -t reg-database .

然后我尝试将其运行为:-

docker run reg-database -p 3306:3306 -e "MYSQL_ROOT_PASSWORD=password" -e "MYSQL_USER=gordon"

我遇到以下错误:-

[Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.31-1debian10 started.
2020-07-18 09:09:30+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
    command was: mysqld -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=gordon --verbose --help
    2020-07-18T09:09:30.861935Z 0 [ERROR] mysqld: unknown option '-p'
2020-07-18T09:09:30.864121Z 0 [ERROR] Aborting

如何运行此docker映像?

2 个答案:

答案 0 :(得分:1)

2020-07-18T09:09:30.861935Z 0 [ERROR] mysqld: unknown option '-p'

该错误是由于您的第一个docker run命令,

docker run reg-database -p 3306:3306 -e "MYSQL_ROOT_PASSWORD=password" -e "MYSQL_USER=gordon"

docker image name之后的所有内容都将被视为MySQL进程的参数。因此-p 3306:3306-e ...也作为参数传递。

正确的命令应该是

docker run -it --rm -p 3306:3306 -e "MYSQL_ROOT_PASSWORD=password" -e "MYSQL_USER=gordon" reg-database 

答案 1 :(得分:0)

docker container run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=password reg-database

您可以提供任何名称和密码