随笔分类 - Docker学习笔记
摘要:0x00 概述 Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnW
阅读全文
摘要:预览目录 更改目录拥有者 Data Container 切换用户 参考文章 0x00 概述 如果你读了docker volume 容器卷的那些事(一),我想应该不会遇到下面这些问题的,毕竟是具有指导意义的。本篇文章的内容依旧是有关 volume 的内容,主要讲诉的是如何解决非 root 用户下的文件
阅读全文
摘要:预览目录 volume 方式 相关用例 使用方式 使用 volume driver bind mount 方式 相关用例 使用方式 配置selinux标签 配置macOS的安装一致性 tmpfs 方式 相关用例 使用方式 0x00 概述 接触 docker 的朋友都知道,docker 镜像是以 la
阅读全文
摘要:之前对这几个command是忘了记,记了混~所以写下笔记以巩固之。 1.docker save docker save -h Usage: docker save [OPTIONS] IMAGE [IMAGE...] Save one or more images to a tar archive
阅读全文
摘要:0x00 概述 使用 Docker 时,最常用的命令无非是 docker container 和 docker image 相关的子命令,当然最初没有管理类命令(或者说分组)的时候,最常使用的命令也无非是 docker run docker commit docker build 和 docker
阅读全文
摘要:0x00 概述 服务发现应用是很多服务化系统的组成部分,所以在开发、测试环境中也就有必要配备一套服务发现体系来配合我们的开发、测试工作。在这一小节里,我们就来谈谈如何在 Docker 环境下部署服务发现应用。 0x01 使用 Docker Compose 模拟 Zookeeper 集群 实现服务发现
阅读全文
摘要:0x00 概述 Java Web 泛指以 Java 程序为基础向外提供 Web 服务的技术及相关工具,狭义上来说,我们也可以说 Java Web 是由 Servlet 程序提供的 Web 服务。 对我们而言,Tomcat 无疑是最常见的 Servlet 容器,所以在这个小节里,我们来搭建一个以 To
阅读全文
摘要:0x00 概述 上一节里我们谈到了小型的独立项目如何使用 Docker Compose 来搭建程序的运行环境,对于由多人或多部门参与的中大型服务化架构的项目,仅由一个 Docker Compose 项目来管理它们的运行环境显然是不切实际的。在这一小节里,我们就谈谈如何在服务化开发中合理利用 Dock
阅读全文
摘要:0x00 概述 通过阅读之前的小节,相信大家对 Docker 在开发中的应用已经有了一定的了解。作为一款实用的软件,我们必须回归到实践中来,这样才能更好地理解 Docker 的实用逻辑和背后的原理。在这一小节里,我们就举一个完整的例子,让大家跟随这个项目的脉络,熟悉如何通过 Docker 和 Doc
阅读全文
摘要:0x00 概述 与 Dockerfile 一样,编写 Docker Compose 的配置文件是掌握和使用好 Docker Compose 的前提。编写 Docker Compose 配置文件,其本质就是根据我们所设计的应用架构,对不同应用容器进行配置并加以组合。在这一节中,我们就来谈谈如何编写 D
阅读全文
摘要:0x00 概述 通过之前的介绍,我们已经基本掌握了构建、运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能组成的。虽然我们之前提到了容器间互相连接、交换数据的各种方法,通过这些方法足以搭建起完整的用于应用系
阅读全文
摘要:0x00 概述 自己编写 Dockerfile 能够很好的实现我们想要的程序运行环境,不过如果装有我们想要环境的镜像已经由热心的开发者构建好并共享在 Docker Hub 上,直接使用它们就会远比自己编写 Dockerfile 并进行构建要来的简单的多了。事实上,在开发过程中我们用到的镜像大部分还是
阅读全文
摘要:0x00 概述 在掌握 Dockerfile 的基本使用方法后,我们再来了解一些在开发中使用 Dockerfile 的技巧。这一小节的展现方式与之前的略有不同,其主要来自阅读收集和我自身在使用中的最佳实践。也许这里面介绍的不是最为标准或是合乎规范的方式,但一定是能够直接帮助大家在开发中使用 Dock
阅读全文
摘要:0x00 概述 由于 Docker 镜像的结构优势,使它的占用空间远小于普通的虚拟机镜像,而这就大幅减少了 Docker 镜像在网络或者其他介质中转移所花费的时间,进而提高了我们进行迁移部署的效率。不过,你要是以为这就是 Docker 能够快速部署的终极大招那就大错特错了。在这一小节里,我们将谈到
阅读全文
摘要:0x00 概述 让 Docker 引以为傲的是它能够实现相比于其他虚拟化软件更快的环境迁移和部署,在这件事情上,轻量级的容器和镜像结构的设计无疑发挥了巨大的作用。通过将容器打包成镜像,再利用体积远小于其他虚拟化软件的 Docker 镜像,我们可以更快的将它们复制到其他的机器上。在这一节中,我们就专门
阅读全文
摘要:0x00 概述 数据是应用程序重要的产出,所以很好的管理和存储数据,是对应用程序劳动结果的尊重。特别是在大数据时代,所有的数据都是重要的资产,保护好数据是每个开发者必须掌握的技能。我们知道,在 Docker 里,容器运行的文件系统处于沙盒环境中,与外界其实是隔离的,那么我们又要如何在 Docker
阅读全文
摘要:0x00 概述 在互联网时代,网络已经成为绝大多数应用进行数据交换的主要通道,Docker 作为集群部署的利器,在网络支持上也下了许多功夫。功能丰富和强大,并不代表使用复杂,在 Docker 的封装下,我们依然可以通过命令和参数轻松的为容器制定不同的网络方案。在这一节中,我们就来了解 Docker
阅读全文
摘要:0x00 概述 容器是基于容器技术所建立和运行的轻量级应用运行环境,它是 Docker 封装和管理应用程序或微服务的“集装箱”。在 Docker 中,容器算是最核心的部分了,掌握容器的操作也是 Docker 中最基础的技能了。在这一节中,我们会深入了解容器,展示关于容器的操作。 0x01 容器的创建
阅读全文
摘要:0x00 概述 之前我们说到了,Docker 与其他虚拟化软件的一处不同就是将镜像管理纳入到了功能之中。实现虚拟化只是程序能够无缝移植的一部分,而有了镜像管理,就真正取代了我们在移植过程中的繁琐操作。利用 Docker 的镜像管理功能,我们可以很方便的通过网络传输和分享镜像,并保障镜像内容的一致性。
阅读全文
摘要:0x00 概述 镜像和容器作为 Docker 里最基础的概念,我们很有必要了解 Docker 对它们的很多定义以及其他与它们有关的知识。在这一小节里,我们就专门针对镜像与容器两个概念展开,细致的梳理与这两者有关的概念和定义。 0x01 Docker 镜像 如果进行形象的表述,我们可以将 Docker
阅读全文