聊聊使用docker安裝nginx提供web服務(wù)的問(wèn)題
一、拉取鏡像
docker pull命令用于拉取應(yīng)用鏡像,docker pull nginx
命令用于拉取最新版本的nginx鏡像。下文為拉取鏡像過(guò)程的響應(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
這個(gè)網(wǎng)址拉取下來(lái)的。
使用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鏡像倉(cāng)庫(kù)及鏡像名稱,如果不顯示鏡像倉(cāng)庫(kù),默認(rèn)就是
docker.io
- TAG鏡像的版本或者是里程碑標(biāo)簽,latest表示最新版本
- IMAGE ID 鏡像的唯一標(biāo)識(shí)
- CREATED 這個(gè)鏡像被創(chuàng)建的時(shí)間
- SIZE表示鏡像文件的大小
二、運(yùn)行鏡像啟動(dòng)容器
通過(guò)docker run
命令啟動(dòng)一個(gè)容器,容器名稱為nginx-zimug。
# docker run -d --name nginx-zimug -p 80:80 nginx 81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
-d
表示容器在后臺(tái)運(yùn)行--name
為容器起一個(gè)名字-p
端口映射,格式為宿主機(jī)端口:容器端口
,上文中含義是將容器中的端口80映射到宿主機(jī)的端口80,對(duì)外提供訪問(wèn)服務(wù)。最后一個(gè)字段為鏡像名稱
瀏覽器HTTP協(xié)議訪問(wèn)宿主機(jī)的80端口,如果是80端口可以省略。得到的訪問(wèn)結(jié)果如下,說(shuō)明我們的nginx服務(wù)已經(jīng)啟動(dòng)成功了。
通過(guò)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)容是可以被修改的,但是一旦容器重啟,所有寫入到容器中的,針對(duì)數(shù)據(jù)文件、配置文件的修改都將丟失。所以為了保存容器的運(yùn)行狀態(tài),執(zhí)行結(jié)果,我們需要將容器內(nèi)的一些重要的數(shù)據(jù)文件、日志文件、配置文件映射到宿主機(jī)上。
以nginx為例,nginx有三個(gè)重要的文件目錄:
容器中路徑 | 宿主機(jī)中自定義映射路徑 | |
---|---|---|
存儲(chǔ)網(wǎng)站網(wǎng)頁(yè)的目錄 | /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;
將一個(gè)模擬的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> <h1>訪問(wèn)成功</h1> <p>厲害了!</p> </body> </html>
四、再次啟動(dòng)容器服務(wù)
-v
參數(shù)表達(dá)了宿主機(jī)文件與容器中文件的映射關(guān)系,格式為-v 宿主機(jī)目錄:容器文件系統(tǒng)目錄
。啟動(dòng)一個(gè)新的容器,容器的名字叫做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
在啟動(dòng)新容器之前,將nginx-zimug舊的容器刪掉。如果不刪除舊的容器,新容器的端口與舊容器端口會(huì)發(fā)生沖突。使用如下命令刪除容器:
docker stop nginx-zimug; docker rm nginx-zimug;
執(zhí)行上面的docker run
命令,啟動(dòng)新的容器。啟動(dòng)后通過(guò)瀏覽器訪問(wèn)宿主機(jī)80端口,響應(yīng)結(jié)果如下證明nginx正常提供web服務(wù)了。
同時(shí)可以在宿主機(jī)上修改nginx配置,也可以查看運(yùn)行時(shí)日志文件。修改結(jié)果會(huì)影響容器nginx服務(wù)的運(yùn)行,因?yàn)樗拗鳈C(jī)的配置文件與容器內(nèi)的配置文件存在映射關(guān)系。
到此這篇關(guān)于使用docker安裝nginx提供web服務(wù)的文章就介紹到這了,更多相關(guān)docker安裝nginx提供web服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker配置阿里云鏡像加速pull的實(shí)現(xiàn)
這篇文章主要介紹了Docker配置阿里云鏡像加速pull的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Docker 容器之間的互相通信實(shí)現(xiàn)示例
本文主要介紹了Docker 容器之間的互相通信實(shí)現(xiàn)示例,通過(guò)創(chuàng)建自定義網(wǎng)絡(luò),你可以輕松地在 Docker 容器之間建立通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01docker?搭建部署?YAPI?框架的詳細(xì)過(guò)程
Yapi是一個(gè)高效、易用、功能強(qiáng)大的接口文檔管理工具,旨在為開發(fā)、產(chǎn)品、測(cè)試人員提供更優(yōu)雅的接口管理服務(wù),可以幫助開發(fā)者輕松創(chuàng)建、發(fā)布、維護(hù)?AP,這篇文章主要介紹了docker?搭建部署?YAPI?框架,需要的朋友可以參考下2022-08-08理解Docker(1):Docker安裝和基礎(chǔ)用法詳細(xì)介紹
本篇文章主要是介紹了Docker 安裝和基礎(chǔ)用法,對(duì)于想要需要的Docker的同學(xué)可以了解一下。2016-11-11Docker容器簡(jiǎn)單部署nginx過(guò)程解析
這篇文章主要介紹了Docker容器簡(jiǎn)單部署nginx過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07dockerfile指令構(gòu)建docker鏡像的示例代碼
本文主要介紹了dockerfile指令構(gòu)建docker鏡像的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04