使用Docker部署MySQLRedis容器與常見命令

目錄

  • 1. 檢查WSL配置
  • 2. 設置WSL版本
  • 3. 拉取MySQL鏡像
  • 4. 驗證鏡像
  • 5. 運行MySQL容器
    • 在WSL環境中使用以下命令啟動MySQL容器
    • 查看容器/鏡像的完整信息
    • 顯式指定宿主機掛載路徑
    • 可選:在Windows的cmd中使用以下命令啟動MySQL容器
  • 6. 管理容器
    • 啟動已創建的容器
    • 查看運行中的容器
    • 查看容器的日志
    • 通過docker進入mysql命令行
  • 7. 連接通過Docker部署的MySQL容器
  • 8. Redis部署

1. 檢查WSL配置

檢查當前 Windows Subsystem for Linux (WSL) 的配置,確保Linux系統和docker桌面版使用同一個版本的WSL

wsl --list --verbose

在這里插入圖片描述

2. 設置WSL版本

如果WSL版本不統一,可通過以下命令更改WSL配置

wsl --set-version <distribution name> <versionNumber>
wsl --set-version Ubuntu-22.04 2

參考網址:將 WSL 版本設置為 1 或 2

3. 拉取MySQL鏡像

從Docker Hub拉取MySQL鏡像:

docker pull mysql:8.4

檢查已下載的Docker鏡像:

4. 驗證鏡像

docker images

在這里插入圖片描述

5. 運行MySQL容器

在WSL環境中使用以下命令啟動MySQL容器

docker run -p 4406:3306 --name mysql-8.4 \
-v "mysql-data:/var/lib/mysql" \
-v "mysql-conf:/etc/mysql/conf.d" \
-v "mysql-log:/var/log/mysql" \
-v "mysql-files:/var/lib/mysql-files" \
-e MYSQL_ROOT_PASSWORD=root -d mysql:8.4 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

在創建容器時,若未顯式指定宿主機掛載路徑,Docker將自動生成/var/lib/docker/volumes/mysql-data/_data等匿名卷,并與MySQL容器建立掛載關聯 參考文章:docker安裝mysql并實現數據卷掛載

查看容器/鏡像的完整信息

docker inspect mysql-8.4
"Mounts": [{"Type": "volume","Name": "mysql-data","Source": "/var/lib/docker/volumes/mysql-data/_data","Destination": "/var/lib/mysql","Driver": "local","Mode": "z","RW": true,"Propagation": ""},...
]

顯式指定宿主機掛載路徑

docker run -p 4406:3306 --name mysql-8.4 \-v "/var/lib/docker/mysql8.4/data:/var/lib/mysql" \-v "/var/lib/docker/mysql8.4/conf:/etc/mysql/conf.d" \-v "/var/lib/docker/mysql8.4/log:/var/log/mysql" \-v "/var/lib/docker/mysql8.4/mysql-files:/var/lib/mysql-files" \-e MYSQL_ROOT_PASSWORD=root -d mysql:8.4 \--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
"Mounts": [{"Source": "/var/lib/docker/mysql8.4/data","Destination": "/var/lib/mysql","Mode": "","RW": true,"Propagation": "rprivate"},...
}

可選:在Windows的cmd中使用以下命令啟動MySQL容器

docker run -p 4406:3306 --name mysql-8.4 -v "mysql-data:/var/lib/mysql" -v "mysql-conf:/etc/mysql/conf.d" -v "mysql-log:/var/log/mysql" -v "mysql-files:/var/lib/mysql-files" -e MYSQL_ROOT_PASSWORD=root -d mysql:8.4 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

在這里插入圖片描述

這個 docker run 命令用于啟動一個 MySQL 8.4 容器,并將數據、配置和日志持久化存儲在宿主機的 /mnt/d/docker/mysql8.4/ 目錄下。下面是對每個參數的詳細解釋:

參數說明
docker run啟動一個新容器
-p 4406:3306端口映射:將宿主機的 4406 端口映射到容器的 3306(MySQL 默認端口)
--name mysql-8.4為容器指定名稱 mysql-8.4
-d后臺運行容器(守護進程模式)
mysql:8.4使用的鏡像

6. 管理容器

啟動已創建的容器

docker start mysql-8.4

查看運行中的容器

docker ps

在這里插入圖片描述

查看容器的日志

docker logs mysql-8.4

在這里插入圖片描述

通過docker進入mysql命令行

docker exec -it mysql bash

按住Ctrl+d可退出mysql命令行

查看文件資源在宿主機的映射

在這里插入圖片描述

對比mysql容器內部文件發現所有文件成功映射

在這里插入圖片描述

7. 連接通過Docker部署的MySQL容器

注意此處的端口為將容器的3306端口的映射到宿主機的4406端口

在這里插入圖片描述

8. Redis部署

同樣的啟動方法可以在docker部署Redis容器(WSL)

docker pull redis:8.0.2
cd /var/lib/docker/redis8/conf/
sudo touch redis.conf
sudo chmod 777 redis.conf
vim redis.conf

在redis.conf中使用vim編輯器寫入

requirepass [your_password] # 設置密碼
appendonly yes # 持久層相關
docker run -p 5379:6379 --name redis-8.0.2 \
-v /var/lib/docker/redis8/data:/data \
-v /var/lib/docker/redis8/conf/redis.conf:/etc/redis/redis.conf \
-d redis:8.0.2 \
redis-server /etc/redis/redis.conf
docker start redis-8.0.2
docker exec -it redis-8.0.2 bash
# redis-cli
> auth mq20011103
OK
> set name abc
OK
> get name
"abc"
>

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84291.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84291.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84291.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

01__C++入門

一、C的語法框架 首先學習一門語言&#xff0c;我們需要了解語言的基本框架&#xff0c;這一小節&#xff0c;我們學習C的歷史應用&#xff0c;c和c的區別和c的標準 二、認識C 1、C的歷史 所有的主流C編譯器都支持這個版本的C&#xff08;1998年的版本&#xff09;。 2、C的應…

2024 CKA題庫+詳盡解析| 15、備份還原Etcd

目錄 免費獲取題庫配套 CKA_v1.31_模擬系統 15、 備份還原Etcd 題目&#xff1a; 開始操作: 1&#xff09;、切換集群 2&#xff09;、登錄master并提權 3&#xff09;、備份Etcd現有數據 4&#xff09;、驗證備份數據快照 5&#xff09;、查看節點和Pod狀態 6&am…

Flotherm許可的并發用戶數限制

在電子產品熱設計領域&#xff0c;Flotherm軟件以其卓越的性能和精確的仿真能力而受到廣大用戶的青睞。然而&#xff0c;在使用Flotherm軟件時&#xff0c;了解其許可的并發用戶數限制對于優化資源配置和提升工作效率至關重要。本文將詳細介紹Flotherm軟件許可的并發用戶數限制…

讀取寶塔方法,查找容別名存放位置

可以查到對應方法 根據參數名可知 查找到 得到位置

【1】跨越技術棧鴻溝:字節跳動開源TRAE AI編程IDE的實戰體驗

2024年初&#xff0c;人工智能編程工具領域發生了一次靜默的變革。當字節跳動宣布退出其TRAE項目&#xff08;一款融合大型語言模型能力的云端AI編程IDE&#xff09;時&#xff0c;技術社區曾短暫嘆息。然而這一退場并非終點——通過開源社區的接力&#xff0c;TRAE在WayToAGI等…

git連接本地倉庫以及gitee

參考:gitee創建新倉庫并上傳代碼_gitee新建倉庫導入代碼-CSDN博客 git初始化以及添加git分支 在idea查看master主分支 報錯 原因gitee推送更新失敗問題記錄&#xff1a;remote: error: hook declined to update refs/heads/master-CSDN博客 取消郵箱暴露

pocketflow庫實現guardrail

目錄 代碼代碼解釋1. 系統架構2. 核心組件詳解2.1 LLM調用函數2.2 UserInputNode&#xff08;用戶輸入節點&#xff09;2.3 GuardrailNode&#xff08;安全防護節點&#xff09;2.4 LLMNode&#xff08;LLM處理節點&#xff09; 3. 流程控制機制 示例運行 代碼 from pocketflo…

Fetch API 使用詳解:Bearer Token 與 localStorage 實踐

Fetch API&#xff1a;現代瀏覽器內置的用于發送 HTTP 請求的 API&#xff0c;Bearer Token&#xff1a;一種基于令牌的身份驗證方案&#xff0c;常用于 JWT 認證&#xff0c;localStorage&#xff1a;瀏覽器提供的持久化存儲方案&#xff0c;用于在客戶端存儲數據。 token是我…

Netty自定義協議解析

目錄 自定義協議設計 實現消息解碼器 實現消息編碼器 自定義消息對象 配置ChannelPipeline Netty提供了強大的編解碼器抽象基類,這些基類能夠幫助開發者快速實現自定義協議的解析。 自定義協議設計 在實現自定義協議解析之前,需要明確協議的具體格式。例如,一個簡單的…

馭碼 CodeRider 2.0 產品體驗:智能研發的革新之旅

馭碼 CodeRider 2.0 產品體驗&#xff1a;智能研發的革新之旅 在當今快速發展的軟件開發領域&#xff0c;研發效率與質量始終是開發者和企業關注的核心。面對開發協作流程繁瑣、代碼生成補全不準、代碼審核低效、知識協同困難以及部署成本與靈活性難以平衡等問題&#xff0c;…

NLP學習路線圖(二十六):自注意力機制

一、為何需要你?序列建模的困境 在你出現之前,循環神經網絡(RNN)及其變種LSTM、GRU是處理序列數據(如文本、語音、時間序列)的主流工具。它們按順序逐個處理輸入元素,將歷史信息壓縮在一個隱藏狀態向量中傳遞。 瓶頸顯現: 長程依賴遺忘: 隨著序列增長,早期信息在傳遞…

【渲染】Unity-分析URP的延遲渲染-DeferredShading

我是一名資深游戲開發&#xff0c;小時候喜歡看十萬個為什么 介紹 本文旨在搞清楚延遲渲染在unity下如何實現的&#xff0c;為自己寫延遲渲染打一個基礎&#xff0c;打開從知到行的大門延遲渲染 輸出物體表面信息(rt1, rt2, rt3, …) 著色(rt1, rt2, rt3, …)研究完感覺核心…

華為OD機考- 簡單的自動曝光/平均像素

import java.util.Arrays; import java.util.Scanner;public class DemoTest4 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的區別while (in.hasNextLine()) { // 注意 while 處理多個 caseint[] arr Array…

java 樂觀鎖的實現和注意細節

文章目錄 1. 前言樂觀鎖 vs. 悲觀鎖&#xff1a;基本概念對比使用場景及優勢簡述 2. 基于版本號的樂觀鎖實現代碼示例注意事項 3. 基于CAS機制的樂觀鎖實現核心思想代碼示例關鍵點說明 4. 框架中的樂觀鎖實踐MyBatis中基于版本號的樂觀鎖實現示例代碼 JPA&#xff08;Hibernate…

河北對口計算機高考C#筆記(2026高考適用)---持續更新~~~~

C#筆記 C#發展史 1998年,C#發布第一個版本。2002年,visual studio開發環境推出C#的特點 1.語法簡潔,不允許直接操作內存,去掉了指針操作 2.徹底面向對象設計。 3.與Web緊密結合。 4.強大的安全機制,語法錯誤提示,引入垃圾回收器機制。 5.兼容性。 6.完善的錯誤,異常處理…

C# dll版本沖突解決方案

隨著項目功能逐漸增加&#xff0c;引入三方庫數量也會增多。不可避免遇到庫的間接引用dll版本沖突&#xff0c;如System.Memory.dll、System.Buffer.dll等。編譯會報警&#xff0c;運行可能偶發異常。 可使用ILMerge工具合并動態庫&#xff0c;將一個庫的多個dll合并為一個dll。…

深度解析:etcd 在 Milvus 向量數據庫中的關鍵作用

目錄 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量數據庫中的關鍵作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架構簡介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 實際工作流程示意 ?? 如果 etcd 出現問題會怎樣&am…

隨機訪問介質訪問控制:網絡中的“自由競爭”藝術

想象一場自由辯論賽——任何人隨時可以發言&#xff0c;但可能多人同時開口導致混亂。這正是計算機網絡中隨機訪問協議的核心挑戰&#xff1a;如何讓多個設備在共享信道中高效競爭&#xff1f;本文將深入解析五大隨機訪問技術及其智慧。 一、核心思想&#xff1a;自由競爭 沖突…

設計模式作業

package sdau;public class man {public static void main(String[] args) {show(new Cat()); // 以 Cat 對象調用 show 方法show(new Dog()); // 以 Dog 對象調用 show 方法Animal a new Cat(); // 向上轉型 a.eat(); // 調用的是 Cat 的 eatCat c (Cat)a…

Kaspa Wasm SDK

文章目錄 1. 簡要2. github地址 1. 簡要 kaspa wallet SDK&#xff0c;在官方WASM基礎上封裝了應用層的方法&#xff0c;簡便了WASM的初始化及調用。 核心功能包括如下&#xff1a; 賬戶地址生成及管理Kaspa Api 和 Kasplex Api的封裝kaspa結點RPC 封裝P2SH的各個場景script封…