使用Docker進行小型PHP網站LNMP的快速搭建教程

本想在這篇文中說一下阿里雲主機的採購和選型,又怕大家誤會我是廣告貼,所以關於阿里雲的選購以後我將單獨發到我的博客當中。

閒話少說,進入正題。小型企業站快速上雲其實是一件很容易的事情,但是每次配置服務器卻並不是一件容易的事,每次大家都要找一些需要安裝的插件和組件,有的因爲版本問題,有的因爲翻牆問題最後的安裝過程相當麻煩。Docker就成爲了我們快速部署的工具。

使用Docker進行小型PHP網站LNMP的快速搭建教程
docker
圖片描述
本文中我將以php7+nginx+mysql+爲例在centos6.8以上系統中進行docker環境的搭建,也就是常說的LNMP環境,接下來爲大家簡單進行網站配置的教程.

開始前我們明確一下所要安裝服務的插件及開放的端口

Php7-fpm進程默認開放9000端口,Nginx默認開放80端口,也可以根據需要進行調整,Mysql開放3306端口。

本文中我們採用官方鏡像進行docker源的加速。

拉取鏡像

PHP

docker pull php:7.2.3
MySQL

docker pull mysql:5.7.21
Nginx(Tengine/openresty)

docker pull nginx:1.13.10
啓動容器

啓動容器時,需要注意各容器之間的關聯關係。

在LNMP架構中,WEB服務器(Nginx)需要將PHP請求轉發給php-fpm進行處理,而PHP要進行數據的存取,少不了和數據庫(MySQL)進行交互,所以他們之間存在關聯,那麼啓動時需要指定這些關聯,這個關聯使用networks參數來指定。

建立網絡

docker network create my_net

docker run -it -d -p 3306:3306 --network my_net -e MYSQL_ROOT_PASSWORD=123456 -v /mnt/mysql:/var/lib/mysql --name mysql mysql:5.7.21
docker run -d -p 9000:9000 --name php -v --network my_net /mnt/html:/usr/local/openresty/nginx/html php:7.2.3 #PHP
docker run -d -p 80:80 --name nginx -v /mnt/html:/usr/local/openresty/nginx/html --network my_net nginx:1.13.10 #Nginx
啓動時我們多使用了一個-v參數,這個參數的意思是掛載,作用是將宿主機的一個目錄掛載到容器中指定的目錄,這樣,即使我們銷燬了這個容器,那容器中的數據依然保留在宿主機上,不會丟失。比如數據庫存放數據的data目錄,WEB服務器存放代碼的www目錄,每個服務存放配置文件的目錄等。

web_server:
image: nginx
ports:

  • "80:80"
  • "443:443"

volumes:

  • /mnt/html:/usr/local/openresty/nginx/html

networks:

  • "my_net"

db_server:
image: docker.io/mysql:5.7.21
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:

  • "3306:3306"

volumes:

  • /mnt/mysql:/var/lib/mysql

networks:

  • "my_net"

php:
image: docker.io/php:7.2.3
container_name: php
links:

  • db_server:mysql

ports:

  • "9000:9000"

volumes:

  • /mnt/html:/usr/local/openresty/nginx/html
  • /mnt/php:/usr/local/etc/php

networks:

  • "my_net"

networks:
my_net:
driver: bridge

保存爲docker-compose.yml,並在該文件處執行啓動命令docker-compose up -d

Starting mysql ... done
Starting php ... done
Starting nginx ... done
可以驗證一下是否正常啓動:

docker ps -a 或 docker-compose ps
手打不易,如果覺得有用請關注我!歡迎轉發收藏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章