一、mysql部署
部署步驟:
- 搜索mysql鏡像
- 拉取mysql鏡像
- 創建容器
- 操作容器中的mysql
但是在這裏我們有個疑問,我們之前說過:容器內的網絡服務,和外部機器不能直接通訊
外部機器智能和宿主機通訊,不能直接和容器通訊
我們在這裏把宿主機的3307和容器的3306做一個映射
做完映射之後,訪問的路徑就會變成下圖:訪問宿主機的3307就相當於訪問容器的3306端口。這裏的做法和路由器端口映射很相似。
知道了方法和思路之後,我們現在開始操作。
首先查看我現在的鏡像
如果你沒有的話,可以通過
搜索鏡像
docker search mysql #搜索mysql鏡像
拉取鏡像
docker pull mysql :5.6 #拉取mysql鏡像5.6
創建容器
在/root目錄下創建mysql目錄用於存儲mysql數據信息
mkdir ~/mysql #root家目錄創建mysql
cd ~/mysql #進入mysql
docker run -id \ #啓動一個容器
-p 3307:3306 \ #映射宿主機3307到此容器的3306
--name=c_mysql \ #給容器起個名字
-v $PWD/conf:/etc/mysql/conf.d \ #將主機/root/mysql目錄下的conf/my.cnf掛載到容器的/etc/mysql/my.cnf,此爲配置目錄
-v $PWD/logs:/logs \ #將當前目錄下的logs目錄掛載到容器的logs目錄,此爲日誌目錄
-v $PWD/data:/var/lib/mysql \ #將當前目錄data目錄掛載到容器的/var/lib/mysql,此爲數據存儲目錄
-e MYSQL_ROOT_PASSWORD=123456 \ #初始化root密碼爲123456
mysql5.6
註釋:
- \ 是換行,讓大家看的清楚。
- -p 3307:3306 之所以設置的不同是我們學習階段讓大家看得清楚,生產中必須是一致的-p 3306:3306
- $PWD是簡寫其實就是當前路徑,在這裏做了一個簡寫,調用了一下系統變量$PWD。
如圖創建成功,我們先本地登入mysql,試試有沒有問題
外部登錄