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-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.dmysql: 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"
上面的檔案內容很簡單,它定義了三個容器,分別是 nginx、mysql 和 phpfpm 。每個容器定義裡包含了一些資訊,這裡簡單介紹一下。image:這個字段表示該容器是基於那個映象來建立的
links:表示在該容器內部需要訪問那個其它的容器,該名字在容器內部的表現類似於網域名稱,它會綁 定對應容器的 ip
ports:將容器內部的埠對映到宿主機器中
volumes:配置容器與宿主機器的共享檔案或者目錄
一條命令
有了上面的 docker-compose.yml 檔案之後,只需要一條命令即可啟動所有的容器,也就是搭建好了整個 web 服務環境了!
docker-compose up -d最後
有了 docker 之後,搭建環境從未有過如此簡單。
利用docker搭建web服務環境的方法步驟
前言 做過開發的人對開發環境的安裝 配置應該都不會太陌生,不管你做什麼開發,對開發環境都會具有一定的依賴性的。對於 php 的 web 開發來說,開發環境至少要有乙個 web 伺服器 如 apache nginx 乙個資料庫伺服器 如 mysql 和乙個 php 解析器吧,如果你的 php 使用的一...
用Docker搭建web開發環境
需要解決的主要問題 如何在宿主機修改 在容器中實時重新整理 效果。解決方案就是volume,掛載。具體操作方式也有多種,本文通過編寫compose檔案的方式來實現掛載。筆者使用docker的思想是 映象作為材料,compose作為藍圖,通過修改藍圖來生成分別適用於開發 測試 生產環境的容器。映象是乙...
linux環境搭建docker容器服務
docker 是乙個開源的應用容器引擎,基於 go 語言 並遵從 apache2.0 協議開源。docker 可以讓開發者打包他們的應用以及依賴包到乙個輕量級 可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。docker有兩個分支版本,ce社群版,ee企業版。本次使用的是...