Docker: 快速搭建LNMP網站平臺

快速搭建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 暗號:博客園.

相關文章
相關標籤/搜索