1.什么是容器:容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
2.为什么使用容器:容器使软件具备了超强的可移植能力,docker为代码提供了一个基于容器的标准化运输系统。docker可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。对于开发人员,容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的host环境是隔离的,就像虚拟机一样,更快更简单;对于运维人员,只需配置好标准的runtime环境,服务器就可以运行任何容器。这使得运维人员的工作变得更高效、一致和可重复。容器消除了开发、测试、生产环境的不一致性。
3.容器是如何工作的
(1)docker架构:客户端(client)、服务器(daemon,编辑配置文件/usr/lib/systemd/system/docker.service,在环境变量ExecStart后面添加-H tcp://0.0.0.0,允许任何IP的客户端连接)、镜像(image)、仓库、容器(container)
注:docker采用的是client/server架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个host上,客户端也可以通过socket或rest API与远程的服务器通信
例子:
- docker客户端执行docker run命令
- docker daemon发现本地没有httpd镜像
- daemon从docker hub下载镜像
- 将镜像保存到本地
- docker daemon启动容器