在docker中进行日志切割

news2024/9/22 7:34:53

先在Linux中安装docker,然后在docker中安装appnode面板,并进行docker网络端口映射。接着进入docker,进行nginx日志切割。

安装docker

第一步,卸载旧版本docker。

若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。

命令:yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

第二步,安装gcc依赖。

命令:yum -y install gcc gcc-c++

第三步,使用docker仓库进行安装。

在新主机上首次安装docker Engine-Community之前,需要设置docker仓库。之后,可以从仓库安装和更新docker。

# 设置仓库,安装所需的软件包。

命令:yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置稳定的仓库,使用官方源地址(比较慢)

命令:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 可以选择国内的一些源地址,如阿里云

命令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 可以选择国内的一些源地址,如清华大学源

命令:yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

第四步,安装docker Engine-Community。

# 更新yum软件包索引

命令:yum makecache

# 安装最新版本的docker Engine-Community和containerd

命令:yum -y install docker-ce docker-ce-cli containerd.io

# 查看docker-ce是否成功安装

命令:yum list docker-ce

 

docker安装完默认未启动,并且已经创建好docker用户组,但该用户组下没有用户。

# 列出存储库中可用的版本并按版本号从高到低进行排序

命令:yum list docker-ce --showduplicates | sort -r

# 通过其完整的软件包名称安装特定版本,如docker-ce-24.0.0。

命令:yum -y install docker-ce-24.0.0 docker-ce-cli-24.0.0 containerd.io

第五步,启动docker。

命令:systemctl enable docker

systemctl start docker

systemctl restart docker

若结果显示“Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.”,则运行如下命令:

systemctl daemon-reload

systemctl restart docker.service

第六步,验证docker Engine-Community是否正确安装。

命令:docker version

docker run hello-world

若结果显示“Unable to find image 'hello-world:latest' locally”,则需要按照下面的步骤来解决:

1)创建文件daemon.json文件。

命令:touch /etc/docker/daemon.json

2)配置文件/etc/docker/daemon.json,添加阿里云镜像。

 

{

"registry-mirrors": ["https://ufxq8t1x.mirror.aliyuncs.com"]

}

3)重启docker服务。

命令:systemctl restart docker

systemctl status docker

再次验证:docker run hello-world

若结果显示“Hello from docker!”,则说明docker安装成功。

进行docker网络端口映射

第一步,创建执行网络端口映射容器。

# 设置面板端口号为8888

命令:docker run -dit --restart=always \

--privileged=true \

--cap-add SYS_ADMIN \

-e container=docker \

--network bridge \

-p 8888:8888 \

-p 443:443 \

-p 80:80 \

-p 3306:3306 \

-p 21:21 \

-v /data:/data \

--name appnode \

sbwml/appnode:latest \

/usr/sbin/init

第二步,列出本地所有的镜像。

命令:docker images -a

第三步,列出当前所有正在运行的镜像。

命令:docker images

第四步,从docker中删除镜像。

命令:docker rmi [镜像ID或容器名称]

# 从docker中强制删除镜像

命令:docker rmi -f [镜像ID或容器名称]

# 通过docker images -p查询到的镜像ID来删除所有镜像

命令:docker rmi -f $(docker images -p)

第五步,列出所有的容器。

命令:docker ps -a

第六步,列出当前所有正在运行的容器。

命令:docker ps

第七步,删除容器。

命令:docker rm [容器ID或容器名称]

# 从docker中强制删除容器

命令:docker rm -f [容器ID或容器名称]

# 删除多个容器

命令:docker rm -f $(docker ps -a -q)

第八步,访问appnode面板。

登录网址:http://x.x.x.x:8888/login,如果页面成功显示“APPNODE 轻松运维 从此开启”,则说明appnode面板安装成功并且docker网络端口映射成功。

利用原始账号:admin,原始密码:admin,登录appnode面板。

 

登录appnode面板之后,可以点击页面左上角“节点管理”,然后安装受控端,确保受控端在线以及实时监控CPU、内存、存储和网络。

 

登录appnode面板之后,点击左侧“应用列表”中的“软件管家”,然后点击“网站管理”的安装按钮,接着点击“立即安装”。

 

若结果显示“patch-2.7.1-12.el7_7.x86_64: [Errno 256] No more mirrors to try.”和“[Errno 14] HTTP Error 404 - Not Found”,则可以通过下面的方法来解决这个问题:

1)进入appnode容器。

命令:docker ps

docker exec -it [容器ID] /bin/bash

2)进入/etc目录,备份yum.repos.d。

命令:mv /etc/yum.repos.d /etc/yum.repos.d.bak

3)下载上传新的yum.repos.d。

 

4)退出appnode容器。

5)重启docker服务。

6)登录appnode面板之后,重新下载网站管理。

若结果如下图所示,则说明网站管理安装成功。

 

接下来,按照上面的步骤安装nginx和php。

进行nginx日志切割

第一步,进入/var/lib/docker/overlay2/xxxxxxxxx/merged目录,一一查看有没有下面的文件夹以及文件,如果该目录下没有下面的文件夹以及文件,那么需要下载上传下面的文件夹以及文件到对应的目录下面:

/etc/cron.d

/etc/cron.daily

/etc/cron.hourly

/etc/cron.monthly

/etc/cron.weekly

/etc/pam.d/crond

/etc/sysconfig/crond

/etc/systemd/system/multi-user.target.wants/crond.service

/etc/anacrontab

/etc/crontab

/etc/logrotate.conf

/usr/bin/crontab

/usr/lib/systemd/system/crond.service

/usr/sbin/crond

/usr/sbin/logrotate

/var/lib/logrotate/logrotate.status

第二步,配置/etc/cron.daily。

编辑/etc/cron.daily,把“/usr/bin/logger -t logrotate”修改为“/usr/bin/logger -f logrotate”。

第三步,重启docker服务。

命令:命令:systemctl restart docker

systemctl status docker

第四步,进入appnode容器。

命令:docker ps

docker exec -it [容器ID] /bin/bash

第五步,赋予crontab和crond可执行权限。

命令:chmod +x /usr/bin/crontab

chmod +x /usr/sbin/crond

chmod +x /usr/sbin/logrotate

第六步,强制切割nginx日志。

命令:/etc/cron.daily/logrotate -f /etc/logrotate.d/nginx

若/var/log/nginx中的日志可以正常切割,则说明在docker可以强制切割nginx日志。

第七步,进行定时设置。

命令:crontab -e

添加以下代码:

55 23 * * * /usr/sbin/logrotate -f /etc/logrotate.conf

# 查看是否写入

命令:crontab -l

# 重新启动定时任务

命令:systemctl restart crond

# 查看nginx日志切分的效果

命令:ll /var/log/nginx

卸载docker

# 卸载docker

命令:systemctl stop docker

yum remove docker-ce docker-ce-cli containerd.io

# 删除安装包

命令:yum remove docker-ce

# 删除镜像、容器、配置文件等内容

命令:rm -rf /var/lib/docker

rm -rf /var/lib/containerd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型在资源全生命周期的应用探索

资源全生命周期管理的传统价值 运营商的网络涉及接入网、数据网、承载网、核心网、传输网、无线网、光缆网、云专网、动力网、业务平台等十数类大专业。网络资源的全生命周期体现在以下六大生产活动环节:网络规划→网络设计→网络工程建设→网络资源的投入使用→网络…

数据安全防护措施有哪些?防数据泄露的10大措施丨让你一次性看够!

古时烽火传信,密语藏于竹简之间,以防外泄,保家国安宁。 今朝数字洪流,数据如织,信息安全之重,不亚于昔日之密信。 在信息爆炸的时代,数据安全防护犹如筑起铜墙铁壁,以防数据泄露之患…

想要数字人直播平台赚钱,前期源码部署要注意哪些要点?

随着人工智能时代的到来,数字人直播的应用频率不断升高,展现巨大收益潜力的同时,也让不少想要通过数字人源码厂商搭建数字人直播平台的创业者产生好奇,并开始从各方面打听数字人直播平台怎么赚钱等相关问题的答案。 本期&#xf…

开营啦!| 上海交通大学 AI for Bioengineering 暑期学校开营仪式圆满举行!

开营仪式 2024年8月12日 ,“AI for Bioengineering暑期学校”在上海交通大学闵行校区理科群楼300号报告厅开幕。本次暑期学校吸引了来自国内外30余所高校(包括芝加哥大学、曼彻斯特大学、哥伦比亚大学、爱丁堡大学、南加利福尼亚大学、北京大学、清华大…

element-plus的表单输入框有清除按钮的,文字输入前后宽度不一致怎么解决

输入内容之后多了一个可清除的图标,输入框的宽度也被撑开了 根据输入前后的dom对比发现,多了一个图标的span标签 :deep(.el-input__wrapper) {position: relative;.el-input__inner {padding-right: 18px;}.el-input__suffix {position: absolute;right:…

服务器重启后的端口占用分析及解决方案

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

Android Studio报错 Failed to transform ‘...‘ using Jetifier. Reason null

Android Studio报错 Failed to transform ‘…‘ using Jetifier. Reason null 问题描述: AndroidX提示Failed to transform ‘/…/’ using Jetifier. Reason: null. 解决方案: 在gradle.properties中,将 android.enableJetifiertrue改为…

uniapp 对于scroll-view滑动和页面滑动的联动处理

需求 遇到一个需求 解决方案 这个时候可以做一个内页面滑动判断 <!-- scroll-y 做true或者false的判断是否滑动 --> <view class"u-menu-wrap" style"background-color: #fff;"><scroll-view :scroll-y"data.isGo" scroll-wit…

mongodb连表查询,postman使用

要实现与SQL类似的查询&#xff0c;你需要使用聚合框架&#xff08;Aggregation Framework&#xff09; SELECT b.name, a.* FROM user a LEFT JOIN order b ON a.id b.id WHERE b.name LIKE %acd%; 从MongoDB 3.2版本开始&#xff0c;引入了聚合框架中的$lookup阶段&#xf…

【JS】详解浏览器的5 种Observer: Mutation、Intersection、Performance、Resize、Reporting

文章目录 1、IntersectionObserver 交叉观察器用法使用场景 2、MutationObserver 变动观察器用法使用场景 3、ResizeObserver 尺寸变化观察器用法使用场景 4、PerformanceObserver 性能观察器用法使用场景 5、ReportingObserver用法使用场景 总结 网页开发中我们经常要处理用户…

第三方jar自带logback导致本地日志文件不生成

1.问题及解决 这是依赖的jar包&#xff0c;自己有logback&#xff0c;只打印到控制台&#xff0c;导致我们项目里配置的error级别日志不会生成到日志文件中去。ai给的答案是自己控制加载顺序&#xff0c;但很麻烦&#xff0c;--logging.config也不行&#xff0c;最好下了个7z压…

Grafana 可视化监控和告警

前言 在现代分布式系统和云原生环境中&#xff0c;为了确保复杂的分布式系统和服务的高可用性、可靠性和性能&#xff0c;通常采用实时可视化监控和分析&#xff0c;实现故障快速响应、资源优化和安全保障&#xff0c;从而提升用户满意度和运营效率。 在目前主流的解决方案中…

vue 获取当前页面路由

vue2 &#xff1a; import { getCurrentInstance } from ‘vue’; //获取当前页路由 data() { return { currentRouter: ‘’,//默认路由 } } const { proxy } getCurrentInstance(); this.currentRouter proxy.$router.currentRoute.meta.title vue3 &#xff1a; import …

智能语音电话机器人的优势有哪些?

现在每个企业的客服成本都是非常高的&#xff0c;但是工作效率还不高&#xff0c;有的还存在简单粗暴的情况&#xff0c;因此如果使用语音机器人的话&#xff0c;就将会发生重大的转变了&#xff0c;不仅会提高效率&#xff0c;还会降低很多的人力成本&#xff0c;&#xff0c;…

【浏览器】f12控制台,如何选中click、hover才出现的元素(断点调试)

使用断点调试 以切换语言的弹窗为例 当鼠标点击select框时才显现选项&#xff0c;没有办法直接选中元素进行样式的调试 1. 按f12打开控制台&#xff0c;点击sources&#xff0c;按 ctrlo 查找你要开发的文件 2. 给元素添加断点&#xff08;如果操作的时候没有停&#xff0c;就…

丰田的接单式生产、零库存、快速换模之间关系如何?

前面讲了&#xff0c;丰田采用接单式生产&#xff0c;这让它的库存一直保持在较低水平&#xff0c;但这一切是怎么实现的&#xff1f;接单式生产、零库存和快速换模之间又有怎样的关系&#xff1f;今天就来简单聊下。 接单式生产 这可谓是丰田典型的快速响应。当4S门店销售人员…

[openSSL]TLS 1.3握手分析

文章目录 前言一、ECDHE密钥交换二、TLS单向身份认证三、TLS双向身份认证 前言 关于TLS握手网上资料很多&#xff0c;但是有一些写的很不清楚&#xff0c;导致学习时对概念和流程出现混淆&#xff0c;以下是我觉得写得比较清晰和准确的供学习参考。 浅析 TLS&#xff08;ECDHE…

【C++ 面试 - 基础题】每日 3 题(十三)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

【原创】java+swing+mysql简单图书信息管理系统设计与实现

个人主页&#xff1a;程序员杨工 个人简介&#xff1a;从事软件开发多年&#xff0c;前后端均有涉猎&#xff0c;具有丰富的开发经验 博客内容&#xff1a;全栈开发&#xff0c;分享Java、Python、Php、小程序、前后端、数据库经验和实战 开发背景&#xff1a; 编程小白们刚入…

Lua语言基础学习:安装Lua和Lua库管理工具

Lua语言简介 Lua是一种轻量、高效、可嵌入的脚本语言&#xff0c;由巴西里约热内卢天主教大学的研究小组于1993年开发&#xff0c;Lua的解释器非常小巧&#xff0c;编译后的体积很小&#xff08;如完整解释器不过200KB&#xff09;&#xff0c;这使得它非常适合嵌入到其他应用程…