在Docker中部署Mysql與Wordpress
阿里雲ECS設置鏡像加速
進入網址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
按照操作提示,更改加速地址:
在Docker中創建持久化的Mysql Container
我這裏使用了root權限創建,但是大家不要這麼做
執行命令:
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=$PASSWORD_HERE -v /root/web/mysql_data:/var/lib/mysql -p 3306:3306 mysql:5.6
這會創建一個Mysql Container,它的數據將被存放在/root/web/mysql_data/目錄下,這個容器會佔用3306端口。
在Docker中創建與Mysql關聯的Wordpress Container
執行命令:
docker run -d --name wordpress -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=$PASSWORD_HERE --link mysql:mysql -p 8080:80 wordpress
注意,這個容器將佔用8080端口,這個端口號務必記住,在後面的Nginx反向代理會用到。此外,我們用WORDPRESS_DB_HOST變量指明瞭Wordpress使用我們的Mysql Container作爲其數據庫,數據庫密碼務必與上述的Mysql Container中的一致。–link參數將會連接這兩個容器。
在Nginx中設置反向代理
反向代理的設置並不複雜,安裝Nginx後,進入其配置目錄:
cd /etc/nginx/
ls
會看到:
然後我們進入site-enabled目錄,新建一個文件,名字爲blog,這個名字可以隨意設置,在site-enabled目錄下的所有文件都會被視爲Nginx配置文件。
修改blog文件爲以下內容:
server {
listen 80;
server_name blog.xxxxx.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
index index.html index.htm;
}
}
這裏我會對設置一一講解:
首先是listen 80;,這個配置用以說明監聽80端口。
其次是server_name blog.xxx.com;,這個配置用於標識你的服務名,理應配置成你的持有域名。
然後位於**location / {}**大括號中的內容:
對於proxy_pass,理應設置爲本機的服務器地址,用於反向代理轉發(基本就設置成http://127.0.0.1:端口號)。
但是這樣設置後有一部分應用,在安裝過程中可能會出現一些問題(例如Wordpress),即網站地址會被設置爲127.0.0.1:8080。
此時應設置proxy_set_header,傳入由Browser提供的Header給我們的應用。三句原封不動抄上即可。
至此,服務部署完成。