?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Docker - 是一個完整功能虛擬機方案的輕量化替代品 - 之所以獲得這樣稱呼是由于其“容器(container)”特性。一個容器就是一個構(gòu)建模塊,簡單來說,就是執(zhí)行一個特定的任務(wù),例如,運行一個 web 服務(wù)器?!扮R像(image)”是用來構(gòu)建容器的集成包(package) - Docker 提供了一個存放所有鏡像的倉庫。
一個典型的 LAMP 應(yīng)用包含以下三個容器:一個 Web 服務(wù)器、一個 PHP-FPM 進程(process)和 MySQL。就像 Vagrant 中的共享文件夾一樣,你不需要改變你的文件的所在位置,你只需要告訴 Docker 到哪里可以找到他們即可。
你可以通過命令行來生成容器(下面有實例),或者,為了方便維護,為你的項目構(gòu)建一個 docker-compose.yml 文件來配置生成容器的規(guī)則和容器的通訊方式。
Docker 在多網(wǎng)站要求不同運行環(huán)境的情況下尤其趁手,你可以在一臺機器上運行多個 Docker 虛擬主機,他們將會運行在完全不同的環(huán)境中,使用不同的 Web 服務(wù),并且不管在內(nèi)存共享、硬盤空間、或者是 CPU 資源上,都能做到高效利用。這些虛擬機同時也指出秒寄重啟。
實例:在 Docker 中運行 PHP 應(yīng)用
在你成功 安裝 Docker 后, 你只需一條命令就能啟動一個 web 服務(wù)。 以下命令將下載一個功能完整的 Apache 鏡像,包含的 PHP 也是最新版本的,/path/to/your/php/files 目錄將映射到文檔根目錄,通過 http://localhost:8080 地址就可以看到歡迎頁面:
docker run -d --name my-php-webserver -p 8080:80 -v /path/to/your/php/files:/var/www/html/ php:apache
上面的命名將初始化并啟動容器。-d 參數(shù)告訴容器在后臺運行。 如需停止或啟動它,只需執(zhí)行 docker stop my-php-webserver 和 docker start my-php-webserver 命令即可(其他參數(shù)就不再需要了)。
了解更多關(guān)于 Docker 的信息
上述命令展示了快速啟動服務(wù)的一種方式。Docker 還提供了很多功能等著你去發(fā)現(xiàn)(Docker Hub) 上更是提供了數(shù)以千計的已經(jīng)構(gòu)建好的鏡像)。花點時間去學(xué)習(xí)一下專用術(shù)語和 Docker 用戶手冊會對你多有裨益,并且,不要在未經(jīng)安全檢查的的情況下運行從網(wǎng)上下載的代碼 - 非官方的鏡像有時候并沒有最新安全更新。如果你對鏡像有疑問,優(yōu)先選擇 官方的倉庫。
PHPDocker.io 網(wǎng)站能夠自動生成你所需要的 LAMP/LEMP 服務(wù)棧的所有文件,包含你所選擇的 PHP 版本和擴展模塊。