容器

docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置

蹲街弑〆低调 提交于 2020-02-22 02:55:27
原文: docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37674858/article/details/79976751 今天在Liunx服务器上重启docker的时候,发现容器启动不了了,报的错误是:"ERROR:cannot create temporary directory!"。我的猜测应该就是磁盘空间满了,于是执行命令"df -h",出来的结果是 挂载点/var/lib/docker/overlay/ 已用%为100%,真的是磁盘空间用完了。 docker system prune 可一次性清理多个未使用对象 du -h --max-depth=1 查看内存最大 我不理解的是我的容器有配置数据卷呀,容器里面动态增长的数据例如上传的图片、产生的日志都是放在数据卷里面的,照常来说是不会导致容器满了呀,后面问了公司的美女,美女说让我执行命令:docker ps -s ,看看容器大小是不是太大了,如果是太大了应该就是数据卷没有设置好。按照美女说的执行了,发现容器大小跟我第一次运行容器的大小一样,那就说明数据卷是设置成功了。然后就继续问美女咯,美女问docker是谁装的,我回到说是我自己安装的并且还是采用离线的方式安装的

python基础入门——容器

我怕爱的太早我们不能终老 提交于 2020-02-21 22:15:57
我们一般把四个list、tuple、set、dict叫做容器。 容器是用来存放对象的,它是在内存中开辟的 一,列表(list) 列表是一种线性表,由大量节点组成,每一个节点都可存放数据, (1) 创建 >> > a = list ( ) >> > type ( a ) < class 'list' > >> > b = list ( [ 3 , 5 , 4 , 2 , 5 ] ) >> > type ( b ) < class 'list' > >> > c = [ 4 , 3 , 2 ] >> > type ( c ) < class 'list' > >> > d = [ 3 , "ha" , "xi" ] >> > type ( d ) < class 'list' > >> > e = [ range ( 1 , 4 ) ] >> > type ( e ) < class 'list' > (1)len() >> > list1 = [ 2 , 3 , 6 , 2 , 1 , 3 , 5 , 7 ] >> > len ( list1 ) 8 (2)通过下标可以访问下标对应的值,并且可以根据下标进行新的赋值 格式: 列表名[下标] 赋值 : 列表名[下标] = 新的值 >> > print ( list1 [ 3 ] ) 2 >> > list1 [ 4 ] 1 >> >

深入剖析Kubernetes学习笔记:Pod基本概念(14)

不羁岁月 提交于 2020-02-21 19:25:28
一、凡是调度、网络、存储,以及安全相关的属性,基本上是 Pod 级别的。 1、这些属性的共同特征是,它们描述的是“机器”这个整体,而不是里面运行的“程序”。 1、比如,配置这个“机器”的网卡(即:Pod 的网络定义), 2、配置这个“机器”的磁盘(即:Pod 的存储定义), 3、配置这个“机器”的防火墙(即:Pod 的安全定义)。 4、更不用说,这台“机器”运行在哪个服务器之上(即:Pod 的调度)。 2、NodeSelector:是一个供用户将 Pod 与 Node 进行绑定的字段 apiVersion: v1 kind: Pod ... spec: nodeSelector: disktype: ssd 这样的一个配置,意味着这个 Pod 永远只能运行在携带了“disktype: ssd”标签(Label)的节点上;否则,它将调度失败。 3、NodeName:一旦Pod的这个字段被赋值,Kubernetes 项目就会被认为这个 Pod 已经经过了调度 调度的结果就是赋值的节点名字。所以,这个字段一般由调度器负责设置,但用户也可以设置它来“骗过”调度器, 当然这个做法一般是在测试或者调试的时候才会用到。 4、HostAliases:定义了Pod的hosts文件(比如 /etc/hosts)里的内容 apiVersion: v1 kind: Pod ... spec:

[置顶] Effective STL 学习笔记

久未见 提交于 2020-02-21 11:39:33
看Effective STL 作的一些笔记,希望对各位有帮助。 以下是50条条款及相关解释。 容器 1. 慎重选择容器类型,根据需要选择高效的容器类型。 2. 不要试图编写独立于容器类型的代码。 3. 确定容器中的对象拷贝正确而高效。也就是防止在存在继承关系时发生剥离。 4. 调用empty而不是检查size()是否为0来判断容器是否为空。 原因是调用empty比检查size()更加高效。 5. 尽量使用区间成员,而不是多次使用与之对应的单元素成员函数,原因是这样更加高效。 如尽量使用vector的 assign 或 insert 成员函数,而不是一直使用 push_back 。 6. 小心C++编译器最烦人的分析机制 。如 下面的代码中的第二句被C++解释成为了函数声明,这很奇怪但又符合标准。 ifstream dataFile ("ints.dat") list <int> data( istream_iterator<int>(dataFile), istream_iterator<int>() ); // 被解释成为函数声明 正确的写法是这样的,注意第一参数两边的括号: list <int> data( ( istream_iterator<int>(dataFile) ) , istream_iterator<int>() ); 这是因为C+

容器生态系统

这一生的挚爱 提交于 2020-02-21 11:32:56
1.容器的核心技术: (1)容器规范:由docker、coreos、google在内的若干公司共同成立了的OCI的组织,发布了runtime spec和image format spec两个规范,使得不同组织和厂商开发的容器能够在不同的runtime上运行,这样就保证了容器的可移植性和互操作性。 (2)容器runtime:runtime是容器真正运行的地方。runtime需要跟操作系统的内核紧密合作,为容器提供运行环境,容器只有在runtime中才可以运行。lxc、runc和rkt是目前主流的三种容器runtime,现在docker默认的是runc (3)容器管理技术:用户通过工具来管理容器。容器管理工具对内与runtime交互,对外为用户提供接口。lxd是lxc对应的管理工具,runc的管理工具是docker engine。docker engine包含后台的deamon和cli两个部分。一般提到的docker,指的就是docker engine (4)容器定义工具:容器定义工具允许用户定义容器的内容和属性,这样容器能够被保存、共享和重建 (5)registry:容器是通过image创建的,需要有一个仓库存放他们 (6)容器OS:容器OS是专门运行容器的操作系统,与常规系统想必,OS体积更小,启动更快,内核使用host的内核 2.容器平台技术 (1)容器编排引擎:通常包括容器管理

Docker基本知识

早过忘川 提交于 2020-02-21 11:30:29
Docker常用命令 镜像: docker search [镜像名] # 示例: docker search redis # 搜索redis的镜像 docker pull [镜像名]:[版本号] # 示例: docker pull redis:3.2 # 下载redis3.2版本的镜像,如果版本号没写,则默认latest,也就是最新版本 ​ docker images # 列出当前镜像 docker images -a # 列出所有的镜像 docker images -q # 列出当前所有镜像的 镜像ID docker images -aq # 列出所有镜像的 镜像ID ​ docker rmi [镜像ID/镜像名] # 删除镜像 docker rmi -f [镜像ID/镜像名] # -f表示强制删除镜像 docker rmi -f $(docker images -aq) # 慎用,删除所有的镜像,$()表示一个范围,类似sql中的in 容器(第一节): docker ps # 查看当前正在运行的docker容器 docker ps -a # 查看所有的docker容器,包括关闭的 docker ps -q # 只查看docker容器的容器id ​ docker run [options] [镜像ID/镜像名] # 启动容器 docker run -it redis #

Docker学习笔记 - Docker容器的网络基础

蹲街弑〆低调 提交于 2020-02-21 06:31:08
一、虚拟网桥 docker0 docker0 是 linux的虚拟网桥,守护进程通过docker0给容器提供网络连接的各种服务。 网桥是数据链路层设备,通常ip地址是网络层的设置。 linux的虚拟网桥,有特殊的地方,它是通用网络设备抽象的一种,可以设置ip地址,相当于拥有一个隐藏的虚拟网卡。 docker容器启动时,创建容器中的网络设备eth0,同时在主机上打开一个名为veth*端口,用来和容器网络通信。 1、查看docker默认创建的虚拟网桥 $ ip a show docker0 2、查看容器的网络地址 二、网桥地址管理 1、安装网桥管理工具 sudo apt-get install bridge-utils sudo brctl show 看到了docker0的网桥设备 docker run -it -name nwt1 ubuntu /bin/bash # ifconfig ##看到了eth0,有ip和mac CTRL+P sudo brctl show 看到了docker0设备,interfaces里多了一个vethda1c8d9接口 ifconfig 也可以看到这个网络接口 2、修改docker0地址 sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0 sudo service docker

k8s CNI插件简单了解

泪湿孤枕 提交于 2020-02-20 23:48:05
Kubernetes网络模型本身对某些特定的网络功能有一定要求,但在实现方面也具有一定的灵活性。业界已经有不少不同的网络方案,来满足特定的环境和要求。 CNI(container network interface)是容器网络接口,它是一种标准设计和库,为了让用户在容器创建或者销毁时都能够更容易的配置容器网络。 目前比较流行的CNI插件:Flannel、Calico、Weave、Canal(技术上是多个插件的组合)。这些插件即可以确保满足Kubernetes的网络要求,又能为kubernetes集群管理员提供他们所需的某些特定的网络功能。 背景 容器网络 是容器选择连接到其他容器、主机和外部网络(如Internet)的机制。容器的runtime提供了各种网络模式,每种模式都会产生不同的效果。例如,Docker默认情况下可以为容器配置以下网络: none:将容器添加到一个容器专门的网络堆栈中,没有对外连接。 host:将容器添加到主机的网络堆栈中,没有隔离。 default bridge:默认网络模式。每个容器可以通过IP地址互相连接。 自定义网桥:用户定义的网桥,具有更多的灵活性、隔离性和其他便利功能。 Docker还可以让用户通过其他驱动程序和插件,来配置更高级的网络(包括多主机覆盖网络)。 CNI( https://github.com/containernetworking

在 docker 容器中捕获信号

谁说我不能喝 提交于 2020-02-20 08:37:11
我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程。这些操作的本质都是通过从主机向容器发送信号实现主机与容器中程序的交互。比如我们可以向容器中的应用发送一个重新加载信号,容器中的应用程序在接到信号后执行相应的处理程序完成重新加载配置文件的任务。本文将介绍在 docker 容器中捕获信号的基本知识。 信号(linux) 信号是一种进程间通信的形式。一个信号就是内核发送给进程的一个消息,告诉进程发生了某种事件。当一个信号被发送给一个进程后,进程会立即中断当前的执行流并开始执行信号的处理程序。如果没有为这个信号指定处理程序,就执行默认的处理程序。 进程需要为自己感兴趣的信号注册处理程序,比如为了能让程序优雅的退出(接到退出的请求后能够对资源进行清理)一般程序都会处理 SIGTERM 信号。与 SIGTERM 信号不同,SIGKILL 信号会粗暴的结束一个进程。因此我们的应用应该实现这样的目录:捕获并处理 SIGTERM 信号,从而优雅的退出程序。如果我们失败了,用户就只能通过 SIGKILL 信号这一终极手段了。除了 SIGTERM 和 SIGKILL ,还有像 SIGUSR1 这样的专门支持用户自定义行为的信号。下面的代码简单的说明在 nodejs 中如何为一个信号注册处理程序:

笔记:Docker、Dockerfile基础

假如想象 提交于 2020-02-20 07:51:46
文章目录 Docker基本概念 Docker安装 常用命令 容器操作示例 Docker镜像 Docker容器数据卷 Dockerfile Dockerfile体系结构(保留字指令) Docker安装mysql示例 本地镜像推送到阿里云 Docker基本概念 镜像 :镜像就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建多个容器 容器 :容器是用镜像创建爱你的运行实例,它可以被启动、开始、停止、删除。每个容器都是相互隔离的 镜像与容器的关系类似于对象与类 Docker 面向对象 镜像 类 容器 容器 仓库 :仓库是集中存放镜像文件的场所 仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含多个镜像,每个镜像有不同的标签(tag)。仓库又分别为公开库与私有库,最大的公开库是Docker Hub。国内阿里云、网易云等 Docker安装 #1、检查内核版本,必须是3.10及以上 uname -r #2、安装docker yum install docker #3、输入y确认安装 #4、启动docker [ root@localhost ~ ] # systemctl start docker #查看docker版本 [ root@localhost ~ ] # docker -v Docker