Docker - 設置 NGINX

你好,未來的 Docker 大師!今天,我們將踏上一段令人興奮的旅程,進入 Docker 和 NGINX 的世界。作為你們親切的小區計算機科學老師,我非常高興能夠引導你們進行這次冒險。如果你是編程新手,別擔心——我們會從基礎開始,逐步學習。那麼,來一杯咖啡(或者如果你喜歡,來一杯茶),我們一起來深入探討吧!

Docker - Setting NGINX

什麼是 Docker?

在我們深入了解如何使用 Docker 設置 NGINX 之前,我們先來了解一下 Docker 是什麼。想像你正在搬家到一個新房子。你不是把所有財物打包到不同的盒子裡,並希望它們能在你的新家放下,Docker 讓你把整個房間——包括傢俱、裝飾等——打包到一個獨立、便携的容器中。這就是 Docker 對軟件所做的!

Docker 是一個平台,讓你可以將你的應用程序和所有相依性打包到一個稱為容器的標準化單元中。這些容器可以在任何系統上 consistent 地運行,無論底層基礎設施如何。酷不酷?

什麼是 NGINX?

現在,讓我們來談談 NGINX(發音為 "engine-x")。NGINX 就像是你網絡應用程序的超高效交通警察。它是一個流行的網絡伺服器,也可以作為反向代理、負載均衡器和 HTTP 缓存。簡單來說,它幫助管理和指導網絡流量,確保你的網絡應用程序運行順暢和高效。

使用 Docker 設置 NGINX

好了,現在我們已完成介紹,讓我們挽起袖子,開始一些真實的編程吧!

步驟 1:安裝 Docker

首先,我們需要在系統上安裝 Docker。安裝過程會根據你的操作系統有所不同,但你可以從官方 Docker 網站找到詳細的安裝說明。一旦你安裝了 Docker,打開終端或命令提示符,我們來驗證安裝:

docker --version

如果你看到了版本號,恭喜你!你已經成功安裝了 Docker。

步驟 2:從 Docker Hub 拉取 NGINX 镜像

現在,讓我們從 Docker Hub 拉取官方的 NGINX 镜像。可以把 Docker Hub 想像成一個巨大的預先構建的容器镜像庫。我們將使用以下命令:

docker pull nginx

這個命令告訴 Docker 下載最新的 NGINX 镜像。這就像去圖書館借一本關於 NGINX 的書一樣!

步驟 3:在 Docker 容器中運行 NGINX

現在來到令人興奮的部分——在 Docker 容器中運行 NGINX。我們將使用以下命令:

docker run --name my-nginx -p 80:80 -d nginx

讓我們來分解一下:

  • docker run:這告訴 Docker 運行一個容器
  • --name my-nginx:我們給我們的容器取一個名字
  • -p 80:80:這將容器的端口 80 映射到主機的端口 80
  • -d:這讓容器以分離模式運行(在背景中)
  • nginx:這指定了我們想要使用的镜像

運行這個命令後,你應該能夠打開瀏覽器並導航到 http://localhost 來看到默認的 NGINX 欢迎页面。這是多麼酷啊?你已經用一個命令設置了一個網絡伺服器!

步驟 4:自定義 NGINX 配置

現在,假設你想要自定義你的 NGINX 配置。我們可以通過創建我們自己的 Dockerfile 來做到這點。創建一個名為 Dockerfile(無副檔名)的新文件,並添加以下內容:

FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf

這個 Dockerfile 做了兩件事:

  1. 它從官方 NGINX 镜像開始
  2. 它將我們的自定義 nginx.conf 文件複製到容器中

現在,在同一個目錄中創建一個名為 nginx.conf 的文件,並將你想要的 NGINX 配置放入其中。以下是一個簡單的例子:

events {
worker_connections 1024;
}

http {
server {
listen 80;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}

步驟 5:構建和運行我們的自定義 NGINX 容器

現在我們有了 Dockerfile 和自定義配置,讓我們構建我們的镜像:

docker build -t my-custom-nginx .

最後,讓我們運行我們的自定義 NGINX 容器:

docker run --name my-custom-nginx -p 80:80 -d my-custom-nginx

Voila!你現在有一個在 Docker 容器中運行的自定義 NGINX 伺服器。

有用的 Docker 命令

以下是一些你可能會找到有用的 Docker 命令:

命令 描述
docker ps 列出運行的容器
docker ps -a 列出所有容器(包括停止的容器)
docker stop <container_id> 停止一個運行的容器
docker start <container_id> 開始一個停止的容器
docker rm <container_id> 刪除一個容器
docker images 列出所有镜像
docker rmi <image_id> 刪除一個镜像
docker logs <container_id> 查看容器日誌

結論

就是这样,各位!我們已經從了解 Docker 和 NGINX 的基礎知識,到在 Docker 容器中設置和自定義我們自己的 NGINX 伺服器。記住,熟練是需要練習的,所以不要害怕嘗試不同的配置。

在我多年的教學經驗中,我發現最好的學習方法是親自動手做。所以,我鼓勵你們去嘗試我們今天學到的知識。嘗試更改 NGINX 配置,或者也許設置多個運行不同服務的容器。可能性是無限的!

當我們結束時,我想到一個學生曾經告訴我:“Docker 起初看起來像魔法,但現在我看到它只是非常聰明的工程。”我希望這個教程也能幫助你揭開 Docker 和 NGINX 的神秘面紗。

直到下次,快樂 Docker 化!

Credits: Image by storyset