簡體   English   中英

如何擴展docker mysql鏡像

[英]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 映像可以在容器創建時執行一次初始化腳本( 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

就是這樣!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM