[英]how to extend docker mysql image
我拉取 mysql/mysql-server 镜像,然后执行以下命令:
docker run --name myapp -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql/mysql-server
docker exec -it myapp bash
之后,我在新创建的myapp
容器中安装 jdk 和 tomcat,然后退出 shell 并运行:
docker commit myapp myappwithjdk
然后我运行以下命令,但容器立即退出:
docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d myappwithjdk
我不知道为什么会这样。
它可能是运行 mysql 的剩余部分(如 pid 文件)。 使用 exec & commit 根据不同的容器创建自己的容器是一种不好的方法。 通过Dockerfile创建自己的镜像要好得多:
FROM mysql/mysql-server
RUN <your commands here>
进而
docker build -t myappwithjdk .
mysql 映像可以在容器创建时执行一次初始化脚本( bash和sql )。 只需将它们放在/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
就是这样!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.