Docker镜像服务器磁盘空间清理

Docker镜像服务器磁盘空间清理,第1张

我们开发环境Jenkins构建项目时报服务器磁盘空间不足,导致项目自动化构建部署失败,

Docker镜像服务器磁盘空间清理我们做了多次了,之前在清理Docker镜像服务器时走了不少弯路,查了不少Docker镜像服务器空间清理,都大同小异,都是一些如何清理历史镜像文件的文章,而实际按照清理镜像文件进行一顿操作,释放的内存了了,最近一次磁盘空间报警事件,镜像文件清理也就才清理了40M,完全达不到清理磁盘空间的效果。

事实上我们的镜像执行sh脚本本身包含清理垃圾镜像文件的步骤:

因此,重要事情说三遍: 当Docker镜像服务器磁盘空间不足时,首先要考虑的时服务器的日志文件、大文件等等,最后才考虑Docker镜像本身占用的磁盘内存

df命令用于查看磁盘分区的使用情况,了解磁盘总量及用量,默认单位为KB。

当磁盘空间报警时,我们可以使用df命令查看磁盘分区使用情况:

注意,使用df -h命令会看到Docker镜像的/var/lib/docker 目录占很多空间,其实这是假象,许多同事初次看到这个接口首先应该就是去考虑如何清理/var/lib/docker,我也不例外。

不要受/var/lib/docker 目录影响,继续分析空间占用情况。

前面通过df命名我们大致了解了我们磁盘分区内存使用情况,使用du命令可以当前目录下文件、目录在磁盘中占用的空间的大小。

来到服务器顶层目录,执行命令:

找到内存使用异常的文件夹,进入其目录依次执行du -sh ,最终找到占用内存的大文件或日志,进行清理。

分享下我在情况过程找到的大文件

通过前面df 和du配合分析清理空间后,基本就能释放服务器磁盘空间,就简单提下Docker镜像清理咯,毕竟网上一大堆。

镜像清理。

批量清除无用的镜像

version: '3' //docker-compose 版本 3x

services:  //服务的配置信息

    FileServer: //自己定义的服务

        image: nginx:latest  //使用的镜像名

        container_name: 'FileData' // docker容器

        restart: always //重启策略 always 总是重新启动

        ports: - '8003:8003'  //映射端口信息 宿主端口:容器端口

        volumes: // 定义了卷信息,提供给 services 中的 具体容器使用

            - '/nginx/confd/defaultconf:/etc/nginx/confd/defaultconf' // 用户自己指定的目录:映射目录

            - '/nginx/log:/var/log/nginx'

            - '/file:/usr/share/nginx/file'

            - '/web:/usr/share/nginx/html'    //其他html连接目录

        command: /bin/bash -c "nginx -g 'daemon off;'"  //覆盖容器启动后默认执行的命令

autoindex on; //是否显示文件目录 on显示  off 关闭显示

autoindex_exact_size on; // 显示文件确切大小 on 显示字节单位 off 显示出文件的大概大小,单位是KB或者MB或者GB

autoindex_localtime on; //默认为off,显示的文件时间为GMT时间 ;改为on后,显示的文件时间为文件的服务器时间

charset utf-8,gbk; //显示的字符集

server{ //服务配置

    listen 8003; // 监听端口 ,也可以加上IP地址,如,listen 127001:8080;

    server_name _; //定义网站域名,可以写多个,用空格分隔。

    //匹配规则,在server{}里可以有很多location配置段

    //root/alias 是指定文件路径的两种方式 alias 相当于重定向路径

     //使用alias,目录名后面一定要加“/”

    location / { //location 后面跟的搜索路径

        root /usr/share/nginx/file; //指定文件服务地址 这里的目录是 yml 文件里配置的映射目录

    }

    location /web/{ 

        alias /usr/share/nginx/; //多个location 的时候这里只需要指定映射目录的上级目录就行了

        index indexhtml indexhtm; //配置默认首页

    }

}

Docker是世界领先的软件容器平台。Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器,但docker本身并不是容器,它是创建容器的工具,是应用容器引擎。

Docke最初实现是基于LXC。LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。

docker并不是LXC替代品,docker底层使用了LXC来实现,LXC将linux进程沙盒化,使得进程之间相互隔离,并且能够课哦内阁制各进程的资源分配。在LXC的基础之上,docker提供了一系列更强大的功能。

Docker能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。

用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

docker的三个概念:

镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。

容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。

仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(1204、1404等)的Ubuntu镜像。

docker的用途:

官方给的是bulid ship run,就是编译、装载、运行。就是实现了应用的封装、部署、运行的生命周期管理只要在glibc的环境下,都可以运行。

谐云自主研发的容器云平台,是基于Docker和Kubernetes技术构建的一套完整IT标准化和自动化框架,以“面向终态、优化IT资源”为目标的新一代PaaS平台,能够提高企业的IT管理能力,在降低运营成本和风险的同时,获得更高的运维效率,保障业务稳定运行和高效迭代。

1、      centos7 环境下,安装docker后服务器断开ssh连接

原因及处理方法1 :    通过ip addr 命令查看 docker0 的ip段是否同当前主机的网络内外网段是否相同

如果相同,修改/etc/docker目录下daemonjson文件里面添加如下内容:

  {

        "bip": "1921682001/24"

   }

然后进行重启:

sudo systemctl daemon-reload

sudo systemctl restart dockerservice

原因及处理方法2:   内核和版本不匹配

    a)  通过uname -r 查看内核版本,从docker官网上查看对应的日志信息,对比安装相应版本docker

    b)  或者通过升级系统内核,重新安装docker处理    服务器-centos7 内核升级 -

原文传送门

随手浏览时,翻到一篇文章《 服务器指北 - 有了服务器之后可以做点什么 》,我平时就喜欢在家里搞东搞西,这标题正对胃口。毫不犹豫的点进去看看有什么新东西能用在家里的山寨服务器上。果然没让我失望,里面提到一个影音管理系统叫做jellyfin,从之前的 emby fork 而来,由于 emby 闭源了,大家就在这基础上分支出了 Jellyfin。

特性嘛?

话不多说,让我们直奔主题吧。

我的家庭nas服务器系统的版本是ubuntu1604,是用一个acer旧笔记本改的,原来的硬盘容量已经很小了,只能用来跑系统,存储全部使用外挂方式,用来存储自己的本地资料以及搭建云盘和云笔记的数据资料,影音文件也在其中。

我选择搭建docker版jellyfin,影音库直接挂到外存中的影音文件夹,不需要对原有资料路径做任何变动。

当看到这段文字时,说明docker安装成功了。

至此,Docker安装最简版,完成。没有像其他文章提到的配置镜像站,也没有分配用户权限。没分配用户权限不是好的示范,不提倡学习,但是我这边自家内网使用,一切从简。

下面开始使用docker来搭建本文的主角——Jellyfin服务。

然而我并不是这样做的。因为懒,直接docker安装了。

上面的参数中需要说明的是:

docker会自动拉取镜像完成安装

如果能看到上面的画面,说明jellyfin安装完成,就是这么便捷!!!!docker越来越成功果然是有道理的。

现在就可以通过http://本地ip:8096来访问jellyfin服务了。

后面该怎么选怎么选,**路径、电视剧路径,语言神马的。最后注意一下远程访问的两个勾,默认是打上的。

这样,我们的jellyfin服务就安装好了。

虽然是内网服务,还是会禁不住得瑟的心,弄个公网地址给朋友看看,所以就有了内网穿透。

内网穿透工具采用Frp,轻与简单是我选择工具的个人偏好。

服务端扔阿里云上,内网安装客户端,配上端口

我把ecs中的web服务端口都配成9,方便管理。

启动frpc

现在,访问ecs的公网ip:9096就能访问自己的Jellyfin了。

来张整体图,能看到不同的媒体库以及各自的更新进度。

可以在首页直接打开视频

也可以点击进入影片介绍页,是的,jellyfin居然还有影片介绍页,我们只需要提供合规格命名的片源,其他的都交给jellyfin吧。

截图时是在公网,网速不佳,不然是可以看到演员的照片,还会推荐本地存储的相关影片,这个有点逆天了,查了一下这是从emby带出来的功能,强大的搜刮能力。

补一张卡司图

还可以进入演员详情页

Ok,不管从哪个路径进来,最终还是要播放影片。播放效果是这样滴

内网使用,还是非常流畅的。

参考文章

《Ubuntu 1604 安装 Docker 和 Docker Compose

》, https://wwwrabbitwflycom/articles/2019/05/14/1557827886665html

《在群晖Docker中安装Jellyfin媒体服务器

》, https://wwwsmbinncom/jellyfinhtml

环境:ECS服务器,务必使用CentOS 7 以上版本,64位系统推荐是CentOS 78

安装步骤:

一:安装docker所需的环境

1安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2

2配置yum源 使用国内的:yum-config-manager --add-repo http://mirrorsaliyuncom/docker-ce/linux/centos/docker-cerepo

3查看docker版本:yum list docker-ce --showduplicates | sort -r

二:安装docker

注意:不使用1131版本,该版本在jenkins使用docker命令时会说找不到配置文件

1安装docker:yum -y install docker-ce-201010-3el7

2查看docker版本:docker -v

3启动docker:systemctl start docker

4查看docker 启动状态:systemctl status docker

5检查安装结果:docker info

运行Docker守护进程:systemctl start docker

停止Docker守护进程:systemctl stop docker

重启Docker守护进程:systemctl restart docker

6查看容器:docker ps

7停止容器:docker stop 容器id

三:修改镜像仓库:

vim /etc/docker/daemonjson

添加如下内容:

{

"debug":true,"experimental":true,"registry-mirrors":["https://pb5bklzrmirroraliyuncscom","https://hub-mirrorc163com","https://dockermirrorsustceducn"]

}

8查看信息:docker info

仅供个人学习使用,如有不足请指出。

愿景:愿天下所有程序员能早日财富自由,永不搬砖!

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Docker镜像服务器磁盘空间清理

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情