MENU

闲来无聊了解一下Docker

Docker是什么

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
以上文字是官方说法,我们可以通过Docker的logo来简单的理解一下

请输入图片描述


我们看到logo由鲸鱼和集装箱组成,如果把鲸鱼比作就是操作系统,集装箱看成应用程序,那么,把要交付的应用程序看成是各种货物,原本要将各种各样形状、尺寸不同的货物放到大鲸鱼上,你得为每件货物考虑怎么安放(就是应用程序配套的环境),还得考虑货物和货物是否能叠起来(应用程序依赖的环境是否会冲突)
现在使用了集装箱(容器)把每件货物都放到集装箱里,这样大鲸鱼可以用同样地方式安放、堆叠集装了,省事省力。

通过简单的类比,我们能感觉到Docker对于开发来说作用特别重大,为什么呢?

Docker 的优点

1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

deepin系统下Docker的安装

deepin系统是基于debian开发的,deepin在debian的基础上进行了一些修改,因此导致按照debian的安装指引是很难安装上docker的。我们需要采取新办法!
1.如果以前安装过老版本,请先卸载以前版本,这点很重要,要不然会安装失败的

sudo apt-get remove docker docker-engine

2.安装docker-ce与密钥管理与下载相关依赖工具

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

3.下载并安装密钥

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

4.查看密钥是否安装成功

sudo apt-key fingerprint 0EBFCD88

如果安装成功,会出现以下内容:

root@PC:~$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

5.添加docker官方仓库

sudo add-apt-repository  "deb [arch=amd64] https://download.docker.com/linux/debian jessie stable"

6 .更新仓库

sudo apt-get update -y

7.安装docker-ce

sudo apt-get install docker-ce -y

8.查看安装好的docker版本

docker version

9.让普通用户也可运行docker

sudo groupadd docker #创建docker组
sudo gpasswd -a ${USER} docker #把当前用户加入docker组
sudo systemctl restart docker #重启daemon

10.安装结果

root@-PC:~$ docker version
Client:
 Version:   17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:12:56 2017
 OS/Arch:   linux/amd64

Server:
 Engine:
  Version:  17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:    Wed Dec 27 20:11:32 2017
  OS/Arch:  linux/amd64
  Experimental: false
0:00