docker運(yùn)行nginx容器并掛載數(shù)據(jù)卷
容器數(shù)據(jù)卷(docker持久化):
類似掛載或共享存儲的功能,將容器的目錄映射到宿主機(jī)目錄上,使之?dāng)?shù)據(jù)共享并實現(xiàn)統(tǒng)一管理。防止容器被刪除數(shù)據(jù)丟失。
掛載目錄注意事項:
如果直接啟動nginx容器并指定掛在目錄,會出現(xiàn)將容器中的目錄清空的現(xiàn)象,所以需要先確認(rèn)容器中nginx的目錄結(jié)構(gòu),然后將容器中nginx的相關(guān)目錄或文件拷貝下來再啟動容器。
通過-v指定掛載目錄時會以宿主機(jī)的目錄為標(biāo)準(zhǔn),如果宿主機(jī)的目錄為空那么啟動容器后容器的目錄也是空的。
1、先啟動一個nginx容器并查看nginx的相關(guān)目錄和文件
(1) 啟動nginx容器
# docker container run -d --name="testnginx" nginx:latest
(2) 查看nginx相關(guān)目錄和文件
# docker container exec testnginx ls /etc/nginx/nginx.conf # 主配置文件路徑 /etc/nginx/nginx.conf # docker container exec testnginx ls /etc/nginx/conf.d # 默認(rèn)配置文件路徑 default.conf # docker container exec testnginx ls /usr/share/nginx/html # 站點(diǎn)目錄文件路徑 50x.html index.html # docker container exec testnginx ls /var/log/nginx # 日志文件路徑 access.log error.log
2、宿主機(jī)創(chuàng)建數(shù)據(jù)卷,并將容器中的文件或目錄拷貝到數(shù)據(jù)卷
(1) 創(chuàng)建主配置文件路徑并拷貝配置文件到宿主機(jī)
# mkdir /data/nginx/conf -p # 主配置文件路徑 # docker container cp testnginx:/etc/nginx/nginx.conf /data/nginx/conf/
(2) 將容器中的conf.d目錄拷貝到宿主機(jī)中
# docker container cp testnginx:/etc/nginx/conf.d /data/nginx/
(3) 將容器中站點(diǎn)目錄拷貝到宿主機(jī)
# docker container cp testnginx:/usr/share/nginx/html /data/nginx/
(4) 創(chuàng)建日志路徑(日志文件就不需要拷貝了)
# mkdir /data/nginx/logs
3、運(yùn)行nginx容器
掛載文件時,必須是一個存在的文件或目錄,比如nginx.conf,如果修改宿主機(jī)的nginx.conf,需要重啟容器才生效 # docker container run -d --restart=always -p 8000:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf.d:/etc/nginx/conf.d -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/logs:/var/log/nginx --name="nginx01" nginx:latest -------------------------------- docker container run -d # 后臺運(yùn)行nginx -p 8000:80 # 端口映射 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf # 映射nginx.conf配置文件,如果不指定宿主機(jī)掛載目錄docker會自動創(chuàng)建一個通過docker inspect查看 -v /data/nginx/conf.d:/etc/nginx/conf.d # 映射conf.d目錄 -v /data/nginx/html:/usr/share/nginx/html # 映射html目錄 -v /data/nginx/logs:/var/log/nginx # 映射日志目錄
4、修改數(shù)據(jù)卷中的內(nèi)容
# cd /data/nginx/html/
# echo "hello nginx" > index.html
[root@docker-106 nginx]# cat /data/nginx/conf.d/test.conf
server {
listen 80;
server_name www.test.com;
access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
}
5、重啟容器并訪問nginx服務(wù)
# docker container restart nginx01 # docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES acf1b99cdabc nginx:latest "/docker-entrypoin..." 16 minutes ago Up 4 seconds 0.0.0.0:8000->80/tcp nginx01 # curl 192.168.1.106:8000 hello nginx
到此這篇關(guān)于docker運(yùn)行nginx容器并掛載數(shù)據(jù)卷的文章就介紹到這了,更多相關(guān)docker運(yùn)行nginx掛載數(shù)據(jù)卷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一次dockerfile的循環(huán)依賴錯誤實戰(zhàn)記錄
Dockerfile 是一個文本文件,其內(nèi)包含了一條條的指令,每一條指令構(gòu)建一層,因此每一條指令的內(nèi)容,就是描述該層應(yīng)當(dāng)如何構(gòu)建,這篇文章主要介紹了使用Docker多階段構(gòu)建時遇到的循環(huán)依賴問題及其解決方法,,需要的朋友可以參考下2025-02-02
docker使用storage出現(xiàn)Exit導(dǎo)致文件無法上傳服務(wù)器的問題及解決方案
這篇文章主要介紹了docker使用storage出現(xiàn)Exit導(dǎo)致文件無法上傳服務(wù)器解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
Docker安裝MongoDB并使用Navicat連接的操作方法
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,MongoDB最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,這篇文章主要介紹了Docker安裝MongoDB并使用Navicat連接,需要的朋友可以參考下2022-10-10
將修改后的Docker容器保存為鏡像并導(dǎo)出為tar文件的流程步驟
在使用Docker的過程中,我們經(jīng)常需要對現(xiàn)有的容器進(jìn)行一些修改,然后希望將這些更改保存下來以便日后使用或者分享給他人,這篇文章將會教你如何一步步地將修改后的容器保存為一個新的Docker鏡像,并將其導(dǎo)出為一個.tar文件,需要的朋友可以參考下2026-01-01
Docker實現(xiàn)同Ip網(wǎng)段聯(lián)通的實現(xiàn)
這篇文章主要介紹了Docker實現(xiàn)同Ip網(wǎng)段聯(lián)通的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細(xì)步驟
現(xiàn)如今,通過 Docker 容器化部署環(huán)境已經(jīng)逐漸成為主流,特別是在部署像 LAMP 這樣的復(fù)雜環(huán)境時,本教程旨在帶您完成使用 Docker-Compose 建立 LAMP 環(huán)境的整個過程,同時還包括定制 PHP 環(huán)境的步驟,需要的朋友可以參考下2024-12-12
Docker?環(huán)境?Nacos2?MySQL8的詳細(xì)操作
本文介紹?docker?環(huán)境下安裝并單機(jī)運(yùn)行?Nacos2,使用?docker?環(huán)境下的?MySQL?8?存儲數(shù)據(jù)?,對Docker?環(huán)境?Nacos2?MySQL8相關(guān)知識感興趣的朋友跟隨小編一起看看吧2022-09-09
Docker部署SpringBoot項目,本地運(yùn)行正常,部署至服務(wù)器報錯zip file close
這篇文章主要介紹了Docker部署SpringBoot項目,本地運(yùn)行正常,部署至服務(wù)器報錯zip file closed問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

