我使用这个tutum-docker-mysql dockerfile,启动并运行安装了mysql的docker镜像,docker文件创建一个名为root且没有密码的用户,我需要的是将这样的东西添加到dockerfile:
RUN mysql -uroot -p"" && mysql create database test;
因此,当我从docker文件构建映像时,数据库应该已经存在.
通过执行以下操作,我能够实现将数据库添加到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>
我通过修改Dockerfile来争取一段时间.我认为这可能是可能的,但过了一段时间,我发现上述解决方案更快更简单.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。