溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用docker安裝nginx提供的web服務(wù)

發(fā)布時間:2022-04-02 15:44:09 來源:億速云 閱讀:157 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了怎么使用docker安裝nginx提供的web服務(wù)的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么使用docker安裝nginx提供的web服務(wù)文章都會有所收獲,下面我們一起來看看吧。

一、拉取鏡像

docker pull命令用于拉取應(yīng)用鏡像,docker pull nginx命令用于拉取最新版本的nginx鏡像。下文為拉取鏡像過程的響應(yīng)結(jié)果:

# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
c229119241af: Pull complete 
2215908dc0a2: Pull complete 
08c3cb2073f1: Pull complete 
18f38162c0ce: Pull complete 
10e2168f148a: Pull complete 
c4ffe9532b5f: Pull complete 
Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

從上文我們可以看出nginx鏡像是從docker.io這個網(wǎng)址拉取下來的。

使用docker images命令可以查看當(dāng)前操作系統(tǒng)中下載了哪些鏡像文件。

# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    12766a6745ee   33 hours ago   142MB
hello-world   latest    feb5d9fea6a5   6 months ago   13.3kB
  • REPOSITORY鏡像倉庫及鏡像名稱,如果不顯示鏡像倉庫,默認(rèn)就是docker.io

  • TAG鏡像的版本或者是里程碑標(biāo)簽,latest表示最新版本

  • IMAGE ID 鏡像的唯一標(biāo)識

  • CREATED 這個鏡像被創(chuàng)建的時間

  • SIZE表示鏡像文件的大小

二、運(yùn)行鏡像啟動容器

通過docker run命令啟動一個容器,容器名稱為nginx-zimug。

# docker run -d --name nginx-zimug -p  80:80  nginx
81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
  • -d表示容器在后臺運(yùn)行

  • --name為容器起一個名字

  • -p端口映射,格式為宿主機(jī)端口:容器端口,上文中含義是將容器中的端口80映射到宿主機(jī)的端口80,對外提供訪問服務(wù)。最后一個字段為鏡像名稱

瀏覽器HTTP協(xié)議訪問宿主機(jī)的80端口,如果是80端口可以省略。得到的訪問結(jié)果如下,說明我們的nginx服務(wù)已經(jīng)啟動成功了。

怎么使用docker安裝nginx提供的web服務(wù)

通過docker ps可以查看正在運(yùn)行中的容器,如下所示:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                               NAMES
81bb1211144b   nginx     "/docker-entrypoint.…"   11 minutes ago   Up 11 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx-zimug

三、文件映射

首先明確的是容器中的文件內(nèi)容是可以被修改的,但是一旦容器重啟,所有寫入到容器中的,針對數(shù)據(jù)文件、配置文件的修改都將丟失。所以為了保存容器的運(yùn)行狀態(tài),執(zhí)行結(jié)果,我們需要將容器內(nèi)的一些重要的數(shù)據(jù)文件、日志文件、配置文件映射到宿主機(jī)上。
以nginx為例,nginx有三個重要的文件目錄:

 容器中路徑宿主機(jī)中自定義映射路徑
存儲網(wǎng)站網(wǎng)頁的目錄/usr/share/nginx/html/root/nginx/html
nginx配置文件目錄/etc/nginx/nginx.conf/root/nginx/conf/nginx.conf
日志目錄/var/log/nginx/root/nginx/logs

在宿主機(jī)中新建文件目錄

mkdir -p  /root/nginx/logs  /root/nginx/html  /root/nginx/conf;

將容器中的文件copy到宿主機(jī)中
將nginx配置文件copy到宿主機(jī)中

docker cp nginx-zimug:/etc/nginx/nginx.conf /root/nginx/conf;

將一個模擬的html文件放入html目錄
將下面的文件保存為index.html放入宿主機(jī)的/root/nginx/html目錄,因?yàn)榇嬖谟成潢P(guān)系,實(shí)際上也是放入了容器的/usr/share/nginx/html目錄。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用docker搭建nginx web服務(wù)</title>
</head>
<body>
    <h2>訪問成功</h2>
    <p>厲害了!</p>
</body>
</html>

四、再次啟動容器服務(wù)

-v參數(shù)表達(dá)了宿主機(jī)文件與容器中文件的映射關(guān)系,格式為-v 宿主機(jī)目錄:容器文件系統(tǒng)目錄。啟動一個新的容器,容器的名字叫做nginx-prod

docker run -d -p 80:80 \
--name nginx-prod \
-v /root/nginx/html:/usr/share/nginx/html \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/logs:/var/log/nginx  nginx

在啟動新容器之前,將nginx-zimug舊的容器刪掉。如果不刪除舊的容器,新容器的端口與舊容器端口會發(fā)生沖突。使用如下命令刪除容器:

docker stop nginx-zimug;
docker rm nginx-zimug;

執(zhí)行上面的docker run命令,啟動新的容器。啟動后通過瀏覽器訪問宿主機(jī)80端口,響應(yīng)結(jié)果如下證明nginx正常提供web服務(wù)了。

怎么使用docker安裝nginx提供的web服務(wù)

同時可以在宿主機(jī)上修改nginx配置,也可以查看運(yùn)行時日志文件。修改結(jié)果會影響容器nginx服務(wù)的運(yùn)行,因?yàn)樗拗鳈C(jī)的配置文件與容器內(nèi)的配置文件存在映射關(guān)系。

怎么使用docker安裝nginx提供的web服務(wù)

關(guān)于“怎么使用docker安裝nginx提供的web服務(wù)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“怎么使用docker安裝nginx提供的web服務(wù)”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI