1.什么是Docker

  容器技术

  在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化 (hypervisor virtualization,HV)有所不同,管理程序虚拟化通过中间层将一台或者多台独立 的机器虚拟运行与物理硬件之上,而容器则是直接运行在操作系统内核之上的用户空间。因 此,容器虚拟化也被称为“操作系统级虚拟化”,容器技术可以让多个独立的用户空间运行 在同一台宿主机上。

  由于“客居”于操作系统,容器只能运行与底层宿主机相同或者相似的操作系统,这看 起来并不是非常灵活。例如:可以在 Ubuntu 服务中运行 Redhat Enterprise Linux,但无法再 Ubuntu 服务器上运行 Microsoft Windows。

  相对于彻底隔离的管理程序虚拟化,容器被认为是不安全的。而反对这一观点的人则认 为,由于虚拟容器所虚拟的是一个完整的操作系统,这无疑增大了攻击范围,而且还要考虑 管理程序层潜在的暴露风险。

  尽管有诸多局限性,容器还是被广泛部署于各种各样的应用场合。在超大规模的多租户 服务部署、轻量级沙盒以及对安全要求不太高的隔离环境中,容器技术非常流行。最常见的 一个例子就是“权限隔离监牢”(chroot jail),它创建一个隔离的目录环境来运行进程。 如果权限隔离监牢正在运行的进程被入侵者攻破,入侵者便会发现自己“身陷囹圄”,因为 权限不足被困在容器所创建的目录中,无法对宿主机进一步破坏。

  最新的容器技术引入了 OpenVZ、Solaris Zones 以及 Linux 容器(LXC)。使用这些新技 术,容器不在仅仅是一个单纯的运行环境。在自己的权限类内,容器更像是一个完整的宿主 机。对 Docker 来说,它得益于现代 Linux 特性,如控件组(control group)、命名空间 (namespace)技术,容器和宿主机之间的隔离更加彻底,容器有独立的网络和存储栈,还 拥有自己的资源管理能力,使得同一台宿主机中的多个容器可以友好的共存。

  容器被认为是精益技术,因为容器需要的开销有限。和传统虚拟化以及半虚拟化相比, 容器不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系统的系 统调用接口。这降低了运行单个容器所需的开销,也使得宿主机中可以运行更多的容器。

  尽管有着光辉的历史,容器仍未得到广泛的认可。一个很重要的原因就是容器技术的复 杂性:容器本身就比较复杂,不易安装,管理和自动化也很困难。而 Docker 就是为了改变 这一切而生的。

2.使用docker做什么

  容器提供了隔离性,结论是,容器可以为各种测试提供很好的沙盒环境。并且,容器本

  身就具有“标准性”的特征,非常适合为服务创建构建块。Docker 的一些应用场景如下:

  • 加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员可以构建、 运行并分享 Docker 容器。容器可以在开发环境中构建,然后轻松的提交到测试环境中,并 最终进入生产环境。
  • 能够让独立的服务或应用程序在不同的环境中,得到相同的运行结果。这一点在 面向服务的架构和重度依赖微型服务的部署由其实用。
  • 用 Docker 创建隔离的环境来进行测试。例如,用 Jenkins CI 这样的持续集成工具 启动一个用于测试的容器。
  • Docker 可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是 一开始就在生产环境部署、测试。

3.如何安装

  Debian/Ubuntu 系用户

    以下内容根据 官方文档 修改而来。

  如果你过去安装过 docker,先删掉:

sudo apt-get remove docker docker-engine docker.io

  首先安装依赖文件:

  

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

  根据你的发行版,下面的内容有所不同。

  Debian&Ubuntu:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

  对于 amd64 架构的计算机,添加软件仓库:

 Debian:

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"

 Ubuntu:

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

如果你是树莓派或其它ARM架构计算机,请运行:

echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list

最后运行:

sudo apt-get update

sudo apt-get install docker-ce

4.验证安装,拉取一个镜像

sudo docker run hello-world

 如果看到以下一下界面,恭喜你安装成功:

Hello from Docker!
This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
. The Docker client contacted the Docker daemon.
. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal. To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/ For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

为了避免每次命令都输入sudo,可以设置给docker用户权限,注意执行后须注销重新登录

sudo usermod -a -G docker $USER

5.至此docker社区版安装完成!

6.docker常用命令:

  服务相关:

# 启动
sudo service docker start # 停止
sudo service docker stop # 重启
sudo service docker restart

  

#docker 更多具体命令请使用:
docker --man

  相关链接:

  1.docker官网:https://www.docker.com/

  2.docker中文社区:http://www.docker.org.cn/

  3.清华大学开源镜像源docker-ce安装帮助:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

 

Docker Community Edition 镜像使用帮助的更多相关文章

  1. docker之NGINX镜像构建

    Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性:1.作为Web服务器.2.作为负载均衡服务器.3.作为邮件代理服务器.4.安装及配置简单.接下来我们介绍在docker构建ng ...

  2. Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决

    Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令 解决: apt-get update apt install net-tools       # ifconfig apt ...

  3. 关于Docker官方CentOS镜像无法启动mysqld的总结

    很多童鞋反映,在Docker官方CentOS镜像中安装了Mysql server后,无法正常启动. 无法正常启动表现为两种情况: 1> 初始完数据库后,mysqld启动报错 2> syst ...

  4. 理解docker容器和镜像(layer,ufs)和docker命令解释

    博客好文1:http://blog.csdn.net/x931100537/article/details/49633107(理解docker容器和镜像,理解简单,从原理入手,什么是layer,什么是 ...

  5. 4.docker学习之镜像

    镜像 我们知道,我们想在Windows操作系统上跑Linux,需要安装一个虚拟机程序,然后下载一个Linux镜像,在该虚拟机程序中创建一个虚拟机,并使用该镜像安装对应的Linux操作系统,安装好之后, ...

  6. 容器与Docker简介(四)Docker容器,镜像与 Registries——微软微服务电子书翻译系列

    当使用Docker时,开发人员创建一个应用程序或服务,并将其和其依赖关系打包到容器镜像中. 镜像是应用程序或服务及其配置和依赖的静态表示形式. 要运行应用程序或服务,应用程序的镜像将被实例化以创建一个 ...

  7. Docker 中国官方镜像加速

    参考:https://www.docker-cn.com/registry-mirror 通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像.该镜像托管于中国大陆,本 ...

  8. Docker公共&本地镜像仓库(七)--技术流ken

    分发镜像 我们已经会构建自己的镜像了,那么如果在多个docker主机上使用镜像那?有如下的几种可用的方法: 用相同的Dockerfile在其他host上构建镜像 将镜像上传到公共registry(比如 ...

  9. docker简单介绍----镜像和容器管理

    docker可以分为三部分:docker镜像   docker仓库  docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...

随机推荐

  1. 循序渐进Python3(十三) --1-- django之form表单

    在上一次的代码上做出进一步修改,使之能在页面上显示报错信息. views.py from django.shortcuts import render, HttpResponse from djang ...

  2. 【290】Python 模块

    参考:Python 模块 目录: 1. import 语句(模块的引入) 2. from...import 语句 3. from...import * 语句 4. dir() 函数 5. Python ...

  3. S3C6410的启动代码分析 一

    本文开始第一篇,启动代码的编写,注意,仅仅是启动代码,并不是bootloader,因为只有boot,没有loader. 第一要明确:CPU上电之后,会从某个固定地址执行指令.ARM结构的CPU从地址0 ...

  4. Java多线程-线程的调度(优先级)

    与线程休眠类似,线程的优先级仍然无法保障线程的执行次序.只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行. 线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先 ...

  5. 专利系统数据库连接出现 base-64字符串中的无效字符 错误

    错误提示如图: 解决方法: 1.进注册表修改如下 2.进入系统配置页面http://10.10.0.70/eaf/init 对数据库进行重新配置 3.若不行再将如下密码修改一下 重启IIS生效

  6. 更新solrcloud+zookeeper的配置文件,要reload collection

    1.用的lib下的solr-core-4.3.1jar中的ZkCLI工具,命令在solr(web发布的)同级目录下运行. (1)upconfig 更新配置文件命令 java -classpath ./ ...

  7. DataSet、DataTable转换List(泛型集合与DataSet互相转换 )

    using System.Data; using System.Reflection; using System.Collections; using System.Collections.Gener ...

  8. 【总结整理】pv、uv

    1.pv的全称是page view,译为页面浏览量或点击量,通常是衡量一个网站甚至一条网络新闻的指标.用户每次对网站中的一个页面的请求或访问均被记录1个PV,用户对同一页面的多次访问,pv累计.例如, ...

  9. 把List<string>转为DataTable

    //把List<string>转为DataTable List<string> myList = new List<string>(); DataTable dt2 ...

  10. css一div内文字居中

    在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中 ...