使用Docker部署MySQL數(shù)據(jù)庫的兩種方法
引言
在現(xiàn)代軟件開發(fā)中,MySQL 是一種流行的關系數(shù)據(jù)庫管理系統(tǒng),因其可靠性和易用性受到廣泛歡迎。通過 Docker,可以快速、便捷地部署和管理 MySQL 數(shù)據(jù)庫實例。本文將介紹兩種通過 Docker 部署 MySQL 的方法:使用 Docker CLI 命令和使用 Docker Compose。
第一部分:通過 Docker CLI 命令部署 MySQL
1. 安裝 Docker
確保您的系統(tǒng)中已安裝 Docker。若未安裝,請參考 Docker 官方文檔 進行安裝。
2. 拉取 MySQL 鏡像
首先,使用以下命令從 Docker Hub 拉取 MySQL 8.0 鏡像:
docker pull mysql:8.0
3. 啟動 MySQL 容器
接下來,使用以下命令啟動 MySQL 容器:
docker run -d \ --name mysql-8.0 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=my_database \ -e MYSQL_USER=run \ -e MYSQL_PASSWORD=123456 \ -p 3306:3306 \ -v mysql-data:/var/lib/mysql \ mysql:8.0 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_bin \ --lower_case_table_names=1
參數(shù)說明:
-d
:以后臺模式運行容器。--name mysql-8.0
:指定容器名稱為mysql-8.0
。-e
:設置環(huán)境變量,配置 MySQL 的 root 密碼、默認數(shù)據(jù)庫名稱、用戶及其密碼。-p 3306:3306
:將主機的 3306 端口映射到容器的 3306 端口,以便外部訪問數(shù)據(jù)庫。-v mysql-data:/var/lib/mysql
:創(chuàng)建持久化卷,將容器中的數(shù)據(jù)存儲在主機上,確保數(shù)據(jù)不丟失。- 最后,指定了字符集和排序規(guī)則以優(yōu)化數(shù)據(jù)庫支持。
4. 驗證 MySQL 運行狀態(tài)
運行以下命令檢查容器是否已成功啟動:
docker ps
若容器列表中出現(xiàn) mysql-8.0
,則表明部署成功。
5. 進入 MySQL 容器
您可以使用以下命令連接到 MySQL 數(shù)據(jù)庫:
docker exec -it mysql-8.0 mysql -uroot -p123456
第二部分:通過 Docker Compose 部署 MySQL
Docker Compose 允許用戶通過定義一個 docker-compose.yml
文件,方便地管理和啟動多個服務。以下是通過 Docker Compose 部署 MySQL 的步驟。
1. 創(chuàng)建 docker-compose.yml 文件
在您的工作目錄下,創(chuàng)建一個名為 docker-compose.yml
的文件,并輸入以下內(nèi)容:
version: '3.8' services: mysql: image: mysql:8.0 container_name: mysql-8.0 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: my_database MYSQL_USER: run MYSQL_PASSWORD: 123456 ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql command: - mysqld - --character-set-server=utf8mb4 - --collation-server=utf8mb4_bin - --lower_case_table_names=1 networks: - mysql-network volumes: mysql-data: networks: mysql-network: driver: bridge
2. docker-compose.yml 文件逐行解析
version: '3.8'
指定 Docker Compose 文件的版本,3.8
適合大多數(shù)用戶。services:
定義在 Docker 中運行的服務。mysql:
指定服務的名稱,表示 MySQL 數(shù)據(jù)庫服務。image: mysql:8.0
使用 MySQL 8.0 鏡像,如果本地沒有此鏡像,Docker 會自動從 Docker Hub 下載。container_name: mysql-8.0
設置容器的名稱,便于管理和識別。environment:
設置 MySQL 的環(huán)境變量:MYSQL_ROOT_PASSWORD
:root 用戶的密碼。MYSQL_DATABASE
:初始化時創(chuàng)建的數(shù)據(jù)庫名稱。MYSQL_USER
和MYSQL_PASSWORD
:創(chuàng)建一個新用戶及其密碼。
ports:
將主機的 3306 端口映射到容器的 3306 端口,以便外部訪問數(shù)據(jù)庫。volumes:
將主機上的mysql-data
卷掛載到容器的/var/lib/mysql
目錄,確保數(shù)據(jù)的持久性。command:
指定 MySQL 啟動時的命令參數(shù),設置字符集和排序規(guī)則,以優(yōu)化數(shù)據(jù)庫的支持。networks:
定義容器使用的網(wǎng)絡,mysql-network
允許容器之間進行通信。volumes:
創(chuàng)建一個名為mysql-data
的卷,用于數(shù)據(jù)持久化。networks:
創(chuàng)建一個名為mysql-network
的橋接網(wǎng)絡,便于容器間的互聯(lián)。
3. 啟動 MySQL 服務
在 docker-compose.yml
文件所在的目錄,執(zhí)行以下命令啟動服務:
docker-compose up -d
4. 驗證服務狀態(tài)
使用以下命令查看運行中的容器:
docker-compose ps
確保 mysql-8.0
容器正在運行。
5. 進入 MySQL 容器
使用以下命令訪問 MySQL 數(shù)據(jù)庫:
docker exec -it mysql-8.0 mysql -uroot -p123456
6. 停止和移除容器
要停止并刪除容器,可以使用以下命令:
docker-compose down
總結
本文介紹了通過兩種方法在 Docker 中部署 MySQL 數(shù)據(jù)庫:通過 Docker CLI 命令和通過 Docker Compose 文件。每種方法都有其獨特的優(yōu)點,您可以根據(jù)項目需求和個人偏好選擇適合的方式。
附:完整的 docker-compose.yml 文件內(nèi)容
version: '3.8' services: mysql: image: mysql:8.0 container_name: mysql-8.0 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: my_database MYSQL_USER: run MYSQL_PASSWORD: 123456 ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql command: - mysqld - --character-set-server=utf8mb4 - --collation-server=utf8mb4_bin - --lower_case_table_names=1 networks: - mysql-network volumes: mysql-data: networks: mysql-network: driver: bridge
通過以上步驟,您可以快速在 Docker 中部署 MySQL 數(shù)據(jù)庫,確保開發(fā)環(huán)境的靈活性和一致性。
到此這篇關于使用Docker部署MySQL數(shù)據(jù)庫的兩種方法的文章就介紹到這了,更多相關Docker部署MySQL數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù)
本篇文章主要介紹了如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12linux環(huán)境部署及docker安裝redis的方法
這篇文章主要介紹了linux環(huán)境部署及docker安裝redis的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08