【Docker】Docker是什么?怎么安装?怎么用?
从今天开始学习Docker,通过对网上资料的搜集与学习,记录一下。
是什么 ?
Docker是一个基于LXC实现的类似于VMs的超轻量级虚拟机。
它与VMs的区别在于,VMs提供的是一个完整的操作系统虚拟环境,从硬件层次上,包含了大量类似硬件驱动、虚拟处理器、网络接口等等并不需要的信息,并且虚拟机也需要比较长时间的启动,同时也会消耗大量的内存、CPU 资源。
而Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC, cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。

Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。
并且Docker并不会像普通虚拟机一样包含操作系统内核,也不需要虚拟一切硬件平台,它直接通过Docker Engine在宿主机平台上进行调度,从而大大减少了调用的复杂度,减少了运行的时间。
Docker 由下面这些组成:
1. Docker 服务器守护程序(server daemon),用于管理所有的容器。
2. Docker 命令行客户端,用于控制服务器守护程序。
3. Docker 镜像:查找和浏览 docker 容器镜像。
Docker的优点:
1. 启动速度块,通常1秒就能启动。
2. 资源利用率高,单位宿主机可同时运行的容器多。
3. 性能开销很小。
Docker的缺陷:
1. Docker是基于Linux 64bit的,无法在windows/unix或32bit的linux环境下使用
2. LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的
3. 隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库
4. 网络管理相对简单,主要是基于namespace隔离
5. cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)
6. docker对disk的管理比较有限
7. container随着用户进程的停止而销毁,container中的log等用户数据不便收集
怎么装 ?
关于安装一个新的东东,最靠谱还是官方的文档了。
官方以ubuntu为例,我的系统为Debian,安装方法大致相同。
1、更新源:
sudo apt-get update
2、添加Docker的repository到你的本地秘钥库:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
3、将Docker添加到你的apt软件安装源:
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main /etc/apt/sources.list.d/docker.list"
4、更新:
sudo apt-get update
5、安装Docker:
sudo apt-get install lxc-docker
安装完毕后,输出docker测试,如果安装成功了会出现:

表示安装成功了。
官方还提供了一个简单的脚本来帮助你安装Docker,只要运行这个指令:
curl -s https://get.docker.io/ubuntu/ | sudo sh
一切就按部就班的进行了。
以上是旧版本的安装方法,Docker正式版出来之后,Debain/Ubuntu用户可以直接使用命令:
sudo apt-get install docker.io
来一键安装docker!
怎么用 ?
现在我们来试试运行一个Hello World!
首先获取一个ubuntu镜像:
sudo docker pull ubuntu
如果感觉慢,可以从docker中文官网介绍的一样,从国内的镜像点下载:
docker pull docker.cn/docker/ubuntu
待下载完后:

运行:
root@amd64:~# docker run docker.cn/docker/ubuntu /bin/echo xxxxx
效果:

这个是最简单的例子,更多应用,慢慢探索!
【Docker】Docker是什么?怎么安装?怎么用?的更多相关文章
- Docker:Ubuntu下的安装
Docker是什么 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托 管在 GitHub 上, 基于Go语言并遵从Apache2. ...
- Docker的学习--介绍和安装
什么是 Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Lin ...
- Docker 在6.4上安装
1 在 CentOS 6.4 上安装 docker docker当前官方只支持Ubuntu,所以在 CentOS 安装Docker比较麻烦(Issue #172). docker官方文档说要求Li ...
- Docker - 在Ubuntu16.04中安装Docker CE
Get Docker for Ubuntu Check system version root@Ubuntu16:~# uname -a Linux Ubuntu16 4.8.0-36-generic ...
- Ubuntu Docker 版本的更新与安装
突然发现自己的docker 版本特别的低,目前是1.9.1 属于古董级别的了,想更新一下最新版本,这样最新的一下命令就可以被支持.研究了半天都没有更新成功,更新后的版本始终都是1.9.1 :蒙圈了,找 ...
- Docker可视化管理工具Shipyard安装与配置
Shipyard简介 Shipyard是一个集成管理docker容器.镜像.Registries的系统,它具有以下特点: 1.支持多节点的集成管理 2.可动态加载节点 3.可托管node下的容器 镜像 ...
- [docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)
docker清理容器 # 容器停止后就自动删除: docker run --rm centos /bin/echo "One"; # 杀死所有正在运行的容器: docker kil ...
- Docker入门1------概念和安装
关于docker的介绍: https://www.cnblogs.com/neptunemoon/p/6512121.html docker入门教程:http://www.docker.org.cn/ ...
- 配置docker官方源并用yum安装docker
一.docker的官方安装文档: https://docs.docker.com/engine/installation/linux/centos/ 由docker给的文档可以看出它也只是去配置了一个 ...
- Ubuntu Docker版本的更新与安装
突然发现自己的docker版本特别的低,目前是1.9.1属于古董级别的了,想更新一下最新版本,这样最新的一下命令就可以被支持.研究了半天都没有更新成功,更新后的版本始终都是1.9.1 :查阅了官网资料 ...
随机推荐
- 第六周—Alpha阶段项目复审(五饭来了吗)
第六周--Alpha阶段项目复审(五饭来了吗) 以下部分排名只是个人观点: 小组 优点 缺点,bug报告 名次 中午吃啥队 较完整的团体结构,可提供给商家和用户 感觉界面再优化一下就很棒了 1 天冷记 ...
- [Mac][转] ports命令
[Mac][转] ports命令 安装路径:/opt/local/lib/ 常用命令 port -d selfupdate #升级macport, 如同:cd /usr/ports && ...
- EF修改model自动更新数据库
最近用MVC+EF学习时遇到修改model后而数据库没更新报错,就在网上找关于数据迁移自动更新数据库的,折腾了大半天终于弄了出来 第一步:在程序包管理器控制台里: Enable-Migrations ...
- django drf 深入ModelSerializer
serializer用起来稍微麻烦,可以使用ModelSerializer,类似于django里的Form与ModelForm 1.定义ModelSerializer from rest_framew ...
- 原创:各种normalize函数实现的性能和精度大比拼
///////////////////////////////////////////////////////////////////////// // // Performance benchmar ...
- Django-03视图层
5.1 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片 ...
- “全栈2019”Java第三十四章:可变参数列表
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 让子类使用父类的Logger
参考博客:https://blog.csdn.net/zx1323/article/details/71262613 1.让子类使用父类的Logger,这是一种语法思路,可以减少代码臃肿. 2.使用的 ...
- iOS 轻松使用 App 数据统计
想获取用户各项行为数据吗? 想轻松查看用户行为图表吗? 想高效进行 App 运营管理吗? 想,来我带你玩转 App 数据统计.这里我使用专业.轻便的 JAnalytics. 本文内容分为两部分:代码示 ...
- history.back返回是浏览器错误码:ERR_CACHE_MISS
解决方法: 如果访问的是php文件中添加:header("Cache-control: private"); 如果使用的是模板引擎(tp5):{php}header("C ...