容器
文章平均质量分 92
温暖的电波
这个作者很懒,什么都没留下…
展开
-
Docker run 容器处于created状态问题
在最近遇到的一次问题中,有这样一种现象: 系统有一个测试脚本会不断的执行docker run命令来运行容器,在测试过程中发现有一个情况是,有时候容器没有完全被运行到"Up"状态,而是处于"created"状 态,现象十分奇怪。 上环境首先查看了"created"状态的容器,以及dockerd日志: (1) dockerd的日志中只有"post create"请求,但是居然没...原创 2019-12-07 21:58:52 · 21668 阅读 · 1 评论 -
Registry私有仓库的镜像清理
一、背景 在私有registry仓库的场景中,对于私有镜像的升级操作是一个比较常见的操作。然而在我们升级私有镜像、并push到私有仓库后,升级前的镜像也就失去了它存在的意义;而随着时间的积累,旧镜像将会越来越多,旧镜像的数据有可能会占用大量磁盘空间。为了解决此问题,我们需要对私有仓库中的旧镜像进行清理以释放空间。二、具体操作2.1 清理blobs、_manifests和_lay...原创 2020-03-09 22:18:08 · 3615 阅读 · 0 评论 -
制作一个最简单ftpd容器镜像
准备基本的根文件系统镜像 先从dockerhub pull busybox镜像到本地。Pull完成后可以通过docker images看到busybox:latest镜像。准备entrypiont文件 然后编写entrypiont.sh作为ftpd镜像的入口函数。如下:#!/bin/shsh -c "exec tcpsvd 0 21 ftpd -w /"编写...原创 2019-08-07 21:59:57 · 298 阅读 · 0 评论 -
制作简单的http镜像
一、编写简单的http服务首先写一个简单的http服务器程序:package mainimport ( "fmt" "net/http")type MyHandler struct{}//实现接口的ServeHTTP方法func (this *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques...原创 2019-08-07 21:59:19 · 722 阅读 · 0 评论 -
容器内生成core_dump文件
有时候docker容器中的程序可能出现类似段错误,此时要去跟踪问题的话有core_dump会方便很多;但是容器中有时候还不一定能够生成core_dump文件,需要做如下事情: (1)启动容器时,增加--privileged选项; (2)容器启动后,通过"ulimit -c unlimited",以使能产生core_dump文件; (3)通过 cat /proc/sys/kerne...原创 2019-01-04 00:10:56 · 1489 阅读 · 0 评论 -
容器网络--为docker容器添加网络接口
一 背景 默认情况下容器启动后只有一个网络接口,一般外围为eth0,且其IP地址已经提前分配。有时候我们希望为一个容器创建多个网络接口,此时可以尝试如下的方式。二 为容器添加网络接口 1 以默认的网络方式运行一个容器# docker run --name tst_add_inf -it tst_img /bin/bash 这样,我们就通过宿主机器上的镜像tst_img创建了一个名字...原创 2018-07-02 22:28:12 · 7778 阅读 · 2 评论 -
docker的内核依赖与简单构建
docker的基础组件与构建原创 2017-10-12 20:55:43 · 2500 阅读 · 0 评论 -
Docker容器资源限制
Docker容器资源限制 内存 cpu调度翻译 2017-08-27 15:14:24 · 6501 阅读 · 0 评论 -
Docker容器自启动
容器restart policy,即docker run启动容器时使用的--restart标志翻译 2017-08-26 08:35:06 · 28904 阅读 · 2 评论 -
docker daemon调试
通常我们可以打开docker daemon的debug选项来获docker的运行动态,以对可能出现的问题进行调试。如果daemon已经没有了反应,可以给docker daemon发送 SIGUSR 信号来“force a full stack trace ” docker daemom的堆栈。翻译 2017-07-06 22:00:34 · 2608 阅读 · 0 评论 -
创建自定义的docker 基础镜像
制作docker 基础镜像原创 2017-07-06 17:57:30 · 2433 阅读 · 0 评论 -
docker中logrus与日志原理(一)
本文基于docker-1.12.6。 在docker中使用logrus来打印到终端,类似于fmt.Print系列函数,我们来跟踪看下它的原理。 logrus在docker的vendor/src/github.com/Sirupsen/logrus目录以一个包的形式存在。它提供了不同的打印级别,如logrus.Debugf(), logrus.Infof(), logrus.Wa原创 2018-01-09 20:29:45 · 2334 阅读 · 0 评论 -
使用源码编译docker组件
一 下载docker开发镜像 Docker hub提供了一个用于docker组件自动化编译的镜像docker-dev,这个镜像自带了docker源码和docker源码编译所依赖的各种环境资源。但是这个镜像目前不再随着docker源码更新,这个镜像自带docker最新的版本为1.9.1,如果需要编译更新的docker源码,需要进行一定的适配。 镜像的pull命令:docker pull原创 2018-01-21 12:36:56 · 1038 阅读 · 1 评论 -
docker中logrus与日志原理(二)信息打印
在docker中logrus与日志原理(一)中曾经分析到容器的打印输出和日志功能的基础骨架都是在Entry.log()函数中来完成;而这个Entry.log()又包含两个部分:1) 通过log driver的钩子函数来记录日志;2) 将信息输出到终端。 这一章主要分析logrus在Entry.log()中是如何将信息打印到终端输出的。我们仍然看回到Entry.log()函数,并精减掉此处原创 2018-01-10 19:37:43 · 2159 阅读 · 1 评论 -
Docker中json日志驱动.构造函数的注册
Docker提供了多种日志机制以动态记录容器运行过程中的痕迹。Docker通过"--log-driver"标志来指定使用哪种类型的日志驱动。在docker-1.12.6版本中合法的log driver包括json-file,journald,syslog等等,其中默认使用的是json-file。 这里我们就以json-file为例子,来探索一下docker中的日志机制的运转过程。 Do原创 2018-01-23 22:57:48 · 769 阅读 · 0 评论 -
Docker容器使用/dev/mem与HOST端映射同一段物理内存
我们知道docker容器与HOST端有一定的隔离性,但同时也共享着一些资源,比如内存资源。今天我们就看一下Docker容器通过/dev/mem设备节点与HOST共享一段物理内存。 要达到这个目的需进行如下操作:1) 划分一段用于映射到/dev/mem设备文件的保留物理内存;2) 准备一段在容器和HOST端可运行的映射和读写物理内存的代码;3) 启动一个带有--privileged参数...原创 2018-03-02 20:48:32 · 3249 阅读 · 0 评论 -
容器网络-物理网卡绑定到网桥
一 背景 默认情况下dockerd服务启动会创建一个默认网桥(采用一个未使用网段IP)。这样此机器上的容器就通过这个默认网桥进行通信(容器与宿主机通信也通过网桥),同时达到隔离外部网络的目的。有时候我们有这样的需求:一个宿主机器上的容器可以直接和其他宿主机器上互通网络,这里作为实验,可以用“暴力”的方式实现: 宿主机host1 网口eth0:192.168.0.100 宿主机ho...原创 2018-07-02 22:02:23 · 2616 阅读 · 0 评论 -
Docker对象清理
对于不再使用的对象如镜像、容器、volumes以及网络 Docker采取的是被动清理(类比垃圾回收)机制:除非使用手动使用docker提供的命令进行清理,否则它们一般是不会被清除。这些没有使用的对象当然会占用额外宝贵的空间资源。Docker为各种对象都提供了单独的对象清理命令prune,同时也提供了docker system prune这样的一次性多个对象的命令。今天要讨论的就是这些关于对象清理的翻译 2017-11-05 22:44:54 · 18312 阅读 · 0 评论