【2016/9】 简单 Docker 入门

来源:互联网 发布:精通matlab最优化.pdf 编辑:程序博客网 时间:2024/06/01 21:55

首先引用一下 《Docker – 从入门到实践》的一段话:

一.为什么要用Docker

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。

首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

具体说来,Docker 在如下几个方面具有较大的优势。

更快速的交付和部署

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

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

更高效的虚拟化

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

更轻松的迁移和扩展

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

更简单的管理

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

对比传统虚拟机总结

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

二.自我总结的Docker简单入门

1.获取Docker:

apt-get install docker  #Ubuntuyum install docker      #CentOSpacman -S docker        #Arch

2.获取Docker镜像:

由于是在国内,国外的很多docker镜像源的速度实在感人,所以我推荐使用daocloud的镜像仓库,国内首个类似Docker Hub镜像服务站点,用github账号可以直接注册登录

在镜像仓库中我们发现了这个:
Ubuntu镜像

要使用docker首先需要打开docker的服务,以我的理解就是启动Docker Machine

systemctl start docker      #开启docker服务docker pull daocloud.io/library/ubuntu:precise-20160819 #拉取daocloud上的ubuntu镜像

拉取镜像

等待一会之后就会获得全部Pull complete的结果

3.开启一个docker容器

docker images #得到已经获取的镜像

已获取镜像

docker run -ti a11 /bin/bash

这里的a11的意思是我们下载的ubuntu的镜像的id,在docker images中的 IMAGE ID,可以免去输入daocloud.io/library/ubuntu的麻烦之处

docker run : 根据镜像启动一个容器
-i : 保持标准输入打开
-t : 分配一个虚拟的TTY来进行操作

同时我们执行/bin/bash 之后ls一下

运行bash

这样,我们就拥有了一个跑着ubuntu可以进行bash操作的小容器

4.其他Docker命令:

实际上在命令行中打出 docker 便会显示所有的命令,这里只做一些翻译与举例

docker rm <容器名>                             # 删除容器docker rmi <镜像名>                            # 删除镜像docker start/stop/restart <容器名>             # 开始/停止/重启 一个容器docker ps                                   # 查看正在UP状态的容器docker ps -a                                # 查看所有容器docker logs <容器名>                           # 显示容器日志docker top <容器名>                            # 显示容器中的进程docker save <镜像名> > <tar包名>.tar             # 将镜像打包成tardocker load  < <tar包>                       # 载入tar包的镜像docker export <容器名> > <tar包名>.tar       # 将容器打包成tarcat <tar包> |  docker import <容器名>           # 载入tar包的容器
0 0
原创粉丝点击