衆所周知docker是當前最火熱的容器引擎,由於沙盒特性,即插即用和快速方便的部署能力受到廣大用戶的喜好。php
docker一般有兩種執行方式,一種是直接經過命令行加參數拉取、運行容器,但由於用戶的實際應用是複雜的,可能由多個容器組成,容器間存在關係,使用上可能須要重複屢次部署。 所以,須要必定的編排部署能力來簡化這個操做。html
另外一種方式就是今天咱們介紹的,經過編排文件部署的方式,也就是compose方式運行容器。Compose運行須要有對應的yml文件以及Dockerfile。 經過調用Docker/Swarm的API進行容器應用的編排。node
laradock就是一個利用Compose方式運行容器,功能完整的PHP集成研發環境。linux
你們能夠去官網 ,或者國內的服務提供商(如Daocloud)下載相應操做系統的安裝文件(或者在線安裝),這裏就很少敘述了。nginx
若是是linux系統的話,安裝完docker,還須要單獨安裝docker-compose。
git clone https://github.com/laradock/laradock.git
laravel
cp env-example .env
git
打開.env文件,修改公共變量APPLICATION的路徑,默認路徑是github
APPLICATION=../
chrome
咱們能夠根據須要作相應修改,通常狀況下,咱們的主機上會有一個或多個項目,這樣的話作以下設置:docker
APPLICATION=../www/
這是什麼意思呢,咱們來看下docker-compose.dev.yml文件
version: "2" services: ### Applications Code Container ############################# applications: volumes: - ${APPLICATION}:/var/www
咱們看到咱們配置了一個容器applications,它映射了一個數據卷,把本地的www目錄,映射到了容器內的/var/www目錄
查看相關編排文件配置
version: '2' services: ### Applications Code Container ############################# applications: image: tianon/true ### Workspace Utilities Container ########################### ### 爲了排版,略作修改,省略了其它部分 workspace: build: context: ./workspace volumes_from: applications ### PHP-FPM Container ####################################### ### 爲了排版,略作修改,省略了其它部分 php-fpm: build: context: ./php-fpm volumes_from: applications ### NGINX Server Container ################################## ### 爲了排版,略作修改,省略了其它部分 nginx: build: context: ./nginx volumes_from: applications
咱們看到,剛纔在compose-dev.yml定義的容器applications基於鏡像:tianon/true。
容器workspace是一個操做臺容器,能夠經過配置文件安裝各類須要的軟件如:node,yarn等等,它和php-fpm、nginx等容器都共用容器applications的數據卷,也就是說這幾個寫着volumes_from: - applications的容器中的路徑/var/www
都共用本機目錄../www
編輯nginx主機配置文件laradock/nginx/sites
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name localhost; root /var/www/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } location /.well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } }
由於laradock項目默認是爲laravel框架配置的,因此咱們看到網站的根目錄默認設置爲/var/www/public
。這裏咱們把根目錄修改成咱們須要的路徑,如 /var/www/your-project-name/public
。若是你的項目不是基於laravel的,則能夠把public去掉,或作相應修改。
若是你使用Chrome 63以上版本進行開發,就不要把server_name設置爲.dev結尾 爲何?。 你能夠用.localhost
,.invalid
,.test
,.example
等代替,我的建議用.localhost
,這樣就不用修改容器的主機的host文件了,他會默認指向IP127.0.0.1。
docker-compose up -d nginx
到這裏laradock的配置解析基本就介紹完畢了,小夥伴們趕快寫個hellow world試試吧,下一篇文章咱們來說講如何經過容器,讓咱們的網站支持https協議。