了解什么是 Docker

              _ _       _                    _
__      _____| | |   __| | ___  _ __   ___  | |
\ \ /\ / / _ \ | |  / _` |/ _ \| '_ \ / _ \ | |
 \ V  V /  __/ | | | (_| | (_) | | | |  __/ |_|
  \_/\_/ \___|_|_|  \__,_|\___/|_| |_|\___| (_)
                                              
 
 
 
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 
              |          |
           __ |  __   __ | _  __   _
          /  \| /  \ /   |/  / _\ |
          \__/| \__/ \__ |\_ \__  |
 

What is Docker?

Docker是一个为开发者和系统管理员构建部署运行分布式应用的开源平台。包括:Docker Engine,可移植的轻量运行环境和包管理工具,及Docker Hub。Docker Hub是为分享应用和自动化工作流服务的云服务。Docker能够做到apps快速从组件装配并且消除开发,质量评估和产品环境间的冲突。因此,它可以在不改变文件的情况下,在电脑上,数据中心虚拟机,任何云上运行同一款app

Why do developers like it?

有了Docker,开发者可以用任何语言,使用任何工具链构建任何应用。Docker化的应用完全可移植,并且到处运行:OS x,windows,云上的ubuntu或者是RED HAT上的产品数据中心虚拟机

Docker Hub上有13000+的apps,帮助开发者快速的开始开发。由Docker来管理,跟踪变化和依赖关系。系统管理员可以很容易地理解由开发者开发的app是如何工作的。有了Docker Hub,开发者可以自动构建他们自己的管道或者和合伙人通过共有或者由repositories来发布他们的产品

Docker帮助开发者开发,部署,快速的高质量应用。

Why do sysadmins like it?

系统管理员为他们(development, QA, and production teams)减少在自己电脑上运行带来的调整时间。通过Docker化app平台和app的依赖环境,系统管理员抽象的剥离了操作系统发行版本和底层的基础设施之间的差异。

此外,Docker Engine模块的标准化并以此作为部署单元使系统管理员更灵活的调整工作量。无论是否是空的物理机,或者data center VMs或者公共云,在基础架构技术的帮助下,workload deployment会更加的灵活。workload deployment会被企业的政策和次序来驱动。另外,Docker Engine的轻量运行环境允许快速的上架和下架以此响应需求的快速变化。

总的来说,Docker帮助系统管理员快速,稳定地在任何基础设施上部署和运行任何应用。

How is this different from Virtual Machines?

Virtual Machines

图片描述

每个运行在虚拟机里的应用本身大小的数量级在MB,而再加上应用依赖的包和二进制库以及运行应用的虚拟机后,整个系统的大小就会达到惊人的GB级别

Docker

图片描述

Docker引擎容器仅仅包含一个用和它的依赖项,它作为一个孤立的进程运行在操作系统的用户空间,和其它容器共享内核。因此,它享有特定的资源和虚拟机易部署的优势,但更加便捷和高效。

try it

docker version
docker search imageName
docker pull image(<username>/<repository>)
docker run [image name] [command]
docker run [image name] [apt-get install -y ping]

Save your change for image

保存更改使你下次使用这个镜像时能够从这个点开始运行镜像
docker中用来保存状态的操作叫做commit

docker ps -l    查看要保存的进程ID
docker commit id [new image name]
docker commit 698a learn/ping
docker run learn/ping ping www.baidu.com
docker inspect [image id] 查看image的详细信息

push you images to Docker Hub

docker images....查看当前主机上有多少个镜像
docker push [image name]
阅读 4.3k

推荐阅读
QuanTalk
用户专栏

公众号[QuanTalk],专注于计算机科学与技术、独立思考、阅读分享。欢迎关注交流

15 人关注
27 篇文章
专栏主页