Docker是什么

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低


从这个解释我们不知道大家有没有想到一个优点类似的东西,没错就是 Vagrant :  vagrant打造跨平台可移动的开发环境    ,那么这两个东西有什么区别咧?


Docker 与 Vagrant的区别

从字面意思上来讲,这两个东西都可以实现虚拟化。Vagrant 是基于Virtualbox等虚拟机软件的实现的(Vagrant 本身并不提供虚拟技术,只是调用Virtualbox等提供的接口,进行虚拟机的管理),而Docker是基于LXC轻量级容器虚拟技术。一般我们用Vagrant来部署开发环境,Docker一般是部署生产环境,当然docker也可以部署开发环境了。但是Vagrant 部署生产环境就不行了,因为Docker比较轻量级,Vagrant就有点重


Docker的应用场景

  • Web 应用的自动化打包和发布。

  • 自动化测试和持续集成、发布。

  • 在服务型环境中部署和调整数据库或其他的后台应用。


Ubuntu安装Docker

心动不如行动,让我们在实际体验中来感受其中的不同吧,安装步骤可以参考:https://docs.docker.com/engine/installation/linux/ubuntu/ 


配置信息

环境:Vagrant启动的虚拟机

系统:Ubuntu 16.04

内存:2G


设置apt允许https源

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

添加Docker的官方Key

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

验证下

$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

添加源

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

高潮安装

$ sudo apt-get update
$ sudo apt-get install docker-ce  #ce版本,企业版需要付费的


特别注意,如果是安装在生产环境,你需要安装指定版本的,而不是最新版本的,操作如下

$ apt-cache madison docker-ce

 docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
$ sudo apt-get install docker-ce=<VERSION>

试试成效

$ sudo docker run hello-world


600



卸载Docker

执行如下命名就够啦


$ sudo apt-get purge docker-ce
$ sudo rm -rf /var/lib/docker

CentOS7安装Docker

由于新版本的Docker更换了发行版的仓库,以及包名,安装也和以前不太一样,最好是卸载旧版本。

卸载旧版本


旧版本的Docker的软件包名为docker或docker-engine。如果以前安装过就要卸载:


sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine


另外原来/var/lib/docker/目录下的镜像,容器,数据卷,网络等都会保留,新安装的docker任然可以使用这些内容。

操作环境

操作系统:CentOS7.2 

内存:1GB 

CPU:2核

准备工作

安装一些必要的系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

sudo yum makecache fast

高潮安装

sudo yum -y install docker-ce
sudo service docker start #启动服务

卸载

sudo yum remove docker-ce
sudo rm -rf /var/lib/docker

参考资料