在 Docker 容器上運行 MySQL 數據庫,需要先創建 Dockfile,這個文件包含了 MySQL 的安裝和配置信息,其中更改密碼和創建數據庫的命令需要加以注意。以下是一個示例 Dockfile。
FROM mysql:8.0 ENV MYSQL_DATABASE=mysql_database ENV MYSQL_USER=mysql_user ENV MYSQL_PASSWORD=mysql_password ENV MYSQL_ROOT_PASSWORD=root_password COPY ./sql-scripts/ /docker-entrypoint-initdb.d/
首先,我們使用官方提供的 MySQL 鏡像作為基礎鏡像。然后,我們設置 MySQL 的環境變量,這些變量包括:數據庫名稱、用戶名稱、用戶密碼、和 root 用戶密碼。接下來,我們將 SQL 腳本復制到了容器的默認初始化腳本目錄下(/docker-entrypoint-initdb.d/),MySQL 會在容器啟動時執行這些 SQL 腳本。
其中需要注意的是,若要更改 MySQL 用戶密碼,需要在容器啟動后運行以下命令:
$ docker exec -it [CONTAINER_ID] sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e "ALTER USER '"$MYSQL_USER"'@'"'%'"' IDENTIFIED WITH mysql_native_password BY '"'$MYSQL_PASSWORD'"';"'
在這個命令中,我們通過 docker exec 命令進入正在運行的容器,并執行了 ALTER USER 命令,設置了 MySQL 用戶的密碼。
當我們構建并運行這個 Docker 鏡像后,你會得到一個運行 MySQL 數據庫的 Docker 容器,可以使用以下命令訪問它:
$ mysql -umysql_user -pmysql_password -h 127.0.0.1 -P 3306 mysql_database
在這個命令中,我們使用了 MySQL 客戶端(mysql),并指定了相關參數以連接到 MySQL 數據庫。如果一切正常,你將可以連接到 MySQL 數據庫,并開始使用它。