简体   繁体   English

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

[英]How to run this mysql docker image build locally

My host os is Ubuntu 18. Docker version 19.03.6, build 369ce74a3c我的主机操作系统是 Ubuntu 18. Docker 版本 19.03.6,构建 369ce74a3c

Here is the docker file:-这是 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 has initialize_db.sql 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;

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

Then I tried to run it as:-然后我尝试将其运行为:-

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

I got the following error:-我收到以下错误:-

[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

how can I run this docker image?如何运行这个 docker 图像?

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

The error is because of your first docker run command,该错误是因为您的第一个 docker 运行命令,

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

anything after docker image name will be considered as an argument for the MySQL process. docker image name之后的任何内容都将被视为 MySQL 进程的参数。 so -p 3306:3306 and -e... are also pass as an argument.所以-p 3306:3306-e...也作为参数传递。

correct command should be正确的命令应该是

docker run -it --rm -p 3306:3306 -e "MYSQL_ROOT_PASSWORD=password" -e "MYSQL_USER=gordon" reg-database 
docker container run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=password reg-database

you can give any name and any password你可以给任何名字和密码

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM