Docker是一个开源软件,它可以把一个Linux应用和它所依赖的一切(比如配置文件)都封装到一个容器。然而,Docker与虚拟机不同,它使用了沙箱机制,Docker容器不运行操作系统,它共享主机上的操作系统。
docker 主要应用:
1.自动化测试,杀死容器,不会改变镜像
2. 一键安装部署服务器
Docker 的价值在于如何构建,运送和运行应用程序。
开发人员使用Docker来消除与同事的代码协作时的“我机器上的工作”的问题。运营商使用Docker在独立的容器中并行运行和管理应用程序,以获得更好的计算密度。
使用容器,使一件软件运行所需的一切都被打包成隔离的容器。
Docker自动执行设置和配置开发环境的重复任务。
Dockerfiles随附的代码更简单:依赖关系被拉为整齐的Docker映像,任何具有Docker和编辑器的人都可以在几分钟内构建和调试应用程序。
Docker是开发人员和IT运营团队无处不在的秘密武器,允许他们自动,安全,可移植地构建,发布,测试和部署应用程序,而不会有任何惊喜。
集成传统应用程序
容器增加了现有应用程序的安全性和可移植性,同时节省了成本。
每个业务都有一个已经在其环境中运行的旧应用程序的组合。这些应用成程序是为客户服务或自动化的业务流程、
使用容器提高应用程序安全性,以隔离应用程序,并通过图像签名和应用程序在生命周期中验证来保证安全的传输。
可移植性
将应用程序需要的一切包装到一个容器中,并将其从一个虚拟机迁移到另一个虚拟机到服务器或云。而无需重构应用程序。
从容器隔离,容器可移植性和降低的成本提高了安全性。一旦集装箱化,这些应用程序可以增加额外的服务或转变为微服务体系结构。
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。
Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。
可能最大的障碍在于管理实例之间的交互。由于所有应用组件被拆分到不同的容器中,所有的服务器需要以一致的方式彼此通信。这意味着任何人如果选择复杂的基础设施,那么必须掌握应用编程接口管理以及集群工具,比如Swarm、Mesos或者Kubernets以确保机器按照预期运转并支持故障切换。
安装步骤:
更新系统,确保软件包列表的有效性
apt-get update
一旦以上需求都满足了,就可以开始安装Docker。Docker最早只支持Ubuntu,后来有了CentOS和其它RedHat相关的发布包。安装很简单,执行命令:
apt-get -y install docker.io
下面我们docker命令带pull选项,拉取一个镜像,即从Docker注册服务器的软件仓库下载一个Docker的镜像。
使用的命令如下:
docker pull ubuntu
现在可以看到在Bash Shell下建立Ubuntu容器是非常简单的,只需运行一行命令即可。
-i选项:让输入输出都在标准控制台进行
-t选项:分配一个tty
docker run -i -t ubuntu /bin/bash
root@696d5fd32bba:/#
删除镜像
docker rmi +镜像id 当还有容器使用该镜像的时候是无法删除的