本想在這篇文中說一下阿里雲主機的採購和選型,又怕大家誤會我是廣告貼,所以關於阿里雲的選購以後我將單獨發到我的博客當中。
閑話少說,進入正題。小型企業站快速上雲其實是一件很容易的事情,但是每次配置伺服器卻並不是一件容易的事,每次大家都要找一些需要安裝的插件和組件,有的因為版本問題,有的因為翻牆問題最後的安裝過程相當麻煩。Docker就成為了我們快速部署的工具。
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
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/208956.html