一个技术博客

docker 入门使用

本文由 Tim 于 2016-03-28 14:40:21 发表

一、什么是 Docker

Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere”。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

 

二、Docker的优点

首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。
容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。
具体说来,Docker 在如下几个方面具有较大的优势。

 

更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

更高效的虚拟化

Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

对比传统虚拟机总结

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

 

三、Docker的基本概念

Docker 包括三个基本概念

镜像(Image)
Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。

容器(Container)
Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
*注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

仓库(Repository)
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库 中又包含了多个镜像,每个镜像有不同的标签(tag)。

 

四、Docker的安装使用

CentOS 系列安装使用 Docker

详见http://www.hslk.com.cn/?p=21

获取镜像

可以使用 docker pull 命令来从仓库获取所需要的镜像。

有时候官方仓库注册服务器下载较慢,需要多次尝试,我第一次下载centos镜像后就保存下来,之后安装docker直接导入镜像

链接: http://pan.baidu.com/s/1o7NXxTC 密码: 955i
链接内镜像版本为CentOS Linux release 7.2.1511 (Core)

查看docker镜像

运行一个docker容器

 

查看容器docker ps  如需查看关闭的容器使用docker ps -a

 

让 Docker 容器在后台以守护态(Daemonized)形式运行。通过添加 -d 参数来实现。

 

终止一个运行中的容器。

 

某些时候需要进入容器进行操作,常用有 docker attach 命令或 nsenter 工具等。

 

退出容器exit; 退出后容器将停止
如何退出容器而不停止容器?组合键:Ctrl+P+Q

使用 docker rm 来删除一个处于终止状态的容器。删除docker镜像 docker rmi IMAGE ID(需要先删除使用该镜像的容器)

 

运行一个docker容器,挂载一个主机目录作为数据卷,使用 -v 标记来创建一个数据卷并挂载到容器

如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器,可以找到相关容器卷的教程。

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射,可以同时指定多个端口。

容器的访问控制,主要通过 Linux 上的 iptables 防火墙来进行管理和实现。

以上就是笔者常用的docker命令了,其他类似Dockerfile 创建自定义的镜像,Supervisor 来管理进程,可以自行百度。

欢迎转载,转载请注明出处!Tim » docker 入门使用

点赞 (2)or拍砖 (0)
分享到:更多 ()