Docker: 快速搭建LNMP網站平台


快速搭建LNMP網站平台

步驟:

1、自定義網絡(這里建立一個自定義網絡,名字叫 lnmp, 讓LNMP網站的服務,都加入這個自定義網絡)
docker network create lnmp
2、創建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
3、創建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
4、創建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:v1

(--mount src=wwwroot,dst=/wwwroot 這里配置掛載容器內的 /wwwroot目錄,是因為nginx服務的nginx.conf里配置了網站訪問根目錄是/wwwroot)


5、以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.gz

 

 以下是整個實踐過程:

#創建一個自定義網絡,之后的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.php

到此,完整的在容器中搭建了一個博客系統。

如果搭建環境遇到文件,建議從第一篇開始看,筆記是連續的。 

 

#使用容器名停止容器
[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 暗號:博客園.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM