0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Docker容器中運(yùn)行Nginx

jf_ZqFkd6Up ? 來(lái)源:linux迷 ? 2023-02-17 09:30 ? 次閱讀

在本教程中,您將學(xué)習(xí)如何將 Nginx 作為 Docker 容器運(yùn)行,并將其公開給您的本地網(wǎng)絡(luò)。此外,您將學(xué)習(xí)如何創(chuàng)建 Docker 數(shù)據(jù)卷以在容器和主機(jī)文件系統(tǒng)之間共享信息。

Nginx 是一種流行的開源軟件,用于 Web 服務(wù)、反向代理、緩存、負(fù)載平衡等。它非常流行并在當(dāng)今許多高流量網(wǎng)站上使用。Docker 最常見的工作負(fù)載之一是使用它來(lái)容器化 Web 服務(wù)器。我們將向您展示如何使用 Nginx 進(jìn)行設(shè)置。因此,讓我們帶您完成整個(gè)過(guò)程。

Docker 是一個(gè)容器化平臺(tái),用于將您的應(yīng)用程序打包成一個(gè)易于管理的容器映像。

先決條件

您必須滿足以下要求才能完成本教程:

Docker 應(yīng)該已安裝并在您的系統(tǒng)上本地運(yùn)行。

您需要一個(gè) root 帳戶,或者用戶可以運(yùn)行 sudo 命令。

在 Docker 中設(shè)置 Nginx

拉取鏡像

首先,我們將拉取官方的 Nginx 鏡像。在您的 docker 主機(jī)上,在終端上運(yùn)行以下 Docker pull 命令以從 Docker hub下載 Nginx最新鏡像。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo docker pull nginx

ffa76b2a-ae16-11ed-bfe3-dac502259ad0.png

輸出如下:

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

運(yùn)行 Nginx Docker 容器

現(xiàn)在,我們已準(zhǔn)備好運(yùn)行 Nginx Docker 容器并將其端口公開給您的本地網(wǎng)絡(luò)。為此,我們使用以下命令運(yùn)行鏡像:

linuxmi@linuxmi:~/www.linuxmi.com$ docker run -d -p 80:80 --name my-nginx-server nginx

ffd9a5c2-ae16-11ed-bfe3-dac502259ad0.png

輸出如下:

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– 以分離模式啟動(dòng)容器(容器在后臺(tái)運(yùn)行)。

-p– 將一個(gè)端口從容器綁定到主機(jī)(將主機(jī)流量端口 80 路由到容器端口 80)。

-name– 我們的 Docker 容器的名稱。

最后一個(gè)參數(shù)“nginx”告訴 Docker 容器使用哪個(gè)鏡像。

現(xiàn)在打開瀏覽器訪問(wèn)http://localhost,您應(yīng)該會(huì)看到一個(gè) Nginx Web 服務(wù)器提供其默認(rèn)網(wǎng)頁(yè)。

00137a54-ae17-11ed-bfe3-dac502259ad0.png

就是這樣。你有一個(gè) NGINX 的工作實(shí)例,通過(guò) Docker 容器。

列出 Docker 容器

要列出所有正在運(yùn)行的Docker 容器,請(qǐng)執(zhí)行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo docker container ls -all

00727d2e-ae17-11ed-bfe3-dac502259ad0.png

根據(jù)上面的輸出,我們可以使用以下兩種方法的其中一種停止我們的 Nginx Docker 容器:

linuxmi@linuxmi:~/www.linuxmi.com$ docker stop f204ea685629
f204ea685629
linuxmi@linuxmi:~/www.linuxmi.com$ docker stop my-nginx-server
my-nginx-server

00bf491a-ae17-11ed-bfe3-dac502259ad0.png

要查看所有容器,甚至那些未運(yùn)行的容器,您需要添加-a標(biāo)志。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo docker container ls -a

00dfdc66-ae17-11ed-bfe3-dac502259ad0.png

在 Nginx Docker 容器和主機(jī)之間共享數(shù)據(jù)

Docker 容器是短暫的。默認(rèn)情況下,在容器內(nèi)創(chuàng)建的任何數(shù)據(jù)僅在容器內(nèi)且僅在容器運(yùn)行時(shí)可用。

因此,讓我們向您展示如何在主機(jī)上訪問(wèn)容器內(nèi)部的數(shù)據(jù)。我們的目標(biāo)是創(chuàng)建一個(gè)簡(jiǎn)單的 HTML 文件,將其托管在容器中,并使用 Nginx Docker 容器將其提供給外部。此設(shè)置允許我們擁有在容器外部托管的持久網(wǎng)站內(nèi)容。

為了實(shí)現(xiàn)這個(gè)功能,我們將使用Docker 中的綁定掛載功能。使用綁定掛載時(shí),主機(jī)上的文件或目錄會(huì)掛載到容器中。

因此,讓我們首先在主目錄中為您的網(wǎng)站內(nèi)容創(chuàng)建一個(gè)新目錄。

linuxmi@linuxmi:~/www.linuxmi.com$ mkdir ~/www

現(xiàn)在讓我們創(chuàng)建一個(gè)簡(jiǎn)單的 HTML 文件并在您的索引頁(yè)面上放置一些文本。

linuxmi@linuxmi:~/www.linuxmi.com$ vim ~/www/index.html

01098994-ae17-11ed-bfe3-dac502259ad0.png

編寫HTML代碼片段到里面。保存文件并退出 Vim。

接下來(lái),我們將在容器上運(yùn)行帶有附加卷的 Nginx Docker 容器/usr/share/nginx/html到當(dāng)前保存文件的主機(jī)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 容器默認(rèn)設(shè)置為在/usr/share/nginx/html/.在上面的命令中,該-v選項(xiàng)設(shè)置了一個(gè)綁定掛載卷,它將 Nginx Docker 容器內(nèi)部的目錄鏈接到主機(jī)上的目錄。/usr/share/nginx/html/~/www

Docker 使用 a:將主機(jī)路徑與容器路徑分開。主機(jī)路徑始終排在第一位。

現(xiàn)在,如果您瀏覽http://localhost,您將在顯示窗口上看到下面給出的輸出。

01329ca8-ae17-11ed-bfe3-dac502259ad0.png

就這樣。您現(xiàn)在有一個(gè)正在運(yùn)行的 Nginx Docker 容器,它為自定義網(wǎng)頁(yè)提供服務(wù)。

結(jié)論

Nginx 和 Docker 可以很好地協(xié)同工作。在本教程中,我們演示了如何設(shè)置和使用 Nginx Docker 容器?,F(xiàn)在,您還知道如何在容器和主機(jī)文件系統(tǒng)之間共享信息。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208717
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8958

    瀏覽量

    85081
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    492

    瀏覽量

    22027
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    142

    瀏覽量

    12154
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    453

    瀏覽量

    11792

原文標(biāo)題:如何在 Docker 容器中運(yùn)行 Nginx

文章出處:【微信號(hào):Linux迷,微信公眾號(hào):Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用 Docker容器化技術(shù)

    一起打包,形成一個(gè)獨(dú)立的、可移植的容器。這些容器可以在任何支持 Docker 的平臺(tái)上運(yùn)行,無(wú)論是開發(fā)環(huán)境、測(cè)試環(huán)境,還是生產(chǎn)環(huán)境,都能保持一致的運(yùn)
    的頭像 發(fā)表于 09-30 11:24 ?1.6w次閱讀

    Nginx在Windows/docker的使用

    nginx 是一個(gè)高性能的開源反向代理服務(wù)器和 web 服務(wù)器,一般用來(lái)搭建靜態(tài)資源服務(wù)器、負(fù)載均衡器、反向代理,本文將分享其在 Windows/docker 的使用,使用 nssm 部署成服務(wù)的方案腳本,局域網(wǎng)
    的頭像 發(fā)表于 01-03 10:20 ?1715次閱讀
    <b class='flag-5'>Nginx</b>在Windows/<b class='flag-5'>docker</b><b class='flag-5'>中</b>的使用

    ARM平臺(tái)實(shí)現(xiàn)Docker容器技術(shù)

    及依賴包到一個(gè)可移植的鏡像,然后發(fā)布到任何流行的Linux或Windows機(jī)器上,亦可實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)
    發(fā)表于 07-17 11:05

    何在Docker創(chuàng)建容器

    、OpenStack 集群和其他的基礎(chǔ)應(yīng)用平臺(tái)。為了方便用戶使用和管理Docker容器,鐵威馬在TOS 4.0系統(tǒng)Docker 設(shè)計(jì)了一套友好的用戶界面,請(qǐng)參照相關(guān)幫助文件的指引
    發(fā)表于 01-03 15:58

    docker安裝nginx的詳細(xì)過(guò)程

    Centos7安裝nginx(二)之docker安裝nginx
    發(fā)表于 10-23 17:10

    Docker的端口映射和nginx安裝流程

    Docker的端口映射和nginx安裝
    發(fā)表于 04-14 11:44

    Docker端口映射和nginx安裝

    Docker的端口映射和nginx安裝
    發(fā)表于 04-17 11:44

    理解Docker容器并暢玩docker

    創(chuàng)建a1_rm容器呢?還是運(yùn)行之前的命令docker run -it --name a1_rm alpine哈哈,a1_rm又滿血復(fù)活了,是不是很棒?-------------此外,如果容器
    發(fā)表于 11-05 09:54

    分享比較實(shí)用的Docker技巧

    1、docker top該命令是用來(lái)查看一個(gè)容器里面的進(jìn)程信息的,比如你想查看一個(gè)nginx容器里面有幾個(gè)nginx進(jìn)程的時(shí)候,可以執(zhí)行如下
    發(fā)表于 12-13 06:40

    Docker容器管理命令(一)

    1、Docker容器管理命令的使用方法查看當(dāng)前主機(jī)本地docker鏡像:啟動(dòng)容器必須依賴鏡像,所以要獲取到鏡像的唯一標(biāo)識(shí)docker
    發(fā)表于 04-20 17:55

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量刪除docker 容器docker cp命令docker
    發(fā)表于 04-21 11:31

    Docker 教程:如何將Helix QAC作為容器創(chuàng)建并運(yùn)行

    在此 Docker 教程,你將學(xué)習(xí)如何創(chuàng)建 Helix QAC 并將其作為容器化鏡像運(yùn)行。 Docker 的基本定義是一種開源和流行的操作
    的頭像 發(fā)表于 10-31 09:36 ?911次閱讀
    <b class='flag-5'>Docker</b> 教程:如何將Helix QAC作為<b class='flag-5'>容器</b>創(chuàng)建并<b class='flag-5'>運(yùn)行</b>

    docker容器容器之間通信

    Docker是一種輕量級(jí)容器化技術(shù),能夠?qū)?yīng)用程序及其依賴項(xiàng)封裝在一個(gè)獨(dú)立、可移植的容器。而容器化的應(yīng)用程序通常是以分布式方式設(shè)計(jì)的,因此
    的頭像 發(fā)表于 11-23 09:36 ?1425次閱讀

    docker進(jìn)入容器的方法有哪些

    執(zhí)行命令。其基本用法為: docker exec -it 容器名稱/容器ID 命令 例如,執(zhí)行以下命令進(jìn)入正在運(yùn)行
    的頭像 發(fā)表于 11-23 09:45 ?1w次閱讀

    docker容器有幾種狀態(tài)

    Docker 是一種流行的容器化平臺(tái),它能夠幫助開發(fā)人員將應(yīng)用程序和其依賴打包成一個(gè)獨(dú)立的容器,并且能夠在不同的環(huán)境中進(jìn)行部署和運(yùn)行。在 Docke
    的頭像 發(fā)表于 11-23 09:50 ?2073次閱讀