1. 建立本地資料夾
mkdir -p /docker/mysql8/conf
mkdir -p /docker/mysql8/data
mkdir -p /docker/mysql8/log
2. 新建配置檔案
在conf資料夾中建立檔案:mysql.conf
檔案內容:
[mysqld]
init-connect="SET collation_connection=utf8mb4_0900_ai_ci"
init_connect="SET NAMES utf8mb4"
skip-character-set-client-handshake
3. 拉取映象
docker pull mysql
4. 啟動映象
docker run --restart=always --name mysql8 -v /docker/mysql8/log:/var/log/mysql -v /docker/mysql8/data:/var/lib/mysql -v /docker/mysql8/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yyyxxx -d mysql
解釋:來自ChatGPT
這條命令是用來啟動一個 MySQL Docker 容器的。讓我們一步步地解釋這條命令的各個部分:
-
docker run
:這是 Docker 的一個基本命令,用於啟動一個新容器。 -
--restart=always
:這個選項指定了容器的重啟策略。設定為always
意味著無論容器因何原因停止執行,Docker 都會自動重啟它。 -
--name mysql8
:這裡指定了容器的名稱為mysql8
。透過這個名稱,你可以輕鬆地引用或操作這個容器。 -
-v /docker/mysql8/log:/var/log/mysql
:這是一個資料卷的掛載指令,它將宿主機的/docker/mysql8/log
目錄掛載到容器的/var/log/mysql
目錄。這意味著容器內的 MySQL 日誌會被儲存到宿主機的指定目錄中。 -
-v /docker/mysql8/data:/var/lib/mysql
:同樣是一個資料卷的掛載,將宿主機的/docker/mysql8/data
目錄掛載到容器的/var/lib/mysql
目錄。這裡儲存的是 MySQL 資料庫的資料檔案。 -
-v /docker/mysql8/conf:/etc/mysql/conf.d
:將宿主機的/docker/mysql8/conf
目錄掛載到容器的/etc/mysql/conf.d
目錄,用於自定義 MySQL 的配置。 -
-p 3306:3306
:這是埠對映的設定。它將容器的 3306 埠對映到宿主機的 3306 埠,使得你可以透過宿主機的 3306 埠來訪問容器中的 MySQL 服務。 -
-e MYSQL_ROOT_PASSWORD=yyyxxx
:這裡設定了環境變數MYSQL_ROOT_PASSWORD
,其值為yyyxxx
。這個環境變數是用來設定 MySQL root 使用者的密碼的。 -
-d mysql
:-d
選項讓容器在後臺執行。mysql
指定了要使用的映象,這裡使用的是mysql
映象。
綜上所述,這條命令建立了一個名為 mysql8
的 MySQL 容器,設定了資料卷和埠對映,並配置了 root 使用者密碼。容器會在後臺執行,並且會在停止後自動重啟。