(本文譯自〈Docker for PHP Developers〉)

Nginx Docker容器(Container)

我們在實例化(instantiate)Nginx Docker 容器之前,需要先傳好虛擬主機的組態檔,在你的專案目錄下建立下面檔案 src/vhost.conf:

server {
  listen 80;
  index index.html;
  server_name docker.dev;
  error_log /var/log/nginx/error.log;
  access_log /var/log/nginx/access.log;
  root /var/www/public;
}

這是個基本(rudimentary)的 Nginx 虛擬主機,它會監聽 HTTP 80 埠的連入要求;它會回應對於主機名稱 docker.dev 的所有的 HTTP 要求;它把錯誤與存取紀錄輸出到指定的路徑檔案(並且這些檔案也符號連接(symlink)到容器的標準輸出與表準錯誤描述子(descriptor));它定義了網站根目錄在 /var/www/public。我們在實例化時會把這份虛擬主機組態檔案拷貝到我們的 Docker 容器內。

在你的專案根目錄內執行下面的 Bash 指令,實例化並且跑一個基於我們訂製的 tutorial/nginx Docker 映像的新的 Nginx Docker 容器。

docker run \
  -d \
  -p 8080:80 \
  -v $(pwd)/src/vhost.conf:/etc/nginx/sites-enabled/vhost.conf \
  -v $(pwd)/src:/var/www \
  tutorial/nginx;

docker run

我們使用旗標 -d 讓我們新的 Docker 容器在背景執行。

我們使用旗標 -p 來對映 Docker 母機(host)埠到容器埠,在本例中,我們叫 Docker 讓 Docker 母機(8080 埠)對映到 Docker 容器(80 埠)。

(待續…)