我想用docker为我的应用创建图像。 该应用程序使用MySQL。我需要我的映像基于MySQL映像(mysql / mysql-server?)。 在Dockerfile中,我需要设置一些指令来创建具有特定用户名/密码的数据库。因此,我的应用程序可以与该数据库一起使用。 我不需要表,只有具有特定名称和用户/密码的空数据库可以访问该数据库。
我该怎么做?
我想要类似
FROM mysql/mysql-server
# Create MySQL DB
mysql -u root -e "CREATE DATABASE MyDB"
但是我在这里不知道root用户密码。看来是自动生成的?
我该怎么做?
答案 0 :(得分:0)
您在这里有2个解决方案:
[简单]使用docker-compose
并创建一个docker-compose.yml
文件,如下所示:
version: '3'
services:
mariadb:
container_name: mariadb
image: mariadb:latest
environment:
- MYSQL_DATABASE=_YOUR_DB_
- MYSQL_ROOT_PASSWORD="_YOUR_PASSWORD_"
- MYSQL_USER=_YOUR_USER_
- MYSQL_PASSWORD=_YOUR_USER_PASSWORD_
...
此配置将为您带来一个MariaDB
数据库。另外,如果您想使用它,只需检查以下页面即可获得安装指南:
https://github.com/docker/compose
最后一步就是进入保存docker-compose.yml
的目录并运行:
docker-compose up
,或者如果您不想在终端内看到日志,只需向其添加-d
标志。
2. [有点复杂]您可以根据需要创建自定义图像。在这种情况下,最好查看Dockerfile
文档,然后查看此自动生成的默认MariaDB Dockerfile,以了解确切地实现目标的方法。
答案 1 :(得分:0)
该图像默认情况下会自动生成根密码,如图像github存储库(https://github.com/mysql/mysql-docker)中所述。您可以使用所需的密码在Dockerfile中设置MYSQL_ROOT_PASSWORD环境变量。
除此之外,如果要在映像启动时创建数据库,则可以使用环境变量MYSQL_DATABASE。
有关此处支持的环境变量的更多信息: https://github.com/mysql/mysql-docker#docker-environment-variables