在本教程中,您將學習如何將 Nginx 作為 Docker 容器運行,并將其公開給您的本地網絡。此外,您將學習如何創建 Docker 數據卷以在容器和主機文件系統之間共享信息。
Nginx 是一種流行的開源軟件,用于 Web 服務、反向代理、緩存、負載平衡等。它非常流行并在當今許多高流量網站上使用。Docker 最常見的工作負載之一是使用它來容器化 Web 服務器。我們將向您展示如何使用 Nginx 進行設置。因此,讓我們帶您完成整個過程。
Docker 是一個容器化平臺,用于將您的應用程序打包成一個易于管理的容器映像。
先決條件
您必須滿足以下要求才能完成本教程:
Docker 應該已安裝并在您的系統上本地運行。
您需要一個 root 帳戶,或者用戶可以運行 sudo 命令。
在 Docker 中設置 Nginx
拉取鏡像
首先,我們將拉取官方的 Nginx 鏡像。在您的 docker 主機上,在終端上運行以下 Docker pull 命令以從 Docker hub下載 Nginx最新鏡像。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo docker pull nginx
輸出如下:
Using default tag: latest latest: Pulling from library/nginx e1acddbe380c: Pull complete e21006f71c6f: Pull complete f3341cc17e58: Pull complete 2a53fa598ee2: Pull complete 12455f71a9b5: Pull complete b86f2ba62d17: Pull complete Digest: sha256:4d4d96ac750af48c6a551d757c1cbfc071692309b491b70b2b8976e102dd3fef Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest
運行 Nginx Docker 容器
現在,我們已準備好運行 Nginx Docker 容器并將其端口公開給您的本地網絡。為此,我們使用以下命令運行鏡像:
linuxmi@linuxmi:~/www.linuxmi.com$ docker run -d -p 80:80 --name my-nginx-server nginx
輸出如下:
f204ea685629dbc1d09b4a2d5f6fb64f5ef84be7d58a1b7449cc144c65c90c92 docker: Error response from daemon: driver failed programming external connectivity on endpoint my-nginx-server (27d91a249b151ea87841c46775647d7af43d12c3e753061531173f05016e485b): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use.
-d– 以分離模式啟動容器(容器在后臺運行)。
-p– 將一個端口從容器綁定到主機(將主機流量端口 80 路由到容器端口 80)。
-name– 我們的 Docker 容器的名稱。
最后一個參數“nginx”告訴 Docker 容器使用哪個鏡像。
現在打開瀏覽器訪問http://localhost,您應該會看到一個 Nginx Web 服務器提供其默認網頁。
就是這樣。你有一個 NGINX 的工作實例,通過 Docker 容器。
列出 Docker 容器
要列出所有正在運行的Docker 容器,請執行以下命令:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo docker container ls -all
根據上面的輸出,我們可以使用以下兩種方法的其中一種停止我們的 Nginx Docker 容器:
linuxmi@linuxmi:~/www.linuxmi.com$ docker stop f204ea685629 f204ea685629 linuxmi@linuxmi:~/www.linuxmi.com$ docker stop my-nginx-server my-nginx-server
要查看所有容器,甚至那些未運行的容器,您需要添加-a標志。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo docker container ls -a
在 Nginx Docker 容器和主機之間共享數據
Docker 容器是短暫的。默認情況下,在容器內創建的任何數據僅在容器內且僅在容器運行時可用。
因此,讓我們向您展示如何在主機上訪問容器內部的數據。我們的目標是創建一個簡單的 HTML 文件,將其托管在容器中,并使用 Nginx Docker 容器將其提供給外部。此設置允許我們擁有在容器外部托管的持久網站內容。
為了實現這個功能,我們將使用Docker 中的綁定掛載功能。使用綁定掛載時,主機上的文件或目錄會掛載到容器中。
因此,讓我們首先在主目錄中為您的網站內容創建一個新目錄。
linuxmi@linuxmi:~/www.linuxmi.com$ mkdir ~/www
現在讓我們創建一個簡單的 HTML 文件并在您的索引頁面上放置一些文本。
linuxmi@linuxmi:~/www.linuxmi.com$ vim ~/www/index.html
編寫HTML代碼片段到里面。保存文件并退出 Vim。
接下來,我們將在容器上運行帶有附加卷的 Nginx Docker 容器/usr/share/nginx/html到當前保存文件的主機www目錄上index.html。
linuxmi@linuxmi:~/www.linuxmi.com$ docker run -d -p 80:80 -v ~/www:/usr/share/nginx/html/ --name my-nginx-server nginx
Nginx 容器默認設置為在/usr/share/nginx/html/.在上面的命令中,該-v選項設置了一個綁定掛載卷,它將 Nginx Docker 容器內部的目錄鏈接到主機上的目錄。/usr/share/nginx/html/~/www
Docker 使用 a:將主機路徑與容器路徑分開。主機路徑始終排在第一位。
現在,如果您瀏覽http://localhost,您將在顯示窗口上看到下面給出的輸出。
就這樣。您現在有一個正在運行的 Nginx Docker 容器,它為自定義網頁提供服務。
結論
Nginx 和 Docker 可以很好地協同工作。在本教程中,我們演示了如何設置和使用 Nginx Docker 容器。現在,您還知道如何在容器和主機文件系統之間共享信息。
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11380瀏覽量
211353 -
服務器
+關注
關注
12文章
9437瀏覽量
86511 -
容器
+關注
關注
0文章
502瀏覽量
22199 -
nginx
+關注
關注
0文章
158瀏覽量
12305 -
Docker
+關注
關注
0文章
496瀏覽量
12193
原文標題:如何在 Docker 容器中運行 Nginx
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何使用 Docker容器化技術
Nginx在Windows/docker中的使用

使用Windows中的Docker容器運行DL Streamer出現報錯怎么解決?
如何在Docker中創建容器
理解Docker容器并暢玩docker
分享比較實用的Docker技巧
Docker 教程:如何將Helix QAC作為容器創建并運行

docker容器與容器之間通信
docker進入容器的方法有哪些
docker容器有幾種狀態
華為 FlexusX 與 Docker+Nginx 的高效整合之路

評論