Docker 的技术组件
Docker可以运行于任何安装了现代Linux内核的x64主机上。推荐的内核版本是3.8或者更高。Docker的开销比较低,可用于服务器、台式机或者笔记本。它包括以下几个部分。
- 一个原生的Linux容器格式,Docker中称为libcontainer。
- 文件系统隔离: 每个容器都有自己的root文件系统。
- 进程隔离:每个容器都运行在自己的进程环境中。
- 网络隔离:容器间的虚拟网络接口和IP地址都是分开的。
- 资源隔离和分组:使用cgroup(即control group,linux 的内核特性之一)将CPU和内存资源之类的资源独立分配给每个Docker容器。
- 写时复制: 文件系统都是通过写时复制创建的,这就意味着文件系统是分层的、快速的,而且占用的磁盘空间更小。
- 日志: 容器产生的STDOUT、STDERR和STDIN这些IO流都会被收集并记入日志,用来进行日志分析和故障排错。
- 交互式shell:用户可以创建一个伪终端,将其连接到STDIN,为容器提供一个交互式的shell
安装先决条件:
- 运行Linux3.8或者更高版本内核(64bit)
- 内核必须支持一种合适的存储驱动(storage driver),例如:
- Device Manager;
- AUFS
- vfs
- btrfs
- ZFS
- 默认存储驱动通常是Device Mapper或AUFS
- 内核必须支持并开启cgroup和命名空间(namespace)功能。
检查前提条件
- 内核:通过uname命令检查内核版本信息(uname -a)
- 检查Device Mapper(存储驱动):任何Ubuntu 12.04或者更高版本的宿主机应该都已经按照了Device Mapper,可以通过以下命令
ls -l /sys/class/misc/device-mapper
也可以在/proc/devices文件中检查是否有device-mapper条目,
sudo grep device-mapper /proc/devices
如果没有出现device-mapper的相关信息,也可以尝试加载dm_mod模块,如下:
sudo modprobe dm_mod
cgroup 和命令空间自2,6版本开始已经集成在linux内核中了,2.6.38以后的内核对cgroup和命令空间都提供了良好的支持,基本上没什么bug
Install Docker
使用Docker DEB软件包安装docker
1) 添加Docker的APT仓库
sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-trusty main >/etc/apt/sources.list.d/docker.list"
应该将trusty 替换为主机的Ubuntu发行版本,通过运行lsb_release 命令来实现,检测curl有没有安装
sudo lsb_release --codename |cut -f2 trusty
添加Docker仓库的GPG秘钥,
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
更新APT源
sudo apt-get update
安装Docker软件包
sudo apt-get install docker-engine
检查安装
docker info
在Ubuntu中,如果使用了UFW(Uncomplicated Firewall).需在UFW中启用数据包的转发,这样才能让Docker正常运行
修改/etc/default/ufw,将DEFAULT_FORWARD_POLICY="DROP 改为
DEFAULT_FORWARD_POLICY=“ACCEPT”
保存修改内容并重新加载UFW即可
sudo ufw reload
Docker 的技术组件的更多相关文章
- 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程 ...
- Prometheus 架构 - 每天5分钟玩转 Docker 容器技术(83)
Prometheus 是一个非常优秀的监控工具.准确的说,应该是监控方案.Prometheus 提供了监控数据搜集.存储.处理.可视化和告警一套完整的解决方案. 让我们先来看看 Prometheus ...
- 如何快速部署 Prometheus?- 每天5分钟玩转 Docker 容器技术(85)
上一节介绍了 Prometheus 的核心,多维数据模型.本节演示如何快速搭建 Prometheus 监控系统. 环境说明 我们将通过 Prometheus 监控两台 Docker Host:192. ...
- 一张表搞懂各种 Docker 监控方案 - 每天5分钟玩转 Docker 容器技术(86)
前面我们已经介绍了ps/top/stats.Sysdig.Weave Scope.cAdvisor 和 Prometheus 多种容器监控工具和方案,是时候做一个比较了.下面将从五个方面来对比它们之间 ...
- 初探 ELK - 每天5分钟玩转 Docker 容器技术(89)
在开源的日志管理方案中,最出名的莫过于 ELK 了.ELK 是三个软件的合称:Elasticsearch.Logstash.Kibana. Elasticsearch一个近乎实时查询的全文搜索引擎.E ...
- 万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)
前面的 ELK 中我们是用 Filebeat 收集 Docker 容器的日志,利用的是 Docker 默认的 logging driver json-file,本节我们将使用 fluentd 来收集容 ...
- 部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)
Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集.检索.可视化 Dashboard.本节将实践用 Graylog 来管理 Docker 日志. Graylog 架构 G ...
- 部署 k8s Cluster(上)- 每天5分钟玩转 Docker 容器技术(118)
我们将部署三个节点的 Kubernetes Cluster. k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node. 所有节点的操作系统均为 Ubuntu ...
- 部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)
上节我们通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署. 安装 Pod 网络 要 ...
随机推荐
- 【nodejs】理想论坛帖子下载爬虫1.08
//====================================================== // 理想论坛帖子下载爬虫1.09 // 使用断点续传模式,因为网络传输会因各种原因中 ...
- 论asp.net out、ref、return
论asp.net out.ref.return ref(引用类型) ref引用类型进出都必须赋值,赋值后会改变类型原来的指针. out(值类型) out值类型进可以不赋值,出必须赋值. return( ...
- Ubuntu/Centos 系统上安装与配置Apache
一.在线安装: Ubuntu:sudo apt-get install apache2 Centos: sudo yum install apache2 二.安装后的位置: 1.服务地址:/etc/i ...
- Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案
一.解决方案: 方案一: orm.Debug = false orm.DefaultTimeLoc = time.UTC orm.RegisterDriver("mysql", o ...
- mac pro 显示隐藏文件
经常希望在IOS操作系统现实隐藏文件,下面两条语句可以使用: 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:de ...
- unable to find the sources of your current Linux kernel.
运行 sh ./VBoxLinuxAdditions.run 时FAILED,查看日志: /tmp/vbox.0/Makefile.include.header:97: *** Error: unab ...
- 【超精简JS模版库/前端模板库】原理简析 和 XSS防范
使用jsp.php.asp或者后来的struts等等的朋友,不一定知道什么是模版,但一定很清楚这样的开发方式: <div class="m-carousel"> < ...
- Spring Cloud Edgware SR3 让Zuul支持形如 /xxx和/xxx/yyy 格式的路径配置
在包路径:org.springframework.cloud.netflix.zuul.filters 下,新建类SimpleRouteLocator,取代jar包中的类.内容如下: /* * Cop ...
- vmware中的 CentOS7 虚机磁盘动态扩容
0.在vmware的配置项中,将虚机的磁盘大小调大,步骤简单,此处略 查看当前状态 文件系统状态 df -h 磁盘状态 lsblkfdisk -l 1.首先要再创建一个物理分区 (使用fdisk ...
- Tomcat无法访问中文路径的解决办法
来源于:http://sccassiel.blog.51cto.com/5398709/1141821/ 修改tomcat下的conf/server.xml文件下的 <Connector por ...