一.  什么是Docker

1.英文意思是集装箱,很形象。直白点就是将程序运行环境打包在一个箱子里,然后箱子扔到哪里,里边的程序都可以运行。这样以来一个显而易见的好处是:和以前的开发环境等相比,你不用每换一台电脑都重新配置一下环境,你需要做的只是把箱子搬过来就可以了,是不是方便了许多。

2.Docker经常被拿来和虚拟机比较,那么主要区别实际上也很明显了,如下:

  虚拟机会虚拟整套运行环境,这里的运行环境包括硬件,用VM等软件创建虚拟机的时候会发现让你选择CPU核心数内存等,然后会选择操作系统,等你创建之后还要安装各种环境,然后才能去用。

  Docker就很简单了,只包括运行环境,是不是感觉轻了很多?这种感觉是对的,因为这样一来Docker占用的资源就少了很多,一台服务器上所提供的服务就多了一些,所以最近Docker的应用越来越广泛。

  下面是网上找到的一张对比图,从架构方面解释了两者的区别,图片来自于https://yeasy.gitbooks.io/docker_practice/content/introduction/what.html(我猜这也是从官网拿的):

二. 安装过程(Ubuntu,基本就是官方文档的简单翻译,详细见https://docs.docker.com/engine/installation/linux/ubuntulinux/)

1.Ubuntu也并不是每个版本都支持Docker,支持的有以下几个版本(所以想体验先看看系统满足么):

  • Ubuntu Xenial 16.04 (LTS)
  • Ubuntu Wily 15.10
  • Ubuntu Trusty 14.04 (LTS)
  • Ubuntu Precise 12.04 (LTS)

2.其他要求

  系统版本必须是64位,同时内核必须在3.10以上,老版本会有问题,不推荐使用。检查内核版本可以使用 uname -r 命令。

3.升级apt的源

  3.1 使用root用户或者sudo权限

  3.2   更新apt源,安装CA证书,命令如下:

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates

  3.3 添加GPG密钥:

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

  3.4 打开(没有就创建) /etc/apt/sources.list.d/docker.list 文件,添加源,根据系统版本添加不同的源,然后保存:

  • On Ubuntu Precise 12.04 (LTS)

    deb https://apt.dockerproject.org/repo ubuntu-precise main
  • On Ubuntu Trusty 14.04 (LTS)

    deb https://apt.dockerproject.org/repo ubuntu-trusty main
  • Ubuntu Wily 15.10

    deb https://apt.dockerproject.org/repo ubuntu-wily main
  • Ubuntu Xenial 16.04 (LTS)

    deb https://apt.dockerproject.org/repo ubuntu-xenial main

  3.5 更新apt,使用命令 sudo apt-get update

  3.6  删除旧的repo 如果有,使用命令 sudo apt-get purge lxc-docker

  3.7 确定Docker 的源正确 apt-cache policy docker-engine

  3.8 16.04 15.10 14.04需要安装linux-image-extra-* 的包,使用一下命令:

$ sudo apt-get update
$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

  3.9 12.04需要特殊处理,过程如下:

$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-trusty
$ sudo reboot

四. 安装Docker

$ sudo apt-get update   # Update your APT package index.
$ sudo apt-get install docker-engine # Install Docker.
$ sudo service docker start # Start the docker daemon.
$ sudo docker run hello-world # 运行失败也没什么问题…可以直接pull一个镜像试一下

  

五. 常用命令

$ sudo docker --help  # 列出命令帮助,不知道了就可以过来看看

$ sudo docker pull ubuntu:12.04    # 获取镜像,相当于$ sudo docker pull registry.hub.docker.com/ubuntu:12.04,从注册的仓库获取此镜像

$ sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04 # 从指定仓库获取镜像

$ sudo docker images  # 列出本地镜像

$ sudo docker run -t -i ubuntu:14.04 /bin/bash  # 启动某个镜像

$ sudo docker run ubuntu:14.04 /bin/echo 'Hello world' # 启动容器,和上一条命令一样

$ docker start  # 启动某容器,对应的终止是stop

$ docker attach  # 进入容器
 

更多的可以参加官网,或者推荐一本中文的gitbook,见链接:https://www.gitbook.com/book/yeasy/docker_practice/details

参考:

https://www.gitbook.com/book/yeasy/docker_practice/details

https://docs.docker.com/

https://www.zhihu.com/question/22969309 (应用场景的讨论)

  

      

docker入门记录1的更多相关文章

  1. Docker入门 .Net Core 使用Docker全程记录

    https://www.cnblogs.com/flame7/p/9210986.html Docker入门 第一课 --.Net Core 使用Docker全程记录   微服务架构无疑是当前最火热的 ...

  2. Docker入门 第一课 --.Net Core 使用Docker全程记录

    微服务架构无疑是当前最火热的开发架构,而Docker作为微服务架构的首选工具,是我们必须要了解掌握的. 我通过一天的时间,网上查文档,了解基础概念,安装Docker,试验Docker命令,通过Dock ...

  3. Docker学习记录--入门了解+安装

    Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...

  4. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

  5. Docker 入门实践

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张戈 导语 本文从新手视角记录了一个实际的Dokcer应用场景从创建.上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法 ...

  6. Docker入门之七Dockerfile

    Dockerfile是一个文本格式的配置文本,可以使用它来创建自定义的镜像.首先我们可以先看一个dockerfile是什么样子.这里可以有一个网站不错:http://dockerfile.github ...

  7. 【转载】大白话Docker入门(二)

    原文:https://yq.aliyun.com/articles/63517?spm=a2c4e.11153940.blogcont63035.15.12011c3fddklk0 上篇的大白话Doc ...

  8. Docker入门笔记

    Docker入门笔记 随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04 安装 Docker有2个版本 Community Edition (CE) 社区版(免费) ...

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

    这可能是最为详细的Docker入门吐血总结  https://www.cnblogs.com/ECJTUACM-873284962/p/9789130.html Docker是什么? 在计算机技术日新 ...

随机推荐

  1. Java暗箱操作之for-each

    对于我们常用的ArrayList等容器类,经常需要一个一个遍历里面的元素,从而对各个元素执行对应的操作. 像我代码写多了,通常的做法是用传统的,类似于数组遍历的方法,即在for循环中设置一个int变量 ...

  2. 如何读懂复杂的C语言声明

    本文已迁移至: http://www.danfengcao.info/c/c++/2014/02/25/howto-understand-complicated-declaration-of-c.ht ...

  3. 《java JDK7 学习笔记》之对象封装

    1.构造函数实现对象初始化流程的封装.方法封装了操作对象的流程.java中还可以使用private封装对象私有数据成员.封装的目的主要就是隐藏对象细节,将对象当做黑箱子进行操作. 2.在java命名规 ...

  4. Linux笔记:使用Vim编辑器

    Vi编辑器是Unix系统上早先的编辑器,在GNU项目将Vi编辑器移植到开源世界时,他们决定对其作一些改进. 于它不再是以前Unix中的那个原始的Vi编辑器了,开发人员也就将它重命名为Vi improv ...

  5. 【静默安装】configToolAllCommands响应文件问题

    [静默安装]configToolAllCommands响应文件问题 客户在静默安装RAC 12.1.0.2的时候有如下的输出: Successfully Setup Software. As inst ...

  6. Redis 使用说明 安装配置 主从复制

        开机加自启动: echo "redis-server /etc/redis.conf" >>/etc/rc.local    以前有想过用 Memcache 实 ...

  7. centos 进度条卡死

    CentOS 6.7 系统 在执行完删除更新包的全部操作之后, yum remove -y Deployment_Guide-en-US finger cups-libs cups ypbind &a ...

  8. 基础SQL语句/语法

    SQL是现在进入互联网工作人们的必须技能之一,下面分享自己觉得很nice的SQL基本语句,从网上找了,觉得很不错,就分享给大家!简要介绍基础语句: 1.说明:创建数据库  Create DATABAS ...

  9. Hibernate一对多关联

    一对多双向关联关系:(Dept/Emp的案例) 既可以根据在查找部门时根据部门去找该部门下的所有员工,又能在检索员工时获取某个员工所属的部门. 步骤如下: 1.构建实体类(部门实体类加set员工集合) ...

  10. Hibernate考试选择题解析

    1.在Hibernate中,以下关于主键生成器说法错误的是(AC). A.increment可以用于类型为long.short或byte的主键(byte类型不可以) B.identity用于如SQL ...