Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實作虛拟化。
我用docker做什麼?
快速搭建開發所需環境,測試實驗新元件(如rabbitmq,kafka).避免因安裝而浪費太多時間,我的目的是快速嘗試使用。
安裝docker
brew cask install docker
docker-compose
Compose 是一個使用者定義和運作多個容器的 Docker 應用程式。在 Compose 中你可以使用 YAML 檔案來配置你的應用服務。然後,隻需要一個簡單的指令,就可以建立并啟動你配置的所有服務。
目錄結構

一組服務建立一個目錄
配置檔案
version: '2'
services:
php7.2:
image: php:7.2-fpm
ports:
- "9000:9000"
volumes:
- ./php:/usr/local/etc/php
- /Users/caowenpeng/www:/www
nginx:
image: nginx
ports:
- "80:80"
volumes:
- /Users/caowenpeng/www:/www
- ./nginx:/etc/nginx
啟動
docker-compose up -d
常用指令
指令 | 說明 |
---|---|
up | 建立和啟動容器 |
ps | 列出所有容器 |
down | 停止并删除容器,鏡像,挂載 |
start | 啟動服務 |
stop | 停止服務 |
restart | 重新開機服務 |
第一次使用up,之後使用start,如果再次使用up将會重新建立容器,一些對容器的修改将會丢失
其他問題
進入容器
docker-compose exec php7.2 bash
進入容器後會發現隻能用少量指令,連ps等都沒有,這個時候需要安裝一些程式
apt-get update ##更新元
apt-get install procps ## 安裝 ps
安裝php-rdkafka拓展
apt-get install wget
wget https://github.com/edenhill/librdkafka/archive/master.zip
apt-get install unzip
unzip master.zip
cd librdkafka
./configure
make
make install
pecl install http://pecl.php.net/get/rdkafka-3.0.4.tgz
#在php.ini 配置啟用 rdkafka拓展