容器技术

Dockerfile 编写

北慕城南 提交于 2019-11-26 16:39:55
转: https://blog.fundebug.com/2017/05/15/write-excellent-dockerfile/ 如何编写最佳的Dockerfile 译者按: Dockerfile 的语法非常简单,然而如何加快镜像构建速度,如何减少 Docker 镜像的大小却不是那么直观,需要积累实践经验。这篇博客可以帮助你快速掌握编写 Dockerfile 的技巧。 原文: How to write excellent Dockerfiles 译者: Fundebug 本文采用意译,版权归原作者所有 我已经使用 Docker 有一段时间了,其中编写 Dockerfile 是非常重要的一部分工作。在这篇博客中,我打算分享一些建议,帮助大家编写更好的 Dockerfile。 目标: 更快的构建速度 更小的 Docker 镜像大小 更少的 Docker 镜像层 充分利用镜像缓存 增加 Dockerfile 可读性 让 Docker 容器使用起来更简单 总结 编写.dockerignore 文件 容器只运行单个应用 将多个 RUN 指令合并为一个 基础镜像的标签不要用 latest 每个 RUN 指令后删除多余文件 选择合适的基础镜像(alpine 版本最好) 设置 WORKDIR 和 CMD 使用 ENTRYPOINT (可选) 在 entrypoint 脚本中使用 exec

Docker和K8S

不想你离开。 提交于 2019-11-26 16:16:41
2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。 正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。 什么是“开源”?开源,就是开放源代码。也就是将原来内部保密的程序源代码开放给所有人,然后让大家一起参与进来,贡献代码和意见。 Open Source,开源 有的软件是一开始就开源的。也有的软件,是混不下去,创造者又不想放弃,所以选择开源。自己养不活,就吃“百家饭”嘛。 2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。 Solomon Hykes(今年刚从Docker离职) 不开则已,一开惊人。 越来越多的IT工程师发现了Docker的优点,然后蜂拥而至,加入Docker开源社区。 Docker的人气迅速攀升,速度之快,令人瞠目结舌。 开源当月,Docker 0.1版本发布。此后的每一个月

【Docker入门篇】 -- 2019-08-09 10:55:05

谁都会走 提交于 2019-11-26 16:09:22
目录 Linux容器 Docker的优势 Docker三大概念 安装使用Docker 补充知识 原文: http://106.13.73.98/__/102/ @ *** 所谓Docker Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,于2013年3月以Apache2.0授权协议开源,主要项目代码在GitHub上进行维护. Docker使用Google公司推出的GO语言进行开发实现. Docker是Linux容器的一种封装,提供简单易用的容器使用接口,它是最流行的Linux容器解决方案. Docker的接口相当简单,用户可以方便的创建、消费容器. Docker将应用程序与程序的依赖打包在一个文件内,运行这个文件就会生成一个虚拟容器. 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了Docker,就不用担心环境问题了. Docker应用场景 web应用的自动化打包和发布. 自动化测试和持续集成、发布. 在服务型环境中部署和调整数据库或其它应用. *** Linux容器 由于虚拟机的诸多问题,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,缩写LXC). . Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,在正常的进程外面套了一个保护层,对于容器里面的进程来说

【Docker入门篇】 -- 2019-08-09 10:44:27

岁酱吖の 提交于 2019-11-26 16:08:01
目录 Linux容器 Docker的优势 Docker三大概念 安装使用Docker 补充知识 原文: http://106.13.73.98/__/102/ @ *** 所谓Docker Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,于2013年3月以Apache2.0授权协议开源,主要项目代码在GitHub上进行维护. Docker使用Google公司推出的GO语言进行开发实现. Docker是Linux容器的一种封装,提供简单易用的容器使用接口,它是最流行的Linux容器解决方案. Docker的接口相当简单,用户可以方便的创建、消费容器. Docker将应用程序与程序的依赖打包在一个文件内,运行这个文件就会生成一个虚拟容器. 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了Docker,就不用担心环境问题了. Docker应用场景 web应用的自动化打包和发布. 自动化测试和持续集成、发布. 在服务型环境中部署和调整数据库或其它应用. *** Linux容器 由于虚拟机的诸多问题,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,缩写LXC). . Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,在正常的进程外面套了一个保护层,对于容器里面的进程来说

docker(2):docker的“前身”—lxc

谁说我不能喝 提交于 2019-11-26 16:02:31
docker-kubernetes集合 docker docker(1):容器技术简介 docker(2):docker的“前身”—lxc docker(3):docker简介 docker(4):docker的安装(centos7)和加速 docker(5):docker的镜像操作 docker(6):docker的容器管理 docker(7):docker容器的网络访问 docker(8):docker容器的端口映射 docker(9):docker的数据卷和数据卷容器 docker(10):手工制作docker镜像 . kubernetes . 来源: https://www.cnblogs.com/wangxu01/p/11303386.html

active directory基本知识

流过昼夜 提交于 2019-11-26 15:43:18
现在开始学习active directory,第一次写技术性文章,套用一句歌词的说法,偶的心怦怦怦直跳。 1.为什么叫做活动目录 刚刚接触活动目录这个名词的时候,一下就被搞蒙了,不知道活动目录和一般的windows目录(文件夹)有什么区别,它怎么就是活动的了,通过一段时间的学习,搞清楚了这些。 文件夹仅代表一个文件存在磁盘上的位置和层次关系,一个文件生成之后相对来说这个文件的所在目录也就相对固定了,也就是说它的属性也就相对固定了,是静态的。这个目录所能代表的仅是这个目录下所有文件的存放位置和所有文件总的大小,并不能得出其它有关信息,这样就影响到了整体使用目录的效率,也就是影响了系统的整体效率,使系统的整个管理变得复杂。 活动目录之所以称做“活动的”是因为它可以做到“由此及彼”的联想、映射,如找到了一个用户名,就可联想到它的账号、出生信息、E-mail、电话等所有基本信息,虽然组成这些信息的文件可能不在一块。同时不同应用程序之间还可以对这些信息进行共享,减少了系统开发资源的浪费,提高了系统资源的利用效率。 活动目录包括两个方面:目录和与目录相关的服务。目录是存储各种对象的一个物理上的容器,从静态的角度来理解这活动目录与我们以前所结识的“目录”和“文件夹”没有本质区别,仅仅是一个对象,是一实体;而目录服务是使目录中所有信息和资源发挥作用的服务,活动目录是一个分布式的目录服务

深入理解Docker容器和镜像及docker命令

梦想的初衷 提交于 2019-11-26 15:23:31
10张图带你深入理解Docker容器和镜像 【编者的话】本文用图文并茂的方式介绍了容器、镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker。 【Kubernetes培训通知】DockOne将会于2018年8月17日在 深圳举办Kubernetes技术培训 ,培训内容包括:Docker介绍、Docker镜像、网络、存储、容器安全;Kubernetes架构、设计理念、常用对象、网络、存储、网络隔离、服务发现与负载均衡;Kubernetes核心组件、Pod、插件、微服务、云原生、Kubernetes Operator、集群灾备、Helm等。同时北京站培训也已经启动, 详情点击查看 。 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。 当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难。于是,我花了几周的时间来学习Docker的工作原理,更确切地说,是关于Docker统一文件系统(the union file system)的知识,然后回过头来再看Docker的命令,一切变得顺理成章,简单极了。 题外话 :就我个人而言,掌握一门技术并合理使用它的最好办法就是深入理解这项技术背后的工作原理。通常情况下

Docker镜像进阶:了解其背后的技术原理

笑着哭i 提交于 2019-11-26 15:22:27
什么是 docker 镜像   docker 镜像是一个只读的 docker 容器模板,含有启动 docker 容器所需的文件系统结构及其内容,因此是启动一个 docker 容器的基础。docker 镜像的文件内容以及一些运行 docker 容器的配置文件组成了 docker 容器的静态文件系统运行环境:rootfs。可以这么理解,docker 镜像是 docker 容器的静态视角,docker 容器是 docker 镜像的运行状态。我们可以通过下图来理解 docker daemon、docker 镜像以及 docker 容器三者的关系(此图来自互联网):   从上图中我们可以看到,当由 ubuntu:14.04 镜像启动容器时,ubuntu:14.04 镜像的镜像层内容将作为容器的 rootfs;而 ubuntu:14.04 镜像的 json 文件,会由 docker daemon 解析,并提取出其中的容器执行入口 CMD 信息,以及容器进程的环境变量 ENV 信息,最终初始化容器进程。当然,容器进程的执行入口来源于镜像提供的 rootfs。 rootfs   rootfs 是 docker 容器在启动时内部进程可见的文件系统,即 docker 容器的根目录。rootfs 通常包含一个 操作系统 运行所需的文件系统,例如可能包含典型的类 Unix 操作系统 中的目录系统,如

深入分析Docker镜像原理

眉间皱痕 提交于 2019-11-26 15:21:05
第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角。例如一个ubuntu:14.04的镜像,提供了一个基本的ubuntu:14.04的发行版,当然此 镜像是不包含操作系统Linux内核的。 说到此,可能就需要注意一下,linux内核和ubuntu:14.04Docker镜像的区别了。传统虚拟机安装ubuntu:14.04会包含两部分,第一,某一个Linux内核的发行版本,比如Linux 3.8版本的内核;第二,第一个特定的Ubuntu发行版,这部分内容不包含Linux内核,但是包含Linux之外的软件管理方式,软件驱动,如 apt-get软件管理包等。 理解以上内容之后,就可以理解,为什么在一个Linux内核版本为3.8的ubuntu:14.04基础上,可以把Linux内核版本升级到3.18,而ubuntu的版本依然是14.04。最主要的就是:Linux内核版本与ubuntu操作系统发行版之间的区别。 Linux内核+ubuntu操作系统发行版,组成一台工作的机器让用户体验。那么灵活替换ubuntu操作系统发行版,那是不是也可以实现呢。那么Docker很方便的利用了这一点,技术手段就是Docker镜像。 Docker的架构中

如何在Debian 9上安装和使用Docker

风格不统一 提交于 2019-11-26 12:57:25
介绍 Docker 是一个简化 容器中 应用程序进程管理过程的应用程序。容器允许您在资源隔离的进程中运行应用程序。它们与虚拟机类似,但容器更便携,更加资源友好,并且更依赖于主机操作系统。 在本教程中,您将在Debian 9上安装和使用Docker Community Edition(CE)。您将安装Docker本身,使用容器和映像,并将映像推送到Docker存储库。 先决条件 要学习本教程,您需要具备以下条件: 一个Debian 9服务器按照 Debian 9初始服务器设置指南设置 ,没有服务器的同学可以在 这里购买 ,不过我个人更推荐您使用 免费 的腾讯云 开发者实验室 进行试验,学会安装后再 购买服务器 。 一个具有sudo权限的非root用户。 在您的服务器上启用防火墙,如果您使用的是腾讯云的 CVM 服务器,您可以直接在腾讯云控制台中的 安全组 进行设置。 如果您希望创建自己的图像并将其推送到Docker Hub,则可以使用 Docker Hub 上的帐户,如步骤7和8所示。 第1步 - 安装Docker 官方Debian存储库中提供的Docker安装包可能不是最新版本。为了确保我们获得最新版本,我们将从官方Docker存储库安装Docker。为此,我们将添加一个新的包源,从Docker添加GPG密钥以确保下载有效,然后安装该包。 首先,更新现有的包列表: sudo apt