快速搭建LNMP網站平臺php
步驟:html
一、自定義網絡(這裏創建一個自定義網絡,名字叫 lnmp, 讓LNMP網站的服務,都加入這個自定義網絡)
docker network create lnmp
二、建立Mysql容器
docker run -d \
--name lnmp_mysql \
--net lnmp \
--mount src=mysql-vol,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8
三、建立PHP容器(--mount src=wwwroot,dst=/wwwroot 表明使用默認使用 /var/lib/docker/volumes/wwwroot做爲掛載點,若是事先沒有建立wwwroot,會自動建立,掛載到 容器的/wwwroot目錄 )
docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1
四、建立Nginx容器(--mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf 將宿主機的nginx.conf掛在到容器內的/usr/local/nginx/conf/nginx.conf, 這個方法很好,能夠提早把任何配置文件準備好,免得每次建立新容器時,須要修改容器內服務的配置文件。 )
docker run -d --name lnmp_nginx --net lnmp -p 88:80 \
--mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1mysql
(--mount src=wwwroot,dst=/wwwroot 這裏配置掛載容器內的 /wwwroot目錄,是由於nginx服務的nginx.conf裏配置了網站訪問根目錄是/wwwroot)nginx
五、以wordpress博客爲例,將tar文件下載下來,解壓到宿主機/var/lib/docker/volumes/wwwroot 目錄下, 就能使用http://192.168.1.30:88/訪問到wordpress前臺管理界面
https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gzsql
如下是整個實踐過程:docker
#建立一個自定義網絡,以後的nginx,tomcat,php,mysql都使用這個網絡,就是讓這些容器都使用同一個網段,這樣互相之間通訊就方便 [root@192 ~]# docker network create lnmp b36da77912c714a0ab918c6a0768c3e85cc950fe164610ffdd046b9a71e0ce83 #建立Mysql容器,將宿主機的mysql-vol卷掛在到容器的/var/lib/mysql,這樣mysql數據就持久化了,刪除容器 在msyql-vol卷的數據不會被刪除 [root@192 ~]# docker run -d --name lnmp_mysql --net lnmp --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8 845547a65a147b0d0be312e3f46bd7cbb56968a817e27e59c29d6a4455e0d7d6 #這裏默認在容器裏建立了一個mysql-vol的卷,物理位置經過下面命令查看到在/var/lib/docker/volumes/wwwroot/_data [root@192 ~]# docker volume ls DRIVER VOLUME NAME local 21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2 local mysql-vol local nginx-vol [root@192 ~]# docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1 9eff3efb9e671a90b9bf966087f8fd567928db523215750f5eeb1eca8eb9e9ca [root@192 ~]# docker volume ls DRIVER VOLUME NAME local 21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2 local mysql-vol local nginx-vol local wwwroot [root@192 ~]# docker volume inspect wwwroot [ { "CreatedAt": "2019-03-15T00:17:44+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/wwwroot/_data", "Name": "wwwroot", "Options": null, "Scope": "local" } ] #建立Nginx容器 [root@192 ~]# ls anaconda-ks.cfg dockerfile_.zip nginx nginx.tar php tomcat [root@192 ~]# cd nginx [root@192 nginx]# docker run -d --name lnmp_nginx --net lnmp -p 88:80 --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1 4c510b4a8172862555e7cf455c05d9a4068b25e395cae69a32052acc7e2a4da0 #進入宿主機/var/lib/docker/volumes/wwwroot/_data 建立 index.html文件,這樣經過瀏覽器http://<宿主機ip>:88端口,就能訪問到新建的index.html [root@192 nginx]# cd /var/lib/docker/volumes/wwwroot/_data [root@192 _data]# ls [root@192 _data]# vi index.html [root@192 ~]# docker volume inspect wwwroot [ { "CreatedAt": "2019-03-15T00:17:44+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/wwwroot/_data", "Name": "wwwroot", "Options": null, "Scope": "local" } ] [root@192 ~]# ls anaconda-ks.cfg dockerfile_.zip nginx nginx.tar php tomcat [root@192 ~]# cd nginx [root@192 nginx]# docker run -d --name lnmp_nginx --net lnmp -p 88:80 --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1 4c510b4a8172862555e7cf455c05d9a4068b25e395cae69a32052acc7e2a4da0 [root@192 nginx]# cd /var/lib/docker/volumes/wwwroot/_data [root@192 _data]# ls [root@192 _data]# vi index.html [root@192 _data]# vi test.php [ { "CreatedAt": "2019-03-15T00:17:44+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/wwwroot/_data", "Name": "wwwroot", "Options": null, "Scope": "local" } ] #部署一個php項目wordpress博客系統,先安裝wget命令,下載php項目 anaconda-ks.cfg dockerfile_.zip nginx nginx.tar php tomcat [root@192 ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz -bash: wget: 未找到命令 [root@192 ~]# yum install wget -y 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: ftp.sjtu.edu.cn * updates: ftp.sjtu.edu.cn 正在解決依賴關係 --> 正在檢查事務 ---> 軟件包 wget.x86_64.0.1.14-18.el7 將被 安裝 --> 解決依賴關係完成 依賴關係解決 ================================================================================================================= Package 架構 版本 源 大小 ================================================================================================================= 正在安裝: wget x86_64 1.14-18.el7 base 547 k 事務概要 ================================================================================================================= 安裝 1 軟件包 總下載量:547 k 安裝大小:2.0 M Downloading packages: wget-1.14-18.el7.x86_64.rpm | 547 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : wget-1.14-18.el7.x86_64 1/1 驗證中 : wget-1.14-18.el7.x86_64 1/1 已安裝: wget.x86_64 0:1.14-18.el7 完畢! [root@192 ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz --2019-03-15 00:29:38-- https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz 正在解析主機 cn.wordpress.org (cn.wordpress.org)... 198.143.164.252 正在鏈接 cn.wordpress.org (cn.wordpress.org)|198.143.164.252|:443... 已鏈接。 已發出 HTTP 請求,正在等待迴應... 200 OK 長度:9082696 (8.7M) [application/octet-stream] 正在保存至: 「wordpress-4.9.4-zh_CN.tar.gz」 100%[=======================================================================>] 9,082,696 1.79MB/s 用時 4.8s 2019-03-15 00:29:44 (1.79 MB/s) - 已保存 「wordpress-4.9.4-zh_CN.tar.gz」 [9082696/9082696]) [root@192 ~]# ls anaconda-ks.cfg dockerfile_.zip nginx nginx.tar php tomcat wordpress-4.9.4-zh_CN.tar.gz [root@192 ~]# tar wordpress-4.9.4-zh_CN.tar.gz tar: 舊選項「C」須要參數。 請用「tar --help」或「tar --usage」得到更多信息。 #解壓 [root@192 ~]# tar xvf wordpress-4.9.4-zh_CN.tar.gz wordpress/ ... #將wordpress文件夾移動到 [root@192 ~]# cd /var/lib/docker/volumes/wwwroot/_data [root@192 _data]# ls index.html test.php [root@192 _data]# mv /root/wordpress/* . [root@192 _data]# ls index.html test.php wp-comments-post.php wp-includes wp-mail.php xmlrpc.php index.php wp-activate.php wp-config-sample.php wp-links-opml.php wp-settings.php license.txt wp-admin wp-content wp-load.php wp-signup.php readme.html wp-blog-header.php wp-cron.php wp-login.php wp-trackback.php
如今經過瀏覽器,能夠訪問:瀏覽器
[root@192 _data]# vi wp-config.php
將上面藍色代碼全選 copy到wp-config.phptomcat
到此,完整的在容器中搭建了一個博客系統。bash
若是搭建環境遇到文件,建議從第一篇開始看,筆記是連續的。 微信
#使用容器名中止容器
[root@192 wwwroot]# docker container stop lnmp_mysql lnmp_mysql [root@192 wwwroot]# docker container stop lnmp_php lnmp_php [root@192 wwwroot]# docker container stop lnmp_nginx lnmp_nginx
#使用容器名啓動容器
[root@192 wwwroot]# docker container start lnmp_nginx lnmp_nginx [root@192 wwwroot]# docker container start lnmp_php lnmp_php [root@192 wwwroot]# docker container start lnmp_mysql lnmp_mysql
做者: 梅梅~
出處: https://www.cnblogs.com/keeptesting
關於做者:專一軟件測試,測試運維相關工做,請多多賜教!
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出, 原文連接 歡迎溝通交流加微信聯繫。 微信:yangguangkg20140901 暗號:博客園.