随笔分类 -  Docker

摘要:Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈。既然是概览,所以不会涉及具体的技术细节。 Docker 自从发布以来发生了很多的变化,并且有些方面的变化还非常大。对于技术爱好者来说,我们喜欢酷毙新的功能,喜欢旧功能的改善。但对于生产环境中的使 阅读全文
posted @ 2018-05-07 07:08 sparkdev 阅读(25722) 评论(8) 推荐(15) 编辑
摘要:目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一。Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的镜像,Docker 会尝试从默认的镜像仓库下载。当然用户也可以通过配置,使用自定义的镜像仓库。本文将 阅读全文
posted @ 2018-04-24 06:59 sparkdev 阅读(29954) 评论(11) 推荐(16) 编辑
摘要:持续集成中的 pipeline 技术和 docker 都是当前正在发展的主流方向,当然把它们结合起来在 CI/CD 过程中发挥出更强大的威力也是大家共同的目标。本文将介绍如何在 Jenkins pipeline 中集成使用 docker,好在当前的 Jenkins 已经默认通过插件实现了与 dock 阅读全文
posted @ 2018-04-19 08:51 sparkdev 阅读(21418) 评论(5) 推荐(8) 编辑
摘要:对于 devops 来说,容器技术绝对是我们笑傲江湖的法宝。本文通过一个小 demo 来介绍如何使用容器技术来改进我们的 devops 工作流。 devops 的日常工作中难免会有一些繁琐的重复性劳动。比如管理 Azure 上的各种资源,我们会使用 Azure CLI 工具。同时我们也会使用 Ans 阅读全文
posted @ 2018-04-09 08:33 sparkdev 阅读(31303) 评论(6) 推荐(21) 编辑
摘要:在构建容器镜像时,我们总是希望得到尺寸更小的镜像。比如尽可能的减少镜像中的层数,因为创建新的层是有代价的,每个层都会产生一些数据上的开销。常见的手段是通过 && 把多个 RUN 指令合并为一个: 而现在,我们有了更多的选择。我们可以使用 multi-stage 技术(关于 multi-stage 技 阅读全文
posted @ 2018-03-26 08:39 sparkdev 阅读(24889) 评论(18) 推荐(35) 编辑
摘要:在应用了容器技术的软件开发过程中,控制容器镜像的大小可是一件费时费力的事情。如果我们构建的镜像既是编译软件的环境,又是软件最终的运行环境,这是很难控制镜像大小的。所以常见的配置模式为:分别为软件的编译环境和运行环境提供不同的容器镜像。比如为编译环境提供一个 Dockerfile.build,用它构建 阅读全文
posted @ 2018-03-12 08:42 sparkdev 阅读(34563) 评论(15) 推荐(42) 编辑
摘要:笔者在《Docker 基础 : 数据管理》一文中介绍了 docker 数据卷(volume) 的基本用法。随着使用的深入,笔者对 docker 数据卷的理解与认识也在不断的增强。本文将在前文的基础上介绍 docker 数据卷的原理及一些高级用法。如果您想先了解 docker 数据卷的基本概念与用法, 阅读全文
posted @ 2018-03-05 08:51 sparkdev 阅读(49180) 评论(10) 推荐(25) 编辑
摘要:CMD 和 ENTRYPOINT 指令都是用来指定容器启动时运行的命令。单从功能上来看,这两个命令几乎是重复的。单独使用其中的一个就可以实现绝大多数的用例。但是既然 doker 同时提供了它们,为了在使用中不至于混淆,本文试图把它们的用法理清楚。 exec 模式和 shell 模式 CMD 和 EN 阅读全文
posted @ 2018-02-26 08:31 sparkdev 阅读(100615) 评论(20) 推荐(62) 编辑
摘要:默认情况下容器可以使用的主机 CPU 资源是不受限制的。和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源耗尽,从而导致更大的灾难。本文将介绍如何限制容器可以使用的 CPU 资源。本文的 demo 中会继续 阅读全文
posted @ 2017-12-19 08:32 sparkdev 阅读(128924) 评论(13) 推荐(32) 编辑
摘要:默认情况下容器使用的资源是不受限制的。也就是可以使用主机内核调度器所允许的最大资源。但是在容器的使用过程中,经常需要对容器可以使用的主机资源进行限制,本文介绍如何限制容器可以使用的主机内存。 为什么要限制容器对内存的使用? 限制容器不能过多的使用主机的内存是非常重要的。对于 linux 主机来说,一 阅读全文
posted @ 2017-12-14 07:46 sparkdev 阅读(120327) 评论(14) 推荐(39) 编辑
摘要:在容器的使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的。幸运的是 docker 自己就提供了这样的命令:docker stats。 默认输出 docker stats 命令用来显示容器使用的系统资源。不带任何选项执行 docker stats 命令: 默认情况下 阅读全文
posted @ 2017-11-13 08:17 sparkdev 阅读(91341) 评论(7) 推荐(29) 编辑
摘要:我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程。这些操作的本质都是通过从主机向容器发送信号实现主机与容器中程序的交互。比如我们可以向容器中的应用发送一个重新加载信号,容器中的应用程序在接到信 阅读全文
posted @ 2017-09-27 09:18 sparkdev 阅读(31101) 评论(11) 推荐(28) 编辑
摘要:搭建环境向来是一个重复造轮子的过程,Docker Machine 则把用户搭建 Docker 环境的各种方案汇集在了一起。笔者在《Docker Machine 简介》一文中演示了使用 Docker Machine 在本地的 vSphere 主机中安装 Docker 环境。但是在云计算大爆炸的今天,真 阅读全文
posted @ 2017-06-27 07:11 sparkdev 阅读(32322) 评论(29) 推荐(30) 编辑
摘要:笔者在《Docker Machine 简介》一文中简单介绍了 Docker Machine 及其基本用法,但是忽略的细节实在是太多了。比如 Docker 与 Docker Machine 的区别?又如当我们执行 docker-machine create 命令时,Docker Machine 都做了 阅读全文
posted @ 2017-06-23 06:58 sparkdev 阅读(42288) 评论(37) 推荐(43) 编辑
摘要:Docker Machine 是什么? Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 D 阅读全文
posted @ 2017-06-20 06:46 sparkdev 阅读(45527) 评论(34) 推荐(38) 编辑
摘要:在局域网内部署 Docker Registry 可以极大的提升平时 pull、push 镜像的速度,从而缩短自动化操作的过程。同时也可以缓解带宽不足的问题,真是一举多得。本文将从创建单机的 Docker Registry 开始,逐步完成局域网内可用的 Docker Registry 的创建,并重点解 阅读全文
posted @ 2017-05-22 19:41 sparkdev 阅读(17053) 评论(27) 推荐(34) 编辑
摘要:Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像。我们会先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写定制镜像的 Dockerfile。 基本结构 Dockerfile 由一行行命令语句组成,并且支持已 阅读全文
posted @ 2017-01-29 19:31 sparkdev 阅读(23606) 评论(13) 推荐(20) 编辑
摘要:大量的互联网应用服务包含多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合。Docker 目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务。接下来我们将讲述 Docker 的网络功能,包括使用端口映射机制来将容器内应用服务提供给外部网络,以及通过容器互联系统让多个容器之间 阅读全文
posted @ 2017-01-14 21:01 sparkdev 阅读(16287) 评论(7) 推荐(10) 编辑
摘要:用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作。容器中管理数据主要有两种方式:数据卷(Data Volumes),数据卷容器(Data Volume Containers)。 数据卷 阅读全文
posted @ 2016-12-23 21:35 sparkdev 阅读(16022) 评论(6) 推荐(16) 编辑