What is Docker? Docker是当前相当流行的一种应用容器引擎,通过Docker容器,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker容器完全使用沙箱机制,相互之间不会有任何的接口,可以让应用得到高等级的隔离,相比于虚拟机,Docker容器更加轻量级,性能开销更低。
Docker的一些应用场景
web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务性环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或cloud Foundry平台来搭建自己的PaaS环境;
Docker所解决的问题
更有序的组织
更高的可移植性
保护你的机器,提高安全性
既然Docker容器有这么多的优点,那怎么才能使用上它呢?这篇文章就来记录一下怎么去安装Docker。
安装Docker 我所使用的操作系统是Ubuntu 14.04 LTS
Docker官方的安装说明地址: https://docs.docker.com/engine/installation/linux/ubuntu/ 先仔细阅读一下官方的安装说明。
Recommended extra packages for Trusty 14.04 Unless you have a strong reason not to, install the linux-image-extra-*
packages, which allow Docker to use the aufs
storage drivers.
看起来我使用的14.04还需要安装一下内核扩展,那安装一下先
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 xing@ubuntu-compile:~$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 linux-image-extra-3.19.0-33-generic 已经是最新的版本了。 linux-image-extra-3.19.0-33-generic 被设置为手动安装。 下列软件包是自动安装的并且现在不需要了: linux-headers-3.19.0-25 linux-headers-3.19.0-25-generic linux-image-3.19.0-25-generic linux-image-extra-3.19.0-25-generic Use 'apt-get autoremove' to remove them. 将会安装下列额外的软件包: linux-image-3.13.0-119-generic linux-image-extra-3.13.0-119-generic linux-image-generic 建议安装的软件包: fdutils linux-doc-3.13.0 linux-source-3.13.0 linux-tools linux-headers-3.13.0-119-generic 下列【新】软件包将被安装: linux-image-3.13.0-119-generic linux-image-extra-3.13.0-119-generic linux-image-extra-virtual linux-image-generic 升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 89 个软件包未被升级。 需要下载 52.0 MB 的软件包。 解压缩后会消耗掉 195 MB 的额外空间。 您希望继续执行吗? [Y/n]
官方网站上介绍了两种安装方式,一是从软件仓库安装,而是下载deb安装包,手动安装。
1 2 3 4 5 $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
1 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
1 2 3 4 5 6 $ 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
1 2 3 4 $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
1 2 $ sudo apt-get update $ sudo apt-get install docker-ce
浏览器打开 https://download.docker.com/linux/ubuntu/dists/ 选择适合系统版本的deb包下载。
我选择手动下载deb包进行安装。
1 xing@ubuntu-compile:~$ wget https://download.docker.com/linux/ubuntu/dists/trusty/pool/stable/amd64/docker-ce_17.03.1~ce-0~ubuntu-trusty_amd64.deb
吐槽一句,下载的速度这是太慢了————终于下载好了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 xing@ubuntu-compile:~$ sudo dpkg -i docker-ce_17.03.1~ce-0~ubuntu-trusty_amd64.deb [sudo] password for xing: 正在选中未选择的软件包 docker-ce。 (正在读取数据库 ... 系统当前共安装有 144928 个文件和目录。) 正准备解包 docker-ce_17.03.1~ce-0~ubuntu-trusty_amd64.deb ... 正在解包 docker-ce (17.03.1~ce-0~ubuntu-trusty) ... dpkg: 依赖关系问题使得 docker-ce 的配置工作不能继续: docker-ce 依赖于 libltdl7 (>= 2.4.2);然而: 未安装软件包 libltdl7。 docker-ce 依赖于 libsystemd-journal0 (>= 201);然而: 未安装软件包 libsystemd-journal0。 dpkg: 处理软件包 docker-ce (--install)时出错: 依赖关系问题 - 仍未被配置 正在处理用于 man-db (2.6.7.1-1ubuntu1) 的触发器 ... 正在处理用于 ureadahead (0.100.0-16) 的触发器 ... 在处理时有错误发生: docker-ce
好像出了点问题,需要依赖,那么安装一下依赖吧。
1 2 3 4 5 6 7 8 9 10 11 xing@ubuntu-compile:~$ sudo apt-get -f install xing@ubuntu-compile:~$ sudo dpkg -i docker-ce_17.03.1~ce-0~ubuntu-trusty_amd64.deb (正在读取数据库 ... 系统当前共安装有 145148 个文件和目录。) 正准备解包 docker-ce_17.03.1~ce-0~ubuntu-trusty_amd64.deb ... docker stop/waiting 正在将 docker-ce (17.03.1~ce-0~ubuntu-trusty) 解包到 (17.03.1~ce-0~ubuntu-trusty) 上 ... 正在设置 docker-ce (17.03.1~ce-0~ubuntu-trusty) ... docker start/running, process 2629 正在处理用于 man-db (2.6.7.1-1ubuntu1) 的触发器 ... 正在处理用于 ureadahead (0.100.0-16) 的触发器 ...
这些安装好了!!加载一个Hello World镜像尝试一下
Docker Hello World 1 2 3 4 5 6 7 8 9 xing@ubuntu-compile:~$ sudo docker run dockerinaction/hello_world Unable to find image 'dockerinaction/hello_world:latest' locally latest: Pulling from dockerinaction/hello_world a3ed95caeb02: Pull complete 1db09adb5ddd: Pull complete Digest: sha256:cfebf86139a3b21797765a3960e13dee000bcf332be0be529858fca840c00d7f Status: Downloaded newer image for dockerinaction/hello_world:latest hello world
可以看到,docker是先检查本地是否有hello_world镜像,发现不存在,再去镜像市场拉取到本地,再进行运行的。最后已经打印出了hello world,说明我们的docker已经安装成功了!
再来运行hello_world看看有什么不一样
1 2 3 xing@ubuntu-compile:~$ sudo docker run dockerinaction/hello_world hello world
直接打印出了hello world ,说明镜像已经存在,docker直接是运行的本地的镜像。
———–安装篇完
参考资料:
https://docs.docker.com/engine/installation/linux
《Docker实战》
http://www.runoob.com/docker/ubuntu-docker-install.html
http://www.docker.org.cn/book/docker/what-is-docker-16.html