1、查找鏡像: docker search mysql
2、下載鏡像:docker pull mysql
3名惩、通過鏡像創(chuàng)建容器并運(yùn)行:
docker run --name mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
--將宿主主機(jī)的33060端口映射給docker下的mysql3306端口煤杀,即?外網(wǎng)將通過33060端口訪問mysql數(shù)據(jù)庫
參數(shù)說明:
run run 是運(yùn)行一個容器
-d 表示后臺運(yùn)行
-p 表示容器內(nèi)部端口和服務(wù)器端口映射關(guān)聯(lián)
--privileged=true 設(shè)值MySQL 的root用戶權(quán)限, 否則外部不能使用root用戶登陸
-v /docker/mysql/conf/my.cnf:/etc/my.cnf 將服務(wù)器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
-v /docker/mysql/data:/var/lib/mysql 同上,映射數(shù)據(jù)庫的數(shù)據(jù)目錄, 避免以后docker刪除重新運(yùn)行MySQL容器時數(shù)據(jù)丟失
-e MYSQL_ROOT_PASSWORD=123456 設(shè)置MySQL數(shù)據(jù)庫root用戶的密碼
--name mysql 設(shè)值容器名稱為mysql
mysql:5.7 表示從docker鏡像mysql:5.7中啟動一個容器
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 設(shè)值數(shù)據(jù)庫默認(rèn)編碼
4、進(jìn)入容器:docker exec -it mysql /bin/bash
5怒炸、進(jìn)入mysql:mysql -uroot -p
6、創(chuàng)建用戶:create user 'user'@'%' identified by 'password';
使用通配符’%’是無論在哪都可以進(jìn)行連接的毡代,也可以換成固定的IP地址
如果mysql是8版本的還不能遠(yuǎn)程訪問阅羹,需要在修改用戶信息:
ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
刷新權(quán)限:flushprivileges;
如果遠(yuǎn)程連接不能進(jìn)行連接出現(xiàn)mysql 2003 (10061)錯誤的時候勺疼,到/etc/mysql/目錄下將my.cnf進(jìn)行修改,將bind-address = 127.0.0.1修改為bind-address = 0.0.0.0捏鱼,重啟mysql服務(wù)就可以連接了执庐。
參數(shù)說明:
run run 是運(yùn)行一個容器
-d 表示后臺運(yùn)行
-p 表示容器內(nèi)部端口和服務(wù)器端口映射關(guān)聯(lián)
--privileged=true 設(shè)值MySQL 的root用戶權(quán)限, 否則外部不能使用root用戶登陸
-v /docker/mysql/conf/my.cnf:/etc/my.cnf 將服務(wù)器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
-v /docker/mysql/data:/var/lib/mysql 同上,映射數(shù)據(jù)庫的數(shù)據(jù)目錄, 避免以后docker刪除重新運(yùn)行MySQL容器時數(shù)據(jù)丟失
-e MYSQL_ROOT_PASSWORD=123456 設(shè)置MySQL數(shù)據(jù)庫root用戶的密碼
--name mysql 設(shè)值容器名稱為mysql
mysql:5.7 表示從docker鏡像mysql:5.7中啟動一個容器
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 設(shè)值數(shù)據(jù)庫默認(rèn)編碼