本想在這篇文中說一下阿里云主機的采購和選型,又怕大家誤會我是廣告貼,所以關于阿里云的選購以后我將單獨發到我的博客當中。
閑話少說,進入正題。小型企業站快速上云其實是一件很容易的事情,但是每次配置服務器卻并不是一件容易的事,每次大家都要找一些需要安裝的插件和組件,有的因為版本問題,有的因為翻墻問題最后的安裝過程相當麻煩。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
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。