如何扩展docker mysql镜像

问题描述 投票:1回答:2

我拉出mysql / mysql-server镜像,然后在下面执行以下命令:

docker run --name myapp -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql/mysql-server
docker exec -it myapp bash

此后,我将jdk和tomcat安装在新创建的myapp容器中,然后退出shell并运行:

docker commit myapp myappwithjdk

然后我运行以下命令,但是容器立即退出:

docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d myappwithjdk

我不知道为什么会这样做。

mysql docker
2个回答
3
投票

可能是运行mysql(如pid文件)留下的剩余物。使用exec&commit来基于不同容器创建自己的容器是一种不好的方法。通过Dockerfile创建自己的图像会更好:

FROM mysql/mysql-server
RUN <your commands here>

然后

docker build -t myappwithjdk .

0
投票

mysql映像具有一种在创建容器时执行初始化脚本(bashsql)的方法。只需将它们放入/docker-entrypoint-initdb.d/文件夹:

FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD=root

COPY 00-extra_env_setup.sh /docker-entrypoint-initdb.d/00-extra_env_setup.sh
COPY 01-user_setup.sql /docker-entrypoint-initdb.d/01-user_setup.sql

内部版本:

docker build -t mymysql .

并运行(注意端口暴露):

docker run -p 3306:3306 mymysql

现在您可以在外部连接(将IP更改为Docker服务器的IP):

mysql --host 127.0.0.1 --port 3306 --user root --password

就是这样!

热门问题
推荐问题
最新问题