1、前言
进入云计算的时代,各大云提供商AWS,阿里云纷纷推出针对Docker的服务,现在Docker是十分火爆,那么Docker到底是什麽,让我们来体验一下。
2、Docker是什麽
Docker是一个开源的应用容器引擎,可以把应用以及依赖包放到一个可移植的容器中,然后发布到任何流行的 Linux 系统上,通过这种方式实现虚拟化。
提到虚拟化,大家应该十分熟悉了,有VMware,Xen,KVM等等很多。那么,Docker和VM有什么不同呢,我们用官网的一张图来说明一下。
可以看出,Docker和VM比较,用Docker引擎替代了Hyper-v,没有Gest OS,应用是放到容器里,直接运行在宿主机的OS上。
这样做的好处是,各容器间虽然隔离,但共享系统资源和公用库,剥离了Gest OS这层,系统资源利用率更高。
另外,因为Docker容器的灵活性,在程序的 开发 → 测试 → 发布,整个流程能保证环境的一致性,并大大减少工作量和时间。这也是Docker十分火爆的主要原因。
说到这里,大家可能已经等不及了吧,下面一起来使用一下Docker。
3、使用Docker
官方的Docker Hub上有一些共有的镜像,可以直接拿来放到容器里使用,也可以自己创建镜像,保存后供容器使用。今天使用公用的镜像创建一个nginx的容器。
3.1 安装Docker
Docker的安装十分简单,用yum或apt-get可以直接安装。
1 | # yum install -y docker |
3.2 启动Docker
1 | # service docker start |
3.3 查看信息
1 | # docker info |
安装到此结束,接下来创建一个nginx的容器。
3.4 查找镜像
在Docker Hub上查找nginx的镜像。
1 | # docker search nginx |
3.5 抓取镜像
我们下载的是官方的nginx镜像。
1 | # docker pull nginx |
3.6 查看镜像
1 | # docker images |
3.7 定镜像创建容器并启动
指定刚才获取的nginx镜像。
1 | # docker run -d -p 80:80 --name cn1 nginx |
解释一下各参数:
-d 放在后台执行
-p 主机端口:容器端口 将容器的端口映射到主机上,目的是可以直接对外提供访问
--name 指定容器名
3.8 查看容器
1 | # docker ps |
在浏览器访问服务器的IP,可以打开nginx的默认页面
到此,一个nginx容器已经创建成功。下面介绍一下其他一些命令。
3.9 结束容器
1 | # docker kill cn1 |
3.10 查看所有容器
1 | # docker ps -a |
3.11 启动容器
1 | # docker start cn1 |
3.12 删除容器
1 | # docker rm sad_heisenberg |
4、后记
本文只是对Docker一个简单的介绍,其他的用法,以后会陆续介绍,请持续关注本博客。