我怎样才能创build一个初始化数据库的docker图像
我想使用官方的mysql docker镜像来创build一个具有初始化数据库和导入转储文件的新镜像。 默认的命令是mysqld
,所以我不知道如何实现这一点。 有没有办法只初始化数据库和导入转储,而不启动mysql守护进程?
在第一次启动时,MySQL泊坞窗图像自动从/docker-entrypoint-initdb.d
目录parsing.sh
.sql
和.sql.gz
。 文件将按字母顺序执行。
把你现有的数据库转储到一个文件,然后编辑Dockerfile来添加:
ADD mysqldump.sql /docker-entrypoint-initdb.d/mysqldump.sql
首先启动, mysqldump.sql
将被导入。
一个选项是访问Docker容器的bash shell(请参阅https://hub.docker.com/_/mysql/中的 “容器shell访问和查看MySQL日志”部分),导入您的转储文件(可以使用docker cp
将转储文件从主机系统复制到docker容器中),完成后,可以使用docker commit
命令从当前正在运行的容器中创build一个新的Docker镜像。 之后您可以使用新创build的图像。
希望这可以帮助。
我刚刚find了一个解决scheme的mysql:5.7
。 我在构build过程中执行稍微修改的entrypoint.sh :
COPY ./docker-entrypoint.sh / RUN /docker-entrypoint.sh mysqld
在docker-entrypoint.sh
我删除了最后一行:
exec "$@
它看起来很丑陋,但它迄今为止工作。
- Docker没有创build我的/ app目录
- 删除远程dockerregistry上的docker库
- Docker链接容器,Docker Networks,Compose Networks – 我们应该如何“链接”容器
- 在loadbalancer后面运行docker容器,端口未按预期转发
- Docker组成不显示控制台输出的链接
- 我已经做了一个dockerfile,我打算在AWS ECS上运行它,但是我不能,因为它需要-t
- 什么组件应该是“集装箱” – docker
- 为什么在Docker日志文件中旋转nginx并不是在文件系统中释放?
- 从正式的WordPress图像挂载单个文件时,Docker(撰写)无法构build容器