DEV Community

Cover image for 給 PHP 開發者的 Docker 文件(六)
Leon
Leon

Posted on • Originally published at editor.leonh.space

2 2

給 PHP 開發者的 Docker 文件(六)

(本文譯自〈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;
}
Enter fullscreen mode Exit fullscreen mode

這是個基本(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;
Enter fullscreen mode Exit fullscreen mode

docker run

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

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

(待續…)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay