1.下載鏡像
國內鏡像源: daocloud.io – 當然你可以使用阿里或者豆瓣源
在首頁點擊鏡像市場找到mysql和WordPress的鏡像,建議先配置加速器,加快下載速度

mysql 鏡像 :docker pull daocloud.io/library/mysql:5.7.6
WordPress 鏡像 : docker pull daocloud.io/daocloud/dao-wordpress:latest
實驗環境 :青云服務器 centos7
2.創建 mysql 容器
官方檔案已經給出怎么創建實體,按照檔案格式run即可

docker run -d --name mydb --restart=always -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -e MYSQL_USER=root --net bridge daocloud.io/library/mysql:5.7.6
#####################################################
--restart=always 重啟策略,這樣docker ps就可以看到在運行
-v /data:/var/lib/mysql 資料卷持久化 匿名掛載 宿主機目錄如果不存在則會創建
--net bridge 默認網路橋接模式 可以不寫
MYSQL_ROOT_PASSWORD 資料庫root密碼
MYSQL_DATABASE 資料庫
MYSQL_USER 資料庫用戶
MYSQL_PASSWORD 資料庫密碼
當看到 mydb 的3306埠起來了就表示這個mysql容器run 成功了

如果發現 3306 埠沒有起來,可以通過 docker logs mydb 查看容器日志資訊
我在實驗程序中出現了一個小錯誤,云服務器已經創建過data目錄,里面有一些資料,導致我docker ps 查看的時候埠消失了

可以看出 mydb 的ip地址是172.17.0.2

3.創建 wordpress 容器

通過檔案可知 wordpress 需要資料庫名,資料庫用戶名,資料庫密碼,資料庫表

docker run --name wordpress --restart=always -e WORDPRESS_DB_HOST=172.17.0.2:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -e WORDPRESS_DB_NAME=wordpress -p 8080:80 -v /web:/var/www/html -d daocloud.io/daocloud/dao-wordpress:latest
###################################################
WORDPRESS_DB_HOST mydb資料庫地址
WORDPRESS_DB_HOST mydb資料庫用戶
WORDPRESS_DB_HOST mydb資料庫密碼
WORDPRESS_DB_HOST mydb資料庫名
-p 宿主機埠:容器埠
當看到8080埠啟動,就表示 wordpress run成功了

4.訪問 http://139.198.xx.xx:8080/
云服務器需要開放安全組埠,否則無法訪問;虛擬機則不需要

5.優化
會發現一個問題,docker 網路橋接模式,如果mysql容器被刪掉后,我起一個別的容器,那么這個容器就會占用172.17.0.2 這個ip地址,那么怎么讓wordpress 即使mysql容器ip地址變了也能找到mysql呢?
mysql 鏡像檔案給出了方案,可以使用link來鏈接使用我們的mydb

wordpress 鏡像檔案對于變數也有默認值,比如主機默認link的mydb的ip+3306埠,用戶名root,資料庫wordpress,密碼是link的mydb密碼;
這樣我們就可以簡寫,讓使用默認值就可以了
docker run --name wordpress --restart=always --link mydb:mysql -p 8080:80 -v /web:/var/www/html -d daocloud.io/daocloud/dao-wordpress:latest
這樣即使mysql 鏡像ip改變也不會error
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273688.html
標籤:其他
