Docker安裝
- 安裝yum-utils:
yum install -y yum-utils device-mapper-persistent-data lvm2
- 爲yum源添加docker倉庫位置:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安裝docker:
yum install docker-ce
- 啓動docker:
systemctl start docker
Mysql安裝
- 下載mysql5.7的docker鏡像:
docker pull mysql:5.7
- 使用docker命令啓動:
docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
windows下命令,需注意G:盤爲docker共享驅動盤(Shared Drives),宿主機目錄一定要存在,如: G:\docker\mydata\mysql\log
docker run --name mysql-5.7 -d -p 3306:3306 -v G:\docker\mydata\mysql\log:/var/log/mysql -v G:\docker\mydata\mysql\data:/var/lib/mysql -v G:\docker\mydata\mysql\conf:/ etc/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
PS: docker鏡像不具有存儲特性,鏡像屬於一次性產物,每次都會重置,volume就變得很重要了,-v參數就是設置volume.
- 基本參數說明
- -p 3306:3306:將容器的3306端口映射到主機的3306端口
- -v /mydata/mysql/conf:/etc/mysql:將配置文件夾掛在到主機
- -v /mydata/mysql/log:/var/log/mysql:將日誌文件夾掛載到主機
- -v /mydata/mysql/data:/var/lib/mysql/:將數據文件夾掛載到主機
- -e MYSQL_ROOT_PASSWORD=root:初始化root用戶的密碼
- -d : 運行到後臺
- 附加參數說明
- --restart=always:設置啓動Docker後自動運行容器
- --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci:防止中文亂碼
- --rm:windows下stop後自動rm在stop ps中的鏡像,linux下次參數不能使用
- 查看mysql鏡像是否已正常運行:
docker ps
或者 查看是否有mysql相關日誌
docker logs mysql-5.7
- 進入運行mysql的docker容器:
docker exec -it mysql /bin/bash
- 使用mysql命令打開客戶端:
mysql -uroot -proot --default-character-set=utf8
- 創建mall數據庫:
create database mall character set utf8
PS: 數據庫創建好後,可以通過Navicat等mysql客戶端工具訪問數據庫,進行相關操作,下面則是通過上傳相關腳本來初始化數據庫表及表數據 - 安裝上傳下載插件,並將docment/sql/mall.sql上傳到Linux服務器上:
yum -y install lrzsz
- 將mall.sql文件拷貝到mysql容器的/目錄下:
docker cp /mydata/mall.sql mysql:/
- 將sql文件導入到數據庫:
use mall; source /mall.sql;
- 創建一個reader帳號並修改權限,使得任何ip都能訪問:
grant all privileges on *.* to 'reader' @'%' identified by '123456';
PS: 1.建立一個名爲reader的用戶,密碼爲123456,%號意思是任何ip。grant all是授權全部權限 *.*爲全部數據庫的全部表的全部權限,最好點左邊的不要*,爲一個特定數據庫就好了。這樣子就可以ip遠程訪問這個docker數據庫了。
2. 連不上注意一下這個配置文件,/etc/mysql/my.conf(或者/etc/mysql/mysql.conf.d/mysqld.cnf)的配置文件的bind-address行註釋掉,又或者改成bind-address = 0.0.0.0