那么,什么是 Docker,它究竟能做什么,什么是有用的?
Docker 是基础设施和 DevOps 圈子里备受关注的技术之一,是 Docker 开发的用于创建、分发和运行容器型虚拟环境的平台。
Docker 使用 Linux 容器技术,经常被比作虚拟机。 在 VirtualBox 等虚拟机中,主机上使用虚拟机管理程序来运行来宾操作系统,并在其上运行中间件。 另一方面,容器使用主机的内核来隔离进程、用户等,以便它们可以像另一台计算机正在运行一样运行。 因此,它重量轻,可以高速启动、停止等。
此外,Docker 通过编码来管理中间件的安装和各种环境设置。
这称为基础设施即代码 (IaC),它将软件开发中实现的配置管理和自动化应用于各种服务器设置和中间件安装。
这些解决方案具有以下优势:
通过共享编码文件,任何地方的任何人都可以创建相同的环境。
分发创建的环境很容易。
易于报废和构建。
例如,通过在开发过程中使用 Docker,可以更轻松地防止它在开发环境(在 Windows 上)中工作,但在 Linux 上不起作用的情况。 此外,可以将开发过程中使用的环境原样带到生产环境中,因此环境之间的差异很小,可以减少环境引起的问题。
通过将创建的 Docker 镜像交给他人使用,可以防止环境的版本漂移,缩短开发环境的准备工作。 如果因为缺乏解释或程序错误而花了一整天的时间来准备开发环境,那将是一种耻辱。 我自己一直在从开发环境使用 Docker,它对于新成员加入时降低成本和减少环境依赖问题很有用。
此外,在构建集群配置时,如果您有 Docker 镜像,则只需更改启动它的名称(容器名称)即可启动
多个环境(容器),因此您不必按照该过程从头开始创建环境,并且构建集群配置变得更加容易。 通过使用编排工具来管理容器,这使其更易于操作。
此外,如果您配置和管理编码的 (Dockerfile) 并使用 CI 工具(例如 Jenkins 或 CircleCI)运行它以构建(创建 Docker 镜像)、部署(启动容器)、测试环境(例如 Serverspec)和运行屏幕测试(例如 Selenium),您将能够每天这样做。 它还将使我们能够安心地进行开发,包括确认环境因素。 如果你能运行这个周期,那么在构建环境的时候,你就能减少 “运行应用需要什么包?” 的恐慌,我认为开发和发布周期会很稳定。
这样,使用 Docker 对于稳定开发和改善发布周期很有用,所以希望您尝试一下。
我认为仅仅解释很无聊,所以我实际上会运行一些命令并运行它。 (这次只是一个执行示例,安装和细节将在下次解释。 )
Docker 容器执行示例
Docker 映像(如果是虚拟机,则为 VM 映像)在 Web 上的 Docker Hub 上可用。 如果您从那里获取 Docker 镜像,则可以启动已安装必要中间件的 Docker 容器,并且可以立即使用它。
例如,让我们使用 Nginx Docker 镜像设置 Web 服务器。 在安装了 Docker 的环境中,执行以下操作:
docker run --name some-nginx -d -p 8080:80 nginx
只需点击此命令,
获取安装了 Nginx 的 Docker 镜像
使用获取的 Docker 镜像启动容器
在容器中启动 Nginx
它会被执行。
之后,您可以通过在浏览器中打开“http://< IP 地址 >:8080/”来访问 Web 服务器。 如果您创建的 Docker 镜像包含必要的文件和设置,则可以使用上述命令启动必要的 Web 服务器。
上一条:容器化与虚拟化:主要差异和用例
下一条:Docker设置和容器启动