繁体   English   中英

如何预配置和预填充官方MySQL Docker容器?

[英]How to pre-configure and prefill official MySQL docker container?

我想基于官方的MySQL docker容器映像构建一个新的MySQL映像。 我想减少运行图像时需要添加的参数数量。 (例如-e MYSQL_USER-e MYSQL_DATABASE甚至-e MYSQL_ROOT_PASSWORD='rootsecret' ),该文件已经在docker-entrypoint-initdb.d文件夹中包含了我的全局变量设置和Create Database SQL文件。

如何添加所有设置并创建新映像,以简单地docker run mysql:config1 docker run mysql:config2 docker run mysql:config1 docker run mysql:config2等方面?

您可以使用docker文件构建自己的mysql docker映像,配置用户名,密码和其他可能需要的内容,构建该映像,将其上传到docker hub,然后在启动新的docker容器时仅使用以前构建的容器。

一个用于在内部使用mysql服务器构建ubuntu映像的Docker文件示例将类似于以下内容(将其保存到名为Dockerfile的文件中):

FROM ubuntu:latest
    RUN apt-get update \
    && apt-get install -y apt-utils \                                           
    && { \
        echo debconf debconf/frontend select Noninteractive; \
        echo mysql-community-server mysql-community-server/data-dir \
            select ''; \
        echo mysql-community-server mysql-community-server/root-pass \
            password 'Desired-Password'; \
        echo mysql-community-server mysql-community-server/re-root-pass \
            password 'Desired-Password'; \
        echo mysql-community-server mysql-community-server/remove-test-db \
            select true; \
    } | debconf-set-selections \
    && apt-get install -y mysql-server mysql-client

然后像这样构建您的mysql docker容器(您必须位于保存Docker文件的文件夹中):

docker build my-ubuntu-mysql-docker

然后,您必须将其推送到docker hub,然后可以使用它来启动一个新的docker容器,如下所示:

docker run -d -p 2222:22 -p 3306:3306 --name my-ubuntu-mysql-docker ...

其中2222是映射到docker容器的ssh端口22的本地ssh端口,而3306是映射到docker容器的mysql端口的本地mysql端口。

我希望这有帮助!

您想要做的是修改Mysql的图像入口点 ,请注意,您不需要传递所有参数,其中大多数是可选的

必须将以下内容写入Dockerfile

FROM mysql:latest
LABEL Name=mylabel Version=0.0.1
COPY path/to/sh/sql/sql.gz/files /docker-entrypoint-initdb.d
ENV MYSQL_ROOT_PASSWORD='rootpassword' 

如官方Docker网站上的文档所述:

首次启动容器时,将创建一个具有指定名称的新数据库,并使用提供的配置变量对其进行初始化。 此外,它将执行在/docker-entrypoint-initdb.d中找到的扩展名为.sh,.sql和.sql.gz的文件。 文件将按字母顺序执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM