文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  使用 Docker 部署 MySQL 伺服器的基本步驟

2.5.6.1 使用 Docker 部署 MySQL 伺服器的基本步驟

警告

MySQL 團隊維護的 MySQL Docker 映像檔專為 Linux 平台建置。不支援其他平台,在這些平台上使用這些 MySQL Docker 映像檔的使用者將自行承擔風險。請參閱此處的討論,了解在非 Linux 作業系統上執行這些容器的一些已知限制。

下載 MySQL 伺服器 Docker 映像檔
重要事項

MySQL 企業版使用者:需要訂閱才能使用 MySQL 企業版的 Docker 映像檔。訂閱採用「自帶授權」模式;詳情請參閱如何購買 MySQL 產品和服務

在個別步驟中下載伺服器映像檔並非絕對必要;但是,在建立 Docker 容器之前執行此步驟可確保您的本機映像檔為最新版本。若要從Oracle 容器登錄 (OCR)下載 MySQL 社群版映像檔,請執行此命令

docker pull container-registry.oracle.com/mysql/community-server:tag

tag 是您要提取的映像檔版本標籤 (例如,8.49.0latest)。如果省略 :tag,則會使用 latest 標籤,並且會下載 MySQL 社群伺服器最新 GA 版本 (即最新創新版本) 的映像檔。

若要從 OCR 下載 MySQL 企業版映像檔,您需要先在 OCR 上接受授權協議,並使用您的 Docker 用戶端登入容器儲存庫。請按照下列步驟操作

  • 造訪 OCR:https://container-registry.oracle.com/ 並選擇 MySQL

  • 在 MySQL 儲存庫清單下方,選擇 enterprise-server

  • 如果您尚未登入 OCR,請按一下頁面右側的登入按鈕,然後在出現提示時輸入您的 Oracle 帳戶憑證。

  • 按照頁面右側的指示接受授權協議。

  • 使用您的容器用戶端登入 OCR,例如,使用 docker login 命令

    # docker login container-registry.oracle.com 
    Username: Oracle-Account-ID
    Password: password
    Login successful.

使用此命令從 OCR 下載 MySQL 企業版 Docker 映像檔

docker pull  container-registry.oracle.com/mysql/enterprise-server:tag

若要從My Oracle Support 網站下載 MySQL 企業版映像檔,請前往該網站,登入您的 Oracle 帳戶,並在您進入登陸頁面後執行下列步驟

  • 選取修補程式和更新索引標籤。

  • 前往修補程式搜尋區域,並在搜尋索引標籤上,切換至產品或系列 (進階)子索引標籤。

  • 產品欄位中輸入MySQL Server,並在發行欄位中輸入所需的版本號碼。

  • 使用其他篩選器的下拉式選單,選取描述包含,並在文字欄位中輸入Docker

    下圖顯示 MySQL Server 8.0 的 MySQL 企業版映像檔搜尋設定

    Diagram showing search settings for MySQL Enterprise image
  • 按一下搜尋按鈕,然後從結果清單中選取您要的版本,再按一下下載按鈕。

  • 在出現的檔案下載對話方塊中,按一下並下載 Docker 映像檔的 .zip 檔案。

解壓縮下載的 .zip 封存檔以取得內部的 tarball (mysql-enterprise-server-version.tar),然後執行此命令來載入映像檔

docker load -i mysql-enterprise-server-version.tar

您可以使用此命令列出下載的 Docker 映像檔

$> docker images
REPOSITORY                                             TAG       IMAGE ID       CREATED        SIZE
container-registry.oracle.com/mysql/community-server   latest    1d9c2219ff69   2 months ago   496MB
啟動 MySQL 伺服器執行個體

若要啟動 MySQL 伺服器的新 Docker 容器,請使用下列命令

docker run --name=container_name  --restart on-failure -d image_name:tag

image_name 是用來啟動容器的映像檔名稱;如需詳細資訊,請參閱下載 MySQL 伺服器 Docker 映像檔

docker run --name=mysql1 --restart on-failure -d container-registry.oracle.com/mysql/community-server:latest

docker run --name=mysql1 --restart on-failure -d container-registry.oracle.com/mysql/enterprise-server:latest

docker run --name=mysql1 --restart on-failure -d mysql/enterprise-server:latest

$> docker ps
CONTAINER ID   IMAGE                                                         COMMAND                  CREATED          STATUS                    PORTS                       NAMES
4cd4129b3211   container-registry.oracle.com/mysql/community-server:latest   "/entrypoint.sh mysq…"   8 seconds ago    Up 7 seconds (health: starting)   3306/tcp, 33060-33061/tcp   mysql1

docker logs mysql1

$> docker logs mysql1 2>&1 | grep GENERATED
GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs

docker exec -it mysql1 mysql -uroot -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

$> docker exec -it mysql1 bash
bash-4.2#

bash-4.2# ls /var/lib/mysql
auto.cnf    ca.pem	     client-key.pem  ib_logfile0  ibdata1  mysql       mysql.sock.lock	   private_key.pem  server-cert.pem  sys
ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile1  ibtmp1   mysql.sock  performance_schema  public_key.pem   server-key.pem

docker stop mysql1

docker start mysql1

docker restart mysql1

docker stop mysql1
docker rm mysql1

重要事項

  • docker stop mysql84
  • docker run --name=mysql90 \
       --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
       --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
       -d container-registry.oracle.com/mysql/community-server:9.0

docker pull container-registry.oracle.com/mysql/community-server:9.0

docker run --name=mysql90new \
   --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
   --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
-d container-registry.oracle.com/mysql/community-server:9.0