Docker点滴
文章平均质量分 91
Docker介绍,Docker实现,并记录Docker使用中的一些细节。
styshoo
这个作者很懒,什么都没留下…
展开
-
下载外网容器镜像
个人常用第四种方法,第四种方法失败时会使用第三种方法。没梯子的情况下,还是用第二种吧,就是经常会失败。方法优点缺点挂载梯子,设置docker daemon代理简单受限于梯子的速度和稳定性,很可能会下载到一半超时。薅阿里云羊毛不用翻墙。编辑代码后,可自动触发拉取镜像。阿里云做了限制,一段时间内的构建次数有限;拉取后的镜像需要修改tag,digest值也会变更。挂载梯子,使用google cloud shell操作和shell界面完全一致。原创 2023-07-28 14:47:53 · 498 阅读 · 0 评论 -
docker-maven-plugin插件设置Docker的buildArgs
docker-maven-plugin是spotify出品的一款针对spring boot项目的docker插件,可将spring boot项目打包到docker镜像中。如果在编译docker镜像时需要设置build arg,只需要在maven的配置文件pom.xml中,configuration下增加buildArgs。标签的key和值对应build arg的key和值,如下所示,dock...原创 2018-03-22 21:50:49 · 3697 阅读 · 0 评论 -
rexray在CentOS上不能创建ceph rbd的docker volume问题定位
背景 我们通过docker的rexray插件来创建ceph rbd设备的docker volume,但总提示创建失败。 # docker volume create --driver=rexray --opt=size=5 --name=cephrbd-bookError response from daemon: create test_cephrbd_volume: Volu原创 2018-01-24 06:49:10 · 1396 阅读 · 0 评论 -
制作ssh互信的docker镜像
DockerfileFROM ubuntu:16.04# packageRUN apt-get update; apt-get -y install sshCOPY ssh_config /etc/ssh/ssh_config# sshRUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config && sed -i 's原创 2018-01-12 07:04:09 · 576 阅读 · 0 评论 -
容器中使用iptables报错can't initialize iptables table Permission denied (you must be root)
背景 在docker容器中部署了一微服务,该服务需要docker push镜像到docker registry。因此,docker容器中需要安装docker服务。但在启动容器的时候,却报错: can't initialize iptables table `filter': Permission denied (you must be root)Perhaps iptables or your原创 2017-10-19 07:00:27 · 29005 阅读 · 2 评论 -
docker创建ceph集群
背景 Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon、ceph/radosgw、ceph/mon、ceph/osd等;另外一种是最新的方式,所有的Ceph组件都集成在一个镜像ceph/daemon中,如果要创建对应的Ceph组件容器,只需要指定类型即可。这里,我们使用第一种方式来创建Ceph集群。 另外,这里所有的容器,都原创 2017-08-17 07:44:24 · 3443 阅读 · 0 评论 -
Docker aufs存储驱动layer、diff、mnt目录的区别
Docker基础信息 首先,先查询Docker使用的后端存储。使用命令docker info,主要关注Storage Driver相关的部分。 $ docker info...Server Version: 1.12.6Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs:原创 2017-04-18 07:00:06 · 8254 阅读 · 0 评论 -
Ubuntu上手动安装Kubernetes
背景 两台Ubuntu16.04服务器:ip分别为192.168.56.160和192.168.56.161。。 Kubernetes版本:1.5.5 Docker版本:1.12.6 etcd版本:2.2.1 flannel版本:0.5.6 其中160服务器既做Kubernetes的master节点,又做node节点;161服务器只做node节点。 master原创 2017-04-05 07:18:13 · 9350 阅读 · 3 评论 -
使用Docker容器来源码编译etcd
背景 etcd是CoreOS公司开发的分布式键值对存储库。在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储。 不幸的是,在github的release中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢。因此,我们只能通过源码编译etcd。 过程 1. 下载etcd源码。 $ git clone https://原创 2017-03-27 07:02:52 · 1828 阅读 · 0 评论 -
Docker版本升级至17.03
2017/3/3,Docker官方发表了一篇博客,Docker版本从1.13.*直接跳入17.03,该版本的意思是17年3月。同时,还声明了Docker以后会以CE(Community Edition)和EE(Enterprise Edition)的形式发布。其中,CE版本每个月发布一次,也就是说,随后的版本就是17.03、17.04、17.05等,而EE的版本是没三个月发布一次,对应的就是17.0原创 2017-03-23 07:10:31 · 8933 阅读 · 0 评论 -
Docker存储驱动之总览
简介 本文会介绍Docker存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动。 可插拔的存储驱动架构 Docker的存储驱动架构是可插拔的,可以让你很方便的将适合你环境和用例的存储驱动“插进”Docker。每个Docker存储驱动都建立在一种Linux文件系统或者卷管理系统之上,也可以很自由地按照其自己的方法去实现镜像层和容器层的管理。也就是说一些存储驱动在不原创 2017-03-15 05:51:36 · 2984 阅读 · 0 评论 -
Docker存储驱动之ZFS简介
ZFS是下一代的文件系统,支持了很多存储高级特性,如卷管理、快照、和校验、压缩和重复删除技术、拷贝等。 ZFS由Sun公司创建,现属于Oracle,ZFS是开源的,并基于CDDL license。因为CDDL和GPL不兼容,ZFS不能加入Linux kernel主线。然而,ZFS On Linux(ZoL)项目提供kernel模块和用户空间程序,这些都可以单独的安装。 ZFS on Li原创 2017-03-14 06:29:27 · 1908 阅读 · 0 评论 -
Docker存储驱动之Device Mapper简介
Device Mapper是一个基于kernel的框架,它增强了很多Linux上的高级卷管理技术。Docker的devicemapper驱动在镜像和容器管理上,利用了该框架的超配和快照功能。为了区别,本文使用Device Mapper指驱动中的框架,而devicemapper指Docker的存储驱动。 注意:商业支持的Docker Engine(CS-Engine)建议在RHEL和CentOS原创 2017-03-13 07:10:41 · 4925 阅读 · 1 评论 -
Docker存储驱动之OverlayFS简介
简介 OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性: 1) 更简单地设计; 2) 从3.18开始,就进入了Linux内核主线; 3) 可能更快一些。 因此,OverlayFS在Docker社区关注度提高很快,被很多人认为是AUFS的继承者。就像宣称的一样,OverlayFS还很年轻。所以,在生成环境使用它时,还是需要原创 2017-03-07 06:26:34 · 25143 阅读 · 0 评论 -
Dockerfile中CMD和ENTRYPOINT的区别
当启动一个容器时,CMD和ENTRYPOINT都可以用来执行启动命令。但它们的具体用法还是有一些区别: 1. Dockerfile必须至少指定CMD或者ENTRYPOINT其中的一个。 2. ENTRYPOINT应该用作容器的主执行程序。 3. CMD应该用于定义ENTRYPOINT的默认参数,或者为容器执行一个ad-hoc命令。 4. 当启动容器时使用交互时的参数时,CMD原创 2017-03-04 07:13:33 · 2034 阅读 · 0 评论 -
使用cgroup的blkio子系统自动限制磁盘
使用Cgroups的blkio子系统,可以限制磁盘的访问速度、iops等,详细方法可参看http://www.elmerzhang.com/2012/12/cgroups-learning-6-blkio-subsystem/ 。然而,使用这种方法有一个不足,就是只能通过限制某个进程在某个磁盘(或分区)的访问,而不能很通用的限制所有进程在该磁盘(或分区)上的访问。 由上文中的链接可以了解到原创 2016-03-02 23:52:30 · 4308 阅读 · 0 评论 -
删除docker0网卡
虚拟网卡docker0其实是一个网桥,如果想删除它,只需要按照删除网桥的方法即可。ifconfig docker0 downbrctl delbr docker0 docker0这个网桥是在启动Docker Daemon时创建的,因此,这种删除方法并不能根本上删除docker0,下次daemon启动(假设没有指定-b参数)时,又会自动创建docker0网桥。原创 2016-03-25 23:27:22 · 34192 阅读 · 1 评论 -
Docker源码编译
官方建议docker源码编译在docker容器内进行,因为官方提供的容器内已经继承了编译需要的环境,如果非要自己搭建编译环境也不是不可以,就是稍微有些繁琐。以下以1.8.2版本为例。 1.pull docker-dev:1.8.2的镜像docker pull docker-dev:版本具体版本可以查看官网。 ps:该镜像较大,可以考虑从国内镜像下载。 2.创建目录存放docker编译后生成的原创 2016-09-05 23:16:09 · 2507 阅读 · 0 评论 -
Docker网络代理设置
背景 在一些实验室环境,服务器没有直接连接外网的权限,需要通过网络代理。我们通常会将网络代理直接配置在/etc/environment、/etc/profile之类的配置文件中,这对于大部分操作都是可行的。然而,docker命令却使用不了这些代理。比如docker pull时需要从外网下载镜像,就会出现如下错误: $ docker pull hello-worldUnable to find i...原创 2017-02-18 12:09:59 · 80195 阅读 · 2 评论 -
使用国内docker镜像源
在国内,通过Docker的pull和push命令访问hub.docker时,网络十分慢,而且会出现各种各样的网络连接问题。因此这里介绍下如何使用国内的镜像源,这里以DaoCloud为例。 1. 注册DaoCloud用户; 2. 注册完成后,会进入dashboard页面,点击右上方的加速器。该页面提供了Linux、Windows和Mac的加速方案,我这里选择的是Linux; 3. 执行其提示的命原创 2017-02-22 06:19:01 · 12372 阅读 · 0 评论 -
Dockerfile注意事项
准则尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件。 避免安装不必须的包。 每个容器应该只关注一个功能点。 最小化镜像的层数。 多行参数时应该分类。这样更清晰直白,便于阅读和review,另外,在每个换行符\前都增加一个空格。 对构建缓存要有清楚的认识。 指令注意事项FROM Dockerfile referen原创 2017-02-23 06:19:03 · 3777 阅读 · 0 评论 -
Docker存储驱动之AUFS简介
简介 AUFS是曾是Docker默认的首选存储驱动。它非常稳定、有很多真实场景的部署、很强的社区支持。它有以下主要优点: 极短的容器启动时间。 有效的存储利用率。 有效的内存利用率。 虽然如此,但由于它没有包含在Linux内核主线中,所有很多Linux发行版并不支持AUFS。 以下章节介绍AUFS的特性,并且它们如何作用于Docker。特性镜像分层和部署 AUFS是原创 2017-03-01 05:34:16 · 2713 阅读 · 0 评论 -
Docker存储驱动之Btrfs简介
简介Btrfs是下一代的copy-on-write文件系统,它支持很多高级特性,使其更加适合Docker。Btrfs合并在内核主线中,并且它的on-disk-format也逐渐稳定了。不过,它的很多特性还仍然处于开发中。 Docker的btrfs存储驱动利用了很多Btrfs特性来管理镜像和容器。这些特性中最重要的就是thin provisioning(超配)、copy-on-write和快照。原创 2017-03-02 07:02:54 · 5185 阅读 · 0 评论