重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
前言
做過開發的人對開發環境的安裝、配置應該都不會太陌生,不管你做什么開發,對開發環境都會具有一定的依賴性的。對于 PHP 的 Web 開發來說,開發環境至少要有一個 Web 服務器(如 Apache、Nginx)、一個數據庫服務器(如 MySQL)和一個 PHP 解析器吧,如果你的 PHP 代碼使用的一些擴展,那你還需要給你的 PHP 安裝上這些擴展,那樣你的 PHP 代碼才能夠順利地跑起來。對于一個只想靜靜地敲代碼的開發人員來說,開發環境的安裝與配置這種事情,只要經歷一次就已經很折騰人了。可是,事情往往不能按人們的意愿進行的,你保不準會重裝下系統,也保不準會換一個新的環境。總之就是,你會偶爾需要重新安裝配置你的的開發環境!
你可以回想一下,上一次安裝配置你的開發環境花費了多少時間,你所需要的 PHP 擴展是不是到運行時報錯了才記起來沒安裝的呢?還好,自從有了 Docker 之后,媽媽再也不用擔心我的開發環境的問題了。使用 Docker ,開發環境只需要安裝配置一次,之后搭建相同的開發環境很簡單,只需要一條命令即可完成!
這就是本文的目的,介紹 Docker 下安裝配置 Web 的服務環境,實現一次安裝配置,多次重用、跨平臺重用的功能。
Docker 概述
Docker 是什么?可以將 Docker 理解為打包環境的容器,它可以將環境打包成鏡像,在需要的時候,再基于該鏡像來創建容器,這樣所需要的環境就回來了。剛剛提到了 Docker 的兩大核心概念,鏡像和容器。
Docker鏡像是為了滿足特殊用途而按照Docker的規則制作的應用,有點兒類似于Win-dows里面的安裝軟件包。容器都是基于鏡像而創建的,基于一個鏡像可以創建若干個名字不同但功能相同的容器。鏡像是靜態的,容器是動態的。
除了鏡像和容器之外,還有兩個概念需要了解一下的,那就是倉庫和 docker-compose。Docker 倉庫是存放鏡像的地方,我們可以從 Docker 倉庫中拉取鏡像到本地,然后再基于鏡像創建容器。docker-compose 是管理容器的。Docker 的思想是一個容器只做一件事情,一個開發環境中可能會使用到多個容器,比如 Web 服務環境會使用到 PHP 、Nginx、MySQL 等等。那么一個 Web 服務環境就需要有三個容器,并且這些容器之間是存在依賴關系的,Nginx 依賴 PHP,PHP 依賴 MySQL。有了 docker-compose 就可以很好地管理這些容器了,它可以根據容器之間的依賴關系來決定每個容器的啟動順序和關閉順序,可以管理各容器與宿主機器之間的端口映射關系,也可以配置容器與宿主機器之間的數據共享策略等等。
國內的鏡像倉庫
由于地理位置的原因,國內訪問 Docker 的官方倉庫是比較慢的,所以在這里介紹一個國內的 Docker 倉庫:靈雀云。靈雀云鏡像倉庫中匯集了大量來自社區的優質作品,讓用戶組合、復用容器化微服務,輕松搭建新一代云端應用。
搭建 Web 服務環境
本文的重點是使用 Docker 搭建一套 Web 服務環境,如果在你的環境中還沒有安裝 Docker,可以參考這里自行安裝。
安裝了 Docker 之后,搭建 Web 服務環境就很簡單了,只需要一個文件,一條命令即可!
一個文件: docker-compose.yml
nginx: image: index.alauda.cn/library/nginx links: - phpfpm ports: - "80:80" - "443:443" volumes: - /Users/chenishr/www:/usr/share/nginx/html - ./nginx.conf:/etc/nginx/nginx.conf - ./nginx.d:/etc/nginx/conf.d mysql: image: index.alauda.cn/library/mysql environment: MYSQL_ROOT_PASSWORD: qazasdedc123 ports: - "3306:3306" phpfpm: image: index.alauda.cn/library/php:7.0-fpm links: - mysql volumes: - /Users/chenishr/www:/var/www/html ports: - "9000:9000"
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。