容器技术

docker镜像

心不动则不痛 提交于 2019-12-07 14:15:56
docker镜像 是文件系统的层叠,有点像多层叠加的纸张,如我们使用的钞票。 最底层是一个引导层,为引导文件系统,即bootfs。负责容器启动时的引导作用,引导结束后,就会被卸载unmunt。 bootfs的上一层是root文件系统,即rootfs,只能进行读操作。它通过联合加载技术,将各个文件系统叠加到一起,对外,相当于一个文件系统。 当从一个镜像启动容器时,docker会在该镜像的顶层加载一个读写文件系统,容器中运行的程序就在这可读写层中执行。 如下图所示: 强大的写时复制(copy on write)技术 容器第一次启动时,初始的读写层是空的。如果容器中的程序需要修改某个文件,该文件会从只读层复制到读写层,然后进行修改操作。 来源: CSDN 作者: Xydrm 链接: https://blog.csdn.net/xunye_dream/article/details/90576295

[转载] docker终极指南

二次信任 提交于 2019-12-07 14:04:32
原文: http://dockerone.com/article/133 讲的非常清楚的一篇docker入门材料, 并且作者附带了详细的连接. Docker终极指南 【编者的话】Docker入门的好文章,之前在微博上就有很多人推荐,也是2015年的新文章,DockerOne作了翻译。本教程有三个目标:说明Docker解决的问题、说明它如何解决这个问题、以及说明它使用了哪些技术来解决这个问题,这不是一篇教你怎么运行安装Docker的教程。 Docker是一个相对较新且发展非常快速的项目,可用来创建非常轻量的“虚拟机”。注意这里的引号非常重要,Docker创建的并非真正的虚拟机,而更像是打了激素的chroot,嗯,是大量的激素。 在我们继续之前,我先说下,截至目前(2015年1月4日)为止, Docker只能在Linux上工作 ,暂不支持Windows或OSX(译者注:不直接支持)。我稍后会讲到Docker的架构,你会明白其中的原因。所以,如果想在非Linux平台上使用Docker,你需要在虚拟机里运行Linux。 本教程有三个目标:说明Docker解决的问题、说明它如何解决这个问题、以及说明它使用了哪些技术来解决这个问题。这不是一篇教你怎么运行安装Docker的教程, Docker 此类 教程 已经 有 很多 ,包括 Docker作者的在线互动教程 (译者注

有容云——窥探Docker中的Volume Plugin内幕

微笑、不失礼 提交于 2019-12-07 13:57:41
编者注: 本文根据有容云技术实施团队原创分享内容整理。对Docker技术感兴趣、或对本文中细节需继续探讨的朋友,欢迎加入我们参与讨论! 特别鸣谢中生代技术群分享支持。 注:本期分享由张朝潞原创,有容云整理发布,转载请注明出处 作者介绍: 张朝潞,有容云(Yourun Cloud)平台存储架构师。曾工作于UIT,华三,腾讯,专注分布式存储的研究和开发,对云计算存储解决方案方面有很深的技术造诣和行业理解。 本次交流将与大家分享Docker Volume plugin相关的内容。今日主题是窥探Docker中的Volume plugin内幕。 因为应用数据对安全,可用性,共享,性能等方面的要求和Root Image的要求完全不一样,所以Docker并不推荐采用Root Image的存储方式来存储应用数据,而是采用了Volume这样一个独立的数据访问接口。 应用通过Volume去访问相关的数据,Volume的实现和CoW的分层文件系统完全独立,通过Volume plugin机制可轻易驱动外部存储。 下面我们就围绕Volume Plugin Introduction、Container and Volume、Docker Volume Plugin、自定义Volume Plugin四个方面来展开。 一. Volume Plugin Introduction 通过Volume机制

创建支持SSH服务的Docker镜像

╄→гoц情女王★ 提交于 2019-12-07 13:48:32
2015-01-18 wcdj 摘要 :通常Linux系统管理员通过SSH服务来管理OS,但Docker的很多镜像是不带SSH服务的,可以通过attach(遇到假死的现象)或者exec(目前测试ok)的方法进入容器来管理,但是这些命令都无法解决远程管理容器的问题,因此,当需要远程登陆到容器内进行一些操作的时候,就需要SSH的支持了。本文记录如何使用docker commit创建一个带有SSH服务的ubuntu镜像。 (1) 首先以交互的方式运行我们本地的ubuntu容器 docker run -it ubuntu:14.04 /bin/bash (2) 尝试使用sshd命令,会发现容器中没有安装该服务。 sshd bash: sshd: command not found (3) 使用apt包管理器安装openssh-server apt-get update apt-get install openssh-server (4) 安装和配置SSH服务 要正常启动SSH服务,需要目录/var/run/sshd存在,手动创建它,并启动服务: mkdir -p /var/run/sshd /usr/sbin/sshd -D & 此时查看容器的22端口(SSH服务器默认监听的端口),已经处于监听状态: (5) 修改SSH服务的安全登陆配置 在远端客户端机器(即,非容器机器)执行命令 ssh

这可能是最为详细的Docker入门吐血总结

风格不统一 提交于 2019-12-07 13:09:05
这可能是最为详细的Docker入门吐血总结 2018-10-15 18:00 来源: Hadoop大数据应用 </div> 原标题:这可能是最为详细的Docker入门吐血总结 Docker是什么? 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,不信的话看看下面这张图。 这是我在某招聘网站上看到的招聘 Java开发工程师 的招聘要求,其中有一条熟悉 docker 成为了你快速入职的加分项,由此可见熟悉 docker 在互联网公司的地位之重要。 当然对于我们 CTF选手 而言,熟悉 docker 可以快速搭建 CTF环境 ,完美地还原比赛真实漏洞的场景,帮助我们快速提升自己。 市面上已经有很多优秀的教程,但是很多原理性的东西,笔者认为那些教程对初学者而言还是很难理解,感觉没有说清楚(笔者自己都觉得挺懵逼的),为了让初学者少走弯路,我将以我的学习经历以及作为一个 CTF选手 的角度,编写此套教程,来带大家去了解并熟练运用 docker ,祝愿各位读者朋友们学完此套教程后,在未来企业面试中能够多一项加分的筹码,能够帮助到大家,我觉得就很值了。 既然说了这么多, docker 到底是个什么东西呢? 我们在理解 docker 之前,首先我们得先区分清楚两个概念, 容器 和 虚拟机 。

Docker学习总结

萝らか妹 提交于 2019-12-07 13:04:37
由于项目中大量使用到了 Docker 容器技术,所以这段时间花了一些时间学习了 docker ,不过比较简单属于入门学习资料吧,下面是对两个星期利用零碎时间学习 docker 的总结 : 主要参考来源 :http://cloudman.blog.51cto.com/10425448/p-5 写在前面的话 每一轮新技术的兴起,无论对公司还是个人既是机会也是挑战。 我个人的看法是: 如果某项新技术未来将成为主流,就应该及早尽快掌握 。 因为: 1 、 新技术意味着新的市场和新的需求。 初期掌握这种技术的人不会很多,而市场需求会越来越大,因而会形成供不应求的卖方市场,物以稀为贵,这对技术人员将是一个难得的价值提升机会。 2 、 学习新技术需要时间和精力,早起步早成材。 3 、本文主要总结容器核心知识,进阶知识以后有机会在学习 What - 什么是容器? 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。 How-为什么需要容器? Docker 将集装箱思想运用到软件打包上,为代码提供了一个基于容器的标准化运输系统。Docker 可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上 容器基本入门

Docker基本介绍与安装

為{幸葍}努か 提交于 2019-12-07 06:01:17
Docker入门基础知识 1. 初识Docker Docker的优点 Docker的体系结构 内部组件 虚拟机与容器的区别 (1)虚拟机 (2)容器 应用场景 Docker-CE安装 卸载Docker 2. 镜像管理 镜像是什么 镜像与容器的联系 存储驱动 常见的Linux发行版支持的存储驱动 下载镜像 镜像管理命令 (1) 镜像查看 (2) 镜像拉取和推送 (3)删除一个镜像 (4) 标记镜像 (5) 导出导入镜像 3. 容器管理 (1) 创建容器 (2)暴露端口到宿主机上 (3)执行重启策略 (4 )容器资源限制!!! 容器管理常用命令 4. 管理应用程序数据 将Docker主机数据挂载挂载到容器 (1)volume (2)Bind Mounts 搭建LNMP(Linux,Nginx, Mysql, PHP)网站平台 1. 初识Docker Docker是一个 开源 应用容器引擎,使用 Go语言开发 ,基于Linux内核的 cgroup,namespace, Union FS 等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为 容器 。 Docker的优点 Docker的理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序,程序之间相互隔离 总结:开箱服务,快速部署,可移植性强

docker 入门操作与本地厂库

混江龙づ霸主 提交于 2019-12-07 06:00:58
docker 自诞生以来就是业内讨论得很火的一个话题,讨论程度仅此于openstack,后期应该会持续更新一些关于docker的内容: docker是什么:简单来说docker 是软件工业的集装箱技术,可以实现相互隔离快速打包部署功能。 docker的安装和基本命令: 环境: centos 7 docker安装: [root@xiaoluo src]# yum install docker-io -y ##docker三个基本概念我之见: 1、镜像:可以理解成一个简单的系统,在上面可以部署和运行东西,用镜像可以启动一个容器。 2、容器:一个容器代表一个独立的任务,各容器之前相互隔离运行。 3、厂库:存放镜像的地方。 查看镜像: [root@xiaoluo src]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos latest 60e65a8e4030 8 weeks ago 196.6 MB ubuntu 14.04 d55e68e6cc9c 11 weeks ago 187.9 MB *TAG:镜像的标识,当使用push不加别的版本,默认使用的是latest. IMAGE ID:镜像的唯一标识 查看可以下载镜像: [root@xiaoluo src]# docker search centos

有容云:实战总结之利用Docker、Docker Compose &Rancher构建持续部署2

霸气de小男生 提交于 2019-12-07 06:00:26
前言:本文由John Patterson 、 Chris Lunsford写于2016年4月20日,译者 有容云 向波,转载请注明出处。 在本系列文章的第一部分,我们搭建了基本的构建和部署流水线(pipeline)。容器不再是靠登陆服务器,然后输入记忆中的Docker命令来部署。镜像的构建也已经由Jenkins服务器实现了自动化。我们将 Docker 命令写成Bash脚本,保存在Git中,实现了版本追踪。应该说,我们对原有流程做了很大的改进。但是,仍然有一些痛点我们需要关注,在本文中,我们将看一下如何使用Docker Compose和Ansible来优化持续部署工作。 阅读前文请点击: 有容云:实战总结之利用Docker、Docker Compose &Rancher构建持续部署 为了部署一个容器镜像,运维工程师需要登录到服务器中,在shell 中执行含有Docker命令的脚本。这太土了,同时还需要运维等待命令执行完毕。这种模式对整个团队没有任何益处。(作为一个工程师,有多少次你需要盯着本来可以自动化完成的任务?)另外,大多数情况下,运维人员从笔记本上发起的SSH会话中执行命令,部署过程也没有实现可视化记录和日志保留。 如果你还记得,我们的部署脚本应该是如下的样子: 我们已经做到了从Docker run命令中抽象了一层,工程师不需要知道每个镜像成功运行所需要的具体参数

《微服务架构实战》读书笔记四----Docker

家住魔仙堡 提交于 2019-12-07 01:40:14
文章目录 《微服务架构实战》读书笔记四----Docker Docker原理 更轻量级的虚拟化 三个概念理解Docker Dockerfile 定制一切 Dockerfile命令 Dockerfile构建过程 《微服务架构实战》读书笔记四----Docker Docker原理 Docker是一个客户端-服务端(C/S)架构的程序,Docker客户端只需要向Docker服务端或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker及一整套RESTful API 可以在同一台宿主机器上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机远程的Docker守护进程 Docker依赖的Linux的内核特性包括Namespaces命名空间和Control groups控制组。 Namespace命名空间 PID 进程ID隔离 NET 管理网络端口 IPC 进程间通信 管理跨进程通信的访问 MNT 管理挂载点 UTS 隔离内核和版本标识 Control groups 控制组 Control groups控制组 资源限制 优先级设定 资源度量 资源控制及资源分配 Docker 容器的能力包括 文件系统隔离----每个容器都在自己的root文件系统,可以独立挂载外部文件系统 进程隔离---