Docker 快速搭建MySQL

首先應該知道MySQL 的前置知識,如MySQL IP 端口密碼等基礎知識

乾貨部分

  1. docker 環境

yum install -y docker ;service docker start;

  1. 拉取MySQL 鏡像

docker pull mysql:8.0.17

  1. 啓動鏡像

mkdir -p /data/docker/mysql
docker run -p 3306:3306 --restart=always --name mysql8 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root -v /data/docker/mysql:/var/lib/mysql --privileged=true mysql:8.0.17 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  1. 檢測鏡像啓動

docker ps
在這裏插入圖片描述
如果有則成功,沒有則需要查看日誌 docker logs mysql8
分析原因後,刪除這個失敗鏡像docker rm mysql8運行第三步

  1. 遠程連接
    拿客戶端連接
  2. 涉及的相關命令
  • docker start/top/restart 容器別名或id 容器啓動/停止/重啓

原理部分

  1. 首先具備docker 環境 ,使用yum -y docker 安裝 加 -y 免除確認環節 docker 就是名字了

  2. 拉取鏡像
    docker 鏡像可以在 https://hub.docker.com/_/mysql?tab=description 中看到
    頁面tab 分三列 description reviews tags
    在這裏插入圖片描述
    主要看第一列 描述 和 第三列 tag
    拉取鏡像命令 docker pull mysql:8.0.17
    docker 是固定使用docker 操作
    pull 拉取鏡像
    後面接上鏡像名:版本號 mysql:8.0.17 版本號不加 mysql 表示拉取最新版本

  3. 拉取鏡像後啓動鏡像
    docker run -p 3306:3306 --restart=always --name mysql8 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root -v /data/docker/mysql:/var/lib/mysql --privileged=true mysql:8.0.17 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    docker run docker 運行一個鏡像 後面接相關參數
    -p 3306:3306 表示暴露端口,因爲docker 是有容器概念 ,鏡像啓動在docker容器中 和外面的操作系統可以將容器理解爲系統內部的小虛擬機 所以外面訪問裏面需要的端口關聯起來 -p 3306:3306 前面的-p 代表這一條命令的作用 端口關聯 後面的3306:3306 前面是系統端口 後面的是鏡像內部端口 .一般鏡像外部端口會和內部一樣,除非你弄多個鏡像一起運行
    --restart=always 表示自動重啓 , 如果外部系統重啓後,docker 自動運行後 鏡像也會自動重啓
    --name mysql8 給這個鏡像運行起個別名 隨便定義,一般以好記爲主,不定義會隨機命名,同時後面的如查詢日誌docker logs mysql8 如果不記得別名 一般都是輸入容器id
    -e TZ=Asia/Shanghai -e 開頭都是MySQL運行的設置與docker無關,因此這些設置可以在descrption中找到或者在mysql 教程文檔中,如果配置內容多的花一般建議配置文件方式,可以快捷鍵ctrl + f 關鍵字,TZ=Asia/Shanghai時區設定爲亞洲上海時區,也就是北京時區 , 因爲時區和時間都是外面的,而且有時候服務器不在本地,時間不一致也是個很頭疼的問題
    -e MYSQL_ROOT_PASSWORD=root 設定密碼
    -v /data/docker/mysql:/var/lib/mysql --privileged=true 掛載目錄,因爲docker 容器重啓後你的數據庫內容就沒了,所以如何保證重啓數據不失效,就要把文件掛在外部一個目錄中 --privileged=true 是保證掛載權限 , 同理也可以將日誌等內容掛載在外部
    mysql:8.0.17 這是鏡像的名字和版本號 如果不加版本號默認啓動最新版本 latest
    --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 指定字符集 , 亂碼問題很頭疼的

  4. 檢測
    docker ps 可以查看docker 中正常運行的全部容器 如果發現沒有則啓動失敗有異常,使用docker log 容器別名或者容器id 查看日誌
    然後必須刪除容器docker rm 容器別名或id後再運行 , 因爲失敗運行容器也會佔有別名 可以使用docker ps -a 查看全部
    同時如果容器正在運行如果需要刪除先得停下 docker stop 容器別名或id

  5. 最後成功用客戶端連接

發佈了11 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章