1. 程式人生 > >docker mysql 容器安裝筆記

docker mysql 容器安裝筆記

AD min option 創建 official logs docke for comm

Basic Steps for MySQL Server Deployment with Docker

1 查找適合的mysql鏡像,選擇合適的版本

docker search -f stars=3 -f is-official=true mysql--查找tag為mysql,stars大於3官方鏡像

2 下載

docker pull mysql:5.7

3 運行

(1)docker run -d --name mysql01 mysql:5.7

說明 此處通過查看日誌(docker logs mysql01)不能正常啟動,需要運行時傳入指定的參數

錯誤提示:database is uninitialized and password option is not specified

You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

(2)docker run -d -e MYSQL_ROOT_PASSWORD=password --name mysql01 mysql:5.7

4 查看日誌

docker logs mysql01

5 查看運行情況

docker ps

6 訪問mysql容器

docker exec –it mysql01 bash

7 創建新用戶

mysql> CREATE USER ‘jack‘@‘localhost‘ IDENTIFIED BY ‘pwd123456‘;

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘jack‘@‘localhost‘ WITH GRANT OPTION;

mysql> CREATE USER ‘jack‘@‘%‘ IDENTIFIED BY ‘pwd123456‘;

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘jack‘@‘%‘

->WITH GRANT OPTION;

Mysql 配置和數據內容 掛載 volume

Key: Host上的文件系統 與 docker 容器中的文件的映射

1 在host創建自定目錄用戶存儲配置和數據的目錄,用於docker mysql容器中相應文件的映射

比如:

host目錄

mysql docker 容器目錄

/root/Software/docker/mysql/config/my.cnf

/etc/my.cnf

/root/Software/docker/mysql/data

/var/lib/mysql

說明 host下新建的my.cnf 文件 需要初始內容

my.cnf:

[mysqld]

user=mysql

2 運行

docker run -d -p 3307:3307 -v=/root/Software/docker/mysql/config/my.cnf:/etc/my.cnf -v=/root/Software/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password --name mysql01 mysql:5.7

2 bash 進入mysql01 docker容器,登入mysql 查看默認字符集

> docker exec -it mysql01 bash

>mysql –uroot –p

......

>show variables like ‘%char%’;

說明:顯示為lanti字符集

3 修改mysql字符集為utf-8,通過修改my.cnf完成

my.cnf:

[mysqld]

user=mysql

character-set-server=utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

4 刪除當前容器

>docker stop mysql01

>docker rm mysql01

5 重新啟動一個新容器

docker run -d -p 3307:3307 -v=/root/Software/docker/mysql/config/my.cnf:/etc/my.cnf -v=/root/Software/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password --name mysql01 mysql:5.7

6 查看字符集,此時默認使用了之前修改後的字符集utf-8

說明:配置被共享了,目的:容器刪除 後數據文件也會刪除, 掛載可以實現數據的持久化和共享

參考資料:

Mysql 官網:https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-more-topics.html

學習群石墨文檔:https://shimo.im/docs/anrlYMFEYloN52c8/

Xmind 文檔 : docker的基本命令

Docker命令文檔:https://docs.docker.com/engine/reference/commandline

docker mysql 容器安裝筆記