天天看點

docker mysql服務啟動_使用Docker搭建MySQL服務

建立鏡像#拉取官方鏡像(我們這裡選擇5.7,如果不寫後面的版本号則會自動拉取最新版)docker pull mysql:5.7   # 拉取 mysql 5.7

docker pull mysql       # 拉取最新版mysql鏡像

檢查是否拉取成功docker images

一般來說資料庫容器不需要建立目錄映射docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7–name:容器名,此處命名為mysql

-e:配置資訊,此處配置mysql的root使用者的登陸密碼

-p:端口映射,此處映射 主機3306端口 到 容器的3306端口

如果要建立目錄映射

mkdir -p /data/docker/mysql/conf

mkdir -p/data/docker/mysql/logs

mkdir  -p/data/docker/mysql/data

docker run -p 3306:3306 --name mysql \

-v /data/docker/mysql/conf:/etc/mysql \

-v /data/docker/mysql/logs:/var/log/mysql \

-v /data/docker/mysql/data:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

-d mysql:5.7

docker run -p 3306:3306 --name mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -v /data/docker/mysql/logs:/var/log/mysql -v /data/docker/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --restart=always --privileged=true -d mysql:5.7

-v:主機和容器的目錄映射關系,":"前為主機目錄,":"之後為容器目錄

檢查容器是否正确運作docker container ls可以看到容器ID,容器的源鏡像,啟動指令,建立時間,狀态,端口映射資訊,容器名字

配置檔案最好是以.cnf作為字尾, 試過以.conf字尾, 可以啟動mysql, 但配置檔案不起作用

mysql.cnf  檔案内容

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect='SET collation_connection = utf8_unicode_ci'

init_connect='SET NAMES utf8'

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION# modeified: sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

max_allowed_packet=10M

default-time_zone='+8:00'

進入docker本地用戶端設定遠端通路賬号

docker exec -it mysql bash$mysql -uroot -p123456

mysql>grant all privileges on *.* to root@'%' identified by "password";