docker之搭建wordpress實戰
docker的初識,docker compose+mysql+wordpress舉例應用
docker優勢
相對於傳統的devops開發,從以下幾個問題我們對比,發現dcoker的獨特
-
有沒有在安裝一個linux系統下安裝一個程式很頭疼,比如mysql版本不對,需要解除安裝重 新裝一個新的版本,重新進行配置。再或者安裝一個Apache需要安裝各種依賴很繁瑣。
-
對於一些專案本機可以執行,但是伺服器或者其他電腦都不能執行,不同的環境導致 專案不能執行這種事情也是司空見慣的。
-
應用程式執行一段時間,突然出現問題,可能是伺服器其他應用程式導致,或者是相 衝突,可能是其他程式有問題,佔滿了機器的cpu和記憶體,導致其他程式沒法執行。
-
APP上線一個活動,可能導致流量暴增,公司需要再多部署幾十臺伺服器。
針對以上的問題,我們可以總結出docker相對傳統的devops開發,可以做到快捷的部署,直接拉取映象部署開發環境,然後可以將專案打包成映象,直接再其他docker上執行映象即可,解決了依賴問題,解決版本衝突,容器之間的隔離,使得不同程式之間互不干擾。新建幾十個容器相對於部署幾十臺伺服器來說那效率估計會快上n倍。
以上談完了docker的優勢,接下來看看docker的具體操作:
docker的安裝
安裝docker其實挺簡單的,只需要幾行命令
如果僅是安裝,逐條執行以下命令即可,具體的命令含義或者其他系統下安裝,可參考以下網址
基於linux下,docker官方的儲存庫安裝
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-tes
sudo yum install docker-ce
上述便完成了docker容器的安裝,啟動docker
sudo systemctl start docker
docker的使用
使用docker的一寫常用命令可以驗證上述的docker是否正確安裝。學習docker需要了解docker的三個重要元素,映象,容器和倉庫。另外需要dockerfile和docker compose的基本概念和語法 在這裡就不詳解docker的命令了,具體的可參考docker官方文件
dcoker之mysql的安裝
對於mysql儲存資料的容器,資料檔案和配置應該是在外部配置裡面可維護,可配置。在docker hub中mysql映象的設計,當啟動容器是,檢視mysql的docker可知其實外部掛載了資料檔案VOLUME /var/lib/mysql. 配置沒有掛載。 我們可以重新啟動一個mysql容器去掛載資料檔案和配置檔案。
mysql外部檔案掛載:
1.建立一個目錄 /docker/mysql 在再新建一個目錄 /docker/mysql/conf, 編輯一個自己的my.cnf配置
2.啟動一個mysql容器
docker run -p 3306:3306 --name 91_mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=91code2018 -d mysql:5.6
3.啟動成功即可 myql的一些配置: my.cnf下面設定不區分表的大小寫:
[mysqld]
lower_case_table_names=1
是否成功可進入mysql客戶端:
show Variables like '%table_names' 查出來結果為1即可
設定mysql遠端連線:
mysql>use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY "密碼"; //為root新增遠端連線的能力
mysql> flush privileges;
mysql> exit
mysql>select host,user from user; //檢視修改是否成功。
修改字符集: 檢視命令:
show variables like '%character%';
修改命令:
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_client=utf8;
docker+compose的wordPress實戰搭建
- sudo chmod +x /usr/local/bin/docker-compose
- docker-compose --version
-
官方搭建wordpress參考文件 主要步驟就是新建一個docker-compose.yml檔案,然後在檔案目錄下執行docker-compose up -d 即可開啟一個docker-compose服務。
-
若是要連線到已經存在的mysql容器,可參考以下的docker-compose.yml
version: '3.3'
services:
wordpress:
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: 111.231.85.21:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: 91code2018
WORDPRESS_DB_NAME: wordpress_metastore