簡體   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