如何在不同操作系统部署Docker环境


Docker是一个为开发人员和系统管理员开发、迁凳世铅移和运行应用程序的平台。应用程序通过Docker打包成Docker Image后,可以实现统一的方式来下载、启动、扩展、删除和迁移,这样方便了应用程序的部署和运维。本文将介绍如何在不同操作系统平台上部署Docker环境的方法。

更多信息

Ubuntu:

Docker刚推出的时候只支持Ubuntu,后来才一点点开始对其他平台的支持。所以在Ubuntu平台上部署Docker平台还是挺简单的。官方目前支持的版本有Ubuntu Trusty 14.04 (LTS)、Ubuntu Precise 12.04 (LTS)、Ubuntu Saucy 13.10。
Docker要求64位的系统且内核版本至少为3.10(如果是Ubuntu 12.04 LTS,则要求内核版本至少是3.13)。可以使用uname –r命令 来确认当前系统的内核版本:
$ uname -r
3.11.0-15-generic
可以使用以下命令来升级内核:
$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-trusty
$ sudo reboot
之后就可以安装Docker了:
$ wget -qO- https://get.docker.com/ | sh
最后验证安装是否成功:
$ sudo dockerrun hello-world

RHEL/CentOS:

自RHEL 7开始就自带Docker了,我们只需要直接安装即可:
$ sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
$ sudo yum install docker
另一个支持枣好Docker的RHEL版本是6.5,安装前需确认内核版本是否为2.6.32-431及以上版本。Docker在RHEL上仅支持官方的extras源和EPEL源,因此我们还需安装EPEL repository。注:由于与之前应用的名称冲突,需要先卸载名为“docker”软件包,然后安装正确的docker-io软件包。
$ sudoyum -y remove docker
$ sudoyum install docker-io
$ sudoyum -y update docker-io
然后就可以启动Docker进程了:
$ sudoservice docker start
$ sudochkconfig docker on
$ sudodocker run -i -t fedora /bin/bash

CentOS由于与RHEL的“渊源”,基本上安装要求是差不多的。需要特别注意的是由于CentOS 7引入了firewalld动态管理防火墙守护进程,它会与Docker冲突(启动后会删除Docker在iptables中的规则)。因此如果在启动Docker后又重新启动了firewalld,需要再重启一下Docker进程。

MacOS:

由于Dokcer基于Linux内核的一些功能,因此无法原生地返则在OS X系统上运行。Docker项目团队因此开发了Boot2Docker工具,它包含了一个轻量的VirtualBox虚拟机以及相关的管理工具。这个虚拟机非常小(大约24MB的下载大小),完全在内存中运行,启动只需大约5秒钟。
运行Boot2Docker要求OS X 10.6 Snow Leopard以上版本。安装文件可以在https://github.com/boot2docker/osx-installer/releases/latest获得。安装完成后,Boot2Docker位于Applications文件夹。
注:Boot2Docker目前只是作为开发工具发布,请不要将其应用在生产环境中。
创建Boot2Docker虚拟机:
$ boot2docker init
$ boot2docker start$ boot2docker shellinit
显示或设置Docker客户端环境变量
$ boot2docker shellinit
$ eval"$(boot2docker shellinit)"
最后验证安装是否成功:
$ dockerrun hello-world

Windows:

Windows与MAC OS相同,也需要安装Boot2Docker工具。安装文件可以在https://github.com/boot2docker/windows-installer/releases/latest获得。Windows版的Boot2Docker在启动时会自动确认环境变量,因此可以直接验证安装是否成功:$ dockerrun hello-world。