準備工作
1.安裝docker環(huán)境
2.下載相應mysql docker 鏡像
3.創(chuàng)建宿主機掛載data文件舀瓢、config文件
一、下載docker鏡像
我們使用的是官方redis 鏡像mysql:5.7
執(zhí)行拉去鏡像命令
docker pull mysql:5.7
image.png
這里我已經(jīng)提前下載過該鏡像了咖刃。
二、創(chuàng)建掛載宿主機掛載文件目錄
根據(jù)自己的操作習慣創(chuàng)建相應的data汽抚、config文件
[root@iZbp18fygyh37em2nkknokZ ~]# cd /software/docker/
[root@iZbp18fygyh37em2nkknokZ docker]# ls
[root@iZbp18fygyh37em2nkknokZ docker]# mkdir -p mysql/data
[root@iZbp18fygyh37em2nkknokZ docker]# mkdir -p mysql/config
[root@iZbp18fygyh37em2nkknokZ docker]# ls
mysql
[root@iZbp18fygyh37em2nkknokZ docker]# cd mysql/
[root@iZbp18fygyh37em2nkknokZ redis-test-dt]# ls
config data
[root@iZbp18fygyh37em2nkknokZ redis-test-dt]#
三衷戈、啟動容器
[root@iZbp18fygyh37em2nkknokZ mysql]# docker run -itd --name mysql-test-p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
參數(shù)解釋:
-d: 后臺運行容器,并返回容器ID稠通;
-i: 以交互模式運行容器,通常與 -t 同時使用买猖;
-p: 端口映射改橘,格式為:主機(宿主)端口:容器端口
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用玉控;
-v :映射數(shù)據(jù)目錄
-e MYSQL_ROOT_PASSWORD:設置MySQL root密碼為123456
四飞主、拷貝容器中的數(shù)據(jù)到創(chuàng)建好的宿主機目錄中
[root@iZbp18fygyh37em2nkknokZ mysql]# docker cp mysq-test:/var/lib/mysql /software/docker/mysql/data/mysql
數(shù)據(jù)備份,就算刪除容器重建高诺,只要掛載該文件碌识,重建的容器數(shù)據(jù)還是刪除前的數(shù)據(jù)。
[root@iZbp18fygyh37em2nkknokZ mysql]# docker cp mysq-test:/etc/mysql/mysql.conf.d/mysqld.cnf /software/docker/mysql/config/mysqld.cnf
這里是為了修改同步容器中mysql 的時間為北京時間虱而。
設置mysql的時區(qū)為東八區(qū)
image.png
五筏餐、刪除原容器重新構建
[root@iZbp18fygyh37em2nkknokZ mysql]# docker rm -f mysql-test
mysql-test
[root@iZbp18fygyh37em2nkknokZ mysql]# docker run -itd --name mysql-test -p 3306:3306 -v /software/docker/mysql/data/mysql:/var/lib/mysql -v /software/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
4beb59fe117148e08b6d39136fbc07835210e2287d0db0e4e62e6e3e93920cda
[root@iZbp18fygyh37em2nkknokZ mysql]# docker ps
啟動成功,后打開數(shù)據(jù)庫牡拇,驗證數(shù)據(jù)庫原數(shù)據(jù)是否存在魁瞪;
驗證時間是否正確
image.png