docker mysql 容器安裝筆記
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 容器安裝筆記