解決docker日志掛載的問題
關(guān)鍵是本地服務(wù)器沒有寫入的權(quán)限
關(guān)鍵看這里吧(Permission denied), 一直沒有看正方,以為是配置日志文件 找不到有問題,下面是部分異常
10:35:09,498 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(null,true) call failed. java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.log (Permission denied) at java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.log (Permission denied) at at java.io.FileOutputStream.open0(Native Method) at at java.io.FileOutputStream.open(FileOutputStream.java:270) at at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at at ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:26) at at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:204) at at ch.qos.logback.core.FileAppender.start(FileAppender.java:127) at at ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:100) at at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90) at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309) at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
嘗試好多遍,才真正看懂原因也是從網(wǎng)上看到的一點(diǎn)啟發(fā),希望大家也能注意到,我用如下命令完美解決
docker run -it --privileged=true -v /dockerlogs:/app/logs -d -p 5080:5080 82edb4bbc79b
掛載宿主機(jī)已存在目錄后,在容器內(nèi)對(duì)其進(jìn)行操作,報(bào)“Permission denied”
可通過兩種方式解決:
1> 關(guān)閉selinux。
臨時(shí)關(guān)閉:# setenforce 0
永久關(guān)閉:修改/etc/sysconfig/selinux文件,將SELINUX的值設(shè)置為disabled。
2> 以特權(quán)方式啟動(dòng)容器
指定--privileged參數(shù)
如:
# docker run -it --privileged=true -v /test:/softlogs
補(bǔ)充知識(shí):docker -v 掛載日志到宿主機(jī)
今天用docker拉了個(gè)vsftp的鏡像,運(yùn)行,想把這個(gè)容器的日志給掛載到宿主機(jī)上方便查看,結(jié)果日志怎么都不出來,百度找半天找不到原因。
最后發(fā)現(xiàn)是需要先在宿主機(jī)的掛載目錄下新建個(gè)和日志名稱一樣的文件,如下。
上面是我容器日志的位置
1、剛開始我是這樣運(yùn)行容器并掛載日志的(正常情況這樣是可以掛載出來的,但咱這個(gè)不是不正常么~~~),但日志怎么都不出來。
docker run -d -v /home/ftp:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /home/logs/:/var/log/vsftpd/ -e FTP_USER=cqs -e FTP_PASS=chaoshiye@2020 --name vsftpd fauria/vsftpd
2、實(shí)際解決辦法就是在宿主機(jī)掛載目錄下創(chuàng)建文件 vsftpd.log,然后再執(zhí)行上面的掛載,就會(huì)成功。
以上這篇解決docker日志掛載的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟
這篇文章主要介紹了Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08docker日常使用的實(shí)用小技巧總結(jié)(推薦)
docker是持續(xù)構(gòu)建應(yīng)用交付的一大利器也,但是要使工具發(fā)揮最大的功效還需要知道一些小技巧。下面這篇文章給大家主要總結(jié)介紹了關(guān)于docker日常使用的一些實(shí)用小技巧,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒。2017-09-09docker網(wǎng)卡的IP地址修改方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于docker網(wǎng)卡的IP地址修改方法,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06Docker鏡像的導(dǎo)入導(dǎo)出的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker鏡像的導(dǎo)入導(dǎo)出的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Docker Compose一鍵ELK部署的方法實(shí)現(xiàn)
這篇文章主要介紹了Docker Compose一鍵ELK部署的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01docker-compose 部署 Apollo 自定義環(huán)境的詳細(xì)教程
本篇文章給大家介紹docker-compose 部署 Apollo 自定義環(huán)境的詳細(xì)教程,而其中Config Service提供配置的讀取、推送等功能,服務(wù)對(duì)象是Apollo客戶端,對(duì)docker部署Apollo環(huán)境相關(guān)知識(shí)感興趣的朋友一起看看吧2021-06-06使用Docker啟動(dòng)mysql成功后,使用docker ps查不到的問題及解決
這篇文章主要介紹了使用Docker啟動(dòng)mysql成功后,使用docker ps查不到的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Skywalking?Docker單機(jī)環(huán)境搭建過程
這篇文章主要介紹了Skywalking?Docker單機(jī)環(huán)境搭建,本次搭建是基于MySQL進(jìn)行持久化,因此需要提前準(zhǔn)備好一個(gè)MySQL容器,需要的朋友可以參考下2024-02-02