教程 > 阅读:460

docker 教程——迹忆客-ag捕鱼王app官网

什么是docker

docker 是一种使用 go语言 开发的在容器内运行应用程序的工具。它是开源的,并遵从apache2.0协议。 容器将应用程序需要运行的所有依赖项和代码打包到一个文件中,该文件将在任何机器上以相同的方式运行。

docker 在概念上类似于虚拟机,只是它更轻量。 docker 不是运行一个完整的独立操作系统(这是一个巨大的开销),而是运行容器,这些容器使用相同的主机操作系统,并且只在软件级别进行虚拟化。

docker 容器 vs 虚拟机
docker 容器 vs 虚拟机

docker engine 可以在 linux、windows 和 macos 上运行,并支持 linux 和 windows 用于 docker 容器。 linux 的版本实际上并不重要。 大多数版本的 linux 将运行相同的内核,只是用户软件不同。 docker 可以将此用户软件安装到容器中,允许我们在 ubuntu 上运行 centos 容器。 例如,不能在 ubuntu 上运行 freebsd,因为内核不同。

docker 容器镜像仅包含应用程序需要运行的内容。 如果应用程序使用 nginx 和 node.js,容器镜像将包含它们,但不会被通常在 linux 上找到的所有其他用户态应用程序所影响。


docker的应用场景

  • web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的 openshift 或 cloud foundry 平台来搭建自己的 paas 环境。

为什么使用 docker

docker 采用与 git 和 npm 等工具提供的相同类型的版本控制和打包,并允许我们将其用于服务器软件。 由于容器是单个镜像,因此可以很容易地对容器的不同构建进行版本跟踪。 而且由于所有内容都包含在内,从而使得管理所有依赖项变得更加容易。

有了 docker,我们的开发环境会和生产环境一模一样,也和其他人的开发环境一模一样,缓解 “在我的机器上坏了!”的问题。

如果想在集群中添加另一台服务器,则不必担心重新配置该服务器并重新安装所需的所有依赖项。 构建容器后,我们可以与任何人共享容器文件,他们可以通过一些命令轻松启动并运行我们的应用程序。 docker 使运行多个服务器变得非常容易,尤其是使用 和 等引擎。

docker 还允许我们组织代码来部署在新服务上。 假设有一个用于应用程序的 web 服务器。 你可能在那个服务器上安装了很多东西,有一个用于托管静态内容的 nginx web 服务器,还可能有一个用于在后端存储一些东西的数据库,并且还有一个在 express 上运行的 api 服务器。 js也是如此。 理想情况下,我们会将这些拆分为单独的应用程序以在单独的服务器上运行,但开发可能会变得混乱。

docker 会帮助解决上面这个代码混乱的问题; 我们可以打包 web 服务器并使用 nginx 容器运行它,还可以打包 api 服务器并使用 node.js 容器运行它,而且还可以打包数据库并在它自己的容器中运行它(尽管这可能 不是最好的主意,但有可能)。 我们可以使用这三个 docker 容器并在同一台机器上运行它们。 如果需要切换服务器,只需将这些容器迁移到新服务器即可。 如果需要扩展,则可以将其中一个容器移至新服务器,或将其部署在服务器集群中。


谁适合阅读本教程?

本教程适合运维工程师及后端开发人员,通过本教程你可以一步一步了解 docker 的使用。

查看笔记

扫码一下
查看教程更方便
网站地图