我拉出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
我不知道为什么会这样做。
答案 0 :(得分:3)
它可能是运行mysql(如pid文件)的剩余部分。这是使用exec& amp;承诺根据不同的容器创建自己的容器。通过Dockerfile创建自己的图像要好得多:
FROM mysql/mysql-server
RUN <your commands here>
然后
docker build -t myappwithjdk .
答案 1 :(得分:0)
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
就是这样!