Docker 快速搭建 MySQL 和 Redis
MySQL 環(huán)境搭建
最近做開發(fā)的時候遇到一個比較有意思的事情,如何搭建一個數(shù)據(jù)庫,還有相關(guān)的redis等。因為沒有外網(wǎng),不可能說直接yum安裝琅攘,又不想到每個官網(wǎng)去找相應(yīng)的安裝包。自然的松邪,就想到了用Docker坞琴。一開始用到docker安裝一個mysql的時候確實也是非常方便,比如一個docker run
命令就啟動了一個mysql逗抑,但是開發(fā)到一部分的時候剧辐,發(fā)現(xiàn)。我去邮府!怎么又亂碼荧关?? 咦褂傀,怎么市區(qū)也不對了忍啤?GG,發(fā)現(xiàn)還有很多小問題仙辟。今天有空一并總結(jié)下同波,下次如果有這種事就可以直接用了鳄梅。
使用Docker啟動啟動Mysql容器
如果需要一個mysql數(shù)據(jù)庫,直接使用docker來運行一個容器:docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 mysql:5.7
這樣你就可以在本地ip+3306端口來訪問一個mysql數(shù)據(jù)庫了参萄,root密碼是:root123456
卫枝。第一次使用docker的時候就是因為這個原因被吸引了。想想如果本地安裝需要做多少配置讹挎,而是用docker一條命令就幫你把那些復(fù)雜的操作都隱藏了。這種便利性吆玖,我想誰都不會說不想要筒溃。
不過雖然便利是便利了,但是還是需要注意一些問題:
字符問題
mysql默認其實是latin的字符集沾乘,docker 啟動mysql的時候其實也是使用的默認字符怜奖。而我們做開發(fā)一般都是使用UTF-8的字符集,那出現(xiàn)這種情況該如何更改配置了翅阵?可以在啟動的時候加上兩個變量:docker run -d -e MYSQL_ROOT_PASSWORD=root123456 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
數(shù)據(jù)磁盤問題
一個容器歪玲,如果那天不小心刪除了,然后你重建就會發(fā)現(xiàn)之前的數(shù)據(jù)沒有了掷匠,這種情況當(dāng)然是不行啦滥崩。那么怎么將數(shù)據(jù)盤掛載出來:加上 -v
,讓存儲在容器里面的數(shù)據(jù)存儲到本地自定義的盤中:-v /data/mysql:/var/lib/mysql
讹语。
默認數(shù)據(jù)庫钙皮,以及時區(qū)修改
有的時候我們會需要導(dǎo)入一些表或者一些數(shù)據(jù),這個時候該怎么操作? 其實也有一個環(huán)境變量:MYSQL_DATABASE
;然后將數(shù)據(jù)庫的初始化腳本放到/docker-entrypoint-initdb.d/
目錄下也就是將sql掛載到該目錄下:
docker run -d --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -e MYSQL_DATABASE=DB_USER -e TZ=Asia/Shanghai -v $PWD/sql-scripts/:/docker-entrypoint-initdb.d/ -v /data/mysql:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
將數(shù)據(jù)庫的sql放到當(dāng)前目錄的sql-scripts/
目錄下顽决。
Redis 環(huán)境搭建
redis的搭建其實要比mysql要簡單些短条,畢竟redis我們一般都只是用來當(dāng)作緩存,而不會將數(shù)據(jù)持久化才菠,所以只需要將一個容器run起來就可以了茸时。不過我們一般會有redis的密碼需要,所以完整的命令如下:
docker run -d --name redis -p 6379:6379 redis:latest --requirepass "123456"
這樣redis就啟動了赋访,如果需要開機啟動可都,加上--restart=always
。
好了进每,今天一篇搭建mysql和redis的過程就到這里了汹粤。
原文鏈接:Docker 快速搭建 MySQL 和 Redis
文章作者:牛肉餃子
發(fā)布時間:2018-12-16 20:04:12
原始鏈接:http://chenzhijun.me/2018/12/16/docker-mysql-and-redis/
轉(zhuǎn)載請保留原文鏈接及作者。