Home >> Blog >> docker mysql介紹

docker mysql介紹

MySQL是著名的開源關係資料庫管理系統,也是最流行的 Web 伺服器解決方案之一。它以有意義的方式存儲和構造資料,確保易於訪問。

Docker 是一組支持 CI/CD 開發的平台即服務產品。它允許用戶在稱為容器的虛擬環境中開發和部署應用程式。使用單個影像,Docker 可以啟動應用程式及其所有庫和依賴項。

在本教學中,了解如何部署 MySQL Docker 容器並開始使用容器化資料庫。

先決條件

  • 訪問命令行/終端窗口
  • 具有 sudo權限或訪問root帳戶的用戶帳戶
  • 現有的 Docker 安裝

運行 MySQL Docker 容器

如果您需要快速建立資料庫且不佔用太多資源,在容器中部署 MySQL是一種快速高效的解決方案。這僅適用於中小型應用程式。企業級應用程式找不到足以滿足其工作負載的MySQL Docker 容器。

使用 Docker 軟體設置資料庫在小型應用程式中變得越來越流行尤其是使用在SEO搜尋引擎優化周邊軟體上。您可以部署 MySQL 資料庫容器,而不是為資料庫託管單獨的伺服器。

多個容器可以在您的電腦上運行。這些容器共享主機的相同內核和庫,同時將部署的應用程式或軟體打包成單個單元。這使得資料庫非常輕量級並且可以快速啟動。

安裝 MySQL Docker 容器

在 Docker 中設置資料庫只是基於 MySQL 影像構建容器。按照下面概述的步驟啟動並運行您的 MySQL 容器。

第 1 步:拉取 MySQL Docker 影像

1. 首先為 MySQL 拉取適當的 Docker 影像。您可以下載特定版本或選擇最新版本,如以下命令所示:

sudo docker pull mysql/mysql-server:latest

如果您想要特定版本的 MySQL,請替換latest 為版本號。

介紹

2. 通過列出下載的 Docker 影像來驗證影像現在是否存儲在本地:

sudo docker images

輸出應包含mysql/mysql-server在列出的圖像中。

第 2 步:部署 MySQL 容器

1. 獲得影像後,繼續部署新的 MySQL 容器:

sudo docker run --name=[container_name] -d [image_tag_name]

  • 替換[container_name]為您選擇的名稱。如果您不提供名稱,Docker 會生成一個隨機名稱。
  • 該-d選項指示 Docker 在後台將容器作為服務運行。
  • 替換[image_tag_name]為在步驟 1 中下載的圖像的名稱。

在這個例子中,我們創建了一個以版本標籤命名的mysql_docker容器latest:

sudo docker run --name=[container_name] -d mysql/mysql-server:latest

2. 然後,查看 MySQL 容器是否正在運行:

docker ps

您應該會在輸出中看到新創建的容器。它包括容器詳細信息,其中之一是此虛擬環境的狀態。設置完成後,狀態將從health: starting變為。healthy

介紹

第 3 步:連接到 MySQL Docker 容器

1、在連接MySQL伺服器容器和主機之前,需要確保安裝了MySQL客戶端包:

apt-get install mysql-client

2. 然後,打開 MySQL 容器的日誌文件,找到生成的 root 密碼:

sudo docker logs [container_name]

對於mysql_docker容器,我們運行:

sudo docker logs mysql_docker

3. 滾動輸出並找到[Entrypoint] GENERATED ROOT PASSWORD: 行,將密碼複製並粘貼到記事本或文本編輯器中,以便以後使用。

介紹

4. 接下來,通過鍵入以下內容進入 MySQL 容器的 bash shell:

sudo docker exec -it [container_name] bash

對於作為示例創建的容器,我們運行:

sudo docker -it mysql_docker bash

3. 出現提示時,提供您從日誌文件中復制的 root 密碼。至此,您已將 MySQL 客戶端連接到伺服器。

介紹

4.最後,更改伺服器root密碼以保護您的信息:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[newpassword]';

替換[newpassword]為您選擇的強密碼。

介紹

配置 MySQL 容器

當你安裝一個 MySQL 容器時,你會在/etc/mysql/my.cnf=目錄中找到它的配置選項。

如果您需要修改配置,請在主機上創建一個替代配置文件並將它們掛載到容器中。

1.首先在宿主機上新建一個目錄:

sudo mkdir -p /root/docker/[container_name]/conf.d

2. 在該目錄中創建一個自定義 MySQL 配置文件:

sudo nano /root/docker/[container_name]/conf.d/my-custom.cnf

3. 進入文件後,您可以添加具有所需配置的行。

例如,如果要將最大連接數增加到 250(而不是默認的 151),請將以下行添加到配置文件中:

[mysqld]
max_connections=250

介紹

4. 保存並退出文件。

5. 要進行更改,您需要刪除並重新運行 MySQL 容器。這一次,容器使用新創建的文件和默認配置文件中的配置設置組合。

為此,請運行容器並使用以下命令映射卷路徑:

docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=[my_password]" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
mysql

6. 要檢查容器是否從主機加載了配置,請運行以下命令:

mysql -uroot -pmypassword -h127.0.0.1 -P6603 -e 'show global variables like "max_connections"';

您應該看到現在的最大連接數是250。

管理資料存儲

默認情況下,Docker 將資料存儲在其內部卷中。

要檢查卷的位置,請使用以下命令:

sudo docker inspect [container_name]

您將看到/var/lib/mysql安裝在內部卷中。

介紹

您還可以更改資料目錄的位置並在主機上創建一個。在容器外有一個卷允許其他應用程式和工具在需要時訪問這些卷。

1、首先在宿主機上找到一個合適的捲,並在上面創建一個資料目錄:

sudo mkdir -p /storage/docker/mysql-dataT

2. 現在再次啟動容器,掛載之前創建的目錄:

docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=my_password" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
--volume=/storage/docker/mysql-data:/var/lib/mysql \
mysql

如果您檢查容器,您應該會看到 MySQL 容器現在將其資料存儲在主機系統上。運行命令:

sudo docker inspect [container_name]

啟動、停止和重啟 MySQL 容器

當容器中運行的進程停止時,容器會自動停止。

要啟動 MySQL 容器,請運行:

sudo docker start [container_name]

停止 MySQL 容器,使用命令:

sudo docker stop [container_name]

要重新啟動 MySQL 容器,請運行:

Tsudo docker restart [container_name]

刪除 MySQL 容器

在刪除 MySQL 容器之前,請確保先將其停止。

然後,使用以下命令刪除 docker 容器:

Tsudo docker rm [container_name]