我使用这个tutum-docker-mysql dockerfile,启动并运行安装了MysqL的docker镜像,docker文件创建一个名为root且没有密码的用户,我需要的是将这样的东西添加到dockerfile:
RUN MysqL -uroot -p"" && MysqL create database test;
通过执行以下操作,我能够实现将数据库添加到tutum-docker-MysqL映像的目标.
git clone https://github.com/tutumcloud/tutum-docker-MysqL.git
cd tutum-docker-MysqL
vi create_MysqL_admin_user.sh
在.sh文件里面,我添加了一行,就在已经存在的两条“MysqL -uroot”行的正下方.我简单地说:
MysqL -uroot -e "create database test;"
在更改到.sh文件后,我只是构建了docker镜像.
docker build -t tutum/MysqL .
构建docker镜像后,我可以使用以下内容运行它:
docker run -d -p 3307:3306 tutum/MysqL
容器运行后,您需要知道要使用的密码和容器的IP地址.要获得密码,您只需这样做
docker logs 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
但是当然使用从上面的“docker run”命令返回的容器id.现在你有了密码,你需要ip地址.我这样做了.
docker inspect 2976a81f1a9b19787d9bde893c831b7e6586d7c8391ccd222ad29b02c282d896
并查看“网关”地址.使用密码和IP地址,我可以从容器的OUTSIDE执行此MysqL命令.
MysqL -uadmin -pJcM5FCphMOp4 -h172.17.42.1 -P3307
ip地址和密码是我从前两个docker命令获得的值.运行该命令后,我可以发出一个“show databases”命令,其中包含以下结果.
MysqL> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| MysqL |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
MysqL>