翻译:开始docker

150 阅读3分钟

欢迎!我们很高兴你想学习Docker。 本页面包含了如何一步一步的开始使用Docker的说明。在本教程中, 你将学习如何

  • 构建和运行一个镜像作为容器
  • 分享镜像用Docker Hub
  • 部署Docker应用用多个容器和一个数据库
  • 运行应用用Docker Compose

此外,你将学习关于构建镜像的最佳实践,包括如何扫描你的镜像安全漏洞。 如果你正在寻找如何使用你最喜欢的语言将应用程序容器化的信息,请参阅Language-specific getting started guides

下载并安装Docker

本教程假设你现在已在你的机器上安装了当前版本的Docker。如果你没有安装Docker, 选择你喜欢的操作系统下载Docker:

Docker桌面版的安装说明,查看Install Docker Desktop on MacInstall Docker Desktop on Windows

开始教程

如果你已经运行命令开始来学习本教程,恭喜你!如果没有,打开命令提示符或者bash窗口,并运行以下命令:

$ docker run -d -p 80:80 docker/getting-started

你将注意到一些标识被使用。下面时他们的更多信息:

  • -d -运行容器以分离模式(后台运行)
  • -p 80:80 -映射主机的80端口到容器的80端口
  • docker/getting-started - 镜像使用

Tip

你可以组合单个自负来缩短完整的命令,例如,上面的命令可以写成:

 $ docker run -dp 80:80 docker/getting-started

Docker 面板

在深入讨论之前,我们想强调下Docker仪表盘,它可以让你快速查看机器上运行的容器。Docker 仪表盘可用于Mac和Windows。它使您可以快速访问容器日志,让您在容器中获得一个shell, 让您轻松的管理容器的生命周期(停止、删除等。)。 要访问仪表盘, 请遵循Docker Desktop。如果您现在打开仪表盘,您将看到本教程正在运行!容器名(下面的jolly_bouman)是随检创建的名称。所以,您将可能会有一个不同的名字。

什么是容器

现在你已经运行一个容器,什么是容器?简单的说,容器是沙箱进程在你的机器与主机所有其他进程隔离的。这种隔离利用了kernel namespaces and ccgroup,这些特性存在于Linux很长时间了。Docker致力于这些功能易于使用。总结一下,容器:

  • 是一个可运行镜像的实例。您可以创建、启动、停止、移动或删除容器使用DockerAPI或CLI。
  • 可运行在本地机、虚拟机或部署到云。
  • 是可移植的(可以运行在任何操作系统上)。
  • 容器上互相隔离的并且运行各自的软件、二进制文件和配置。

从头开始创建容器

如果你想看容器如何是从零开始构建,来自Aqua Security的Liz Rice有一个精彩的演讲,她在Go中从零开始构建了一个容器。虽然演讲没有讨论网络、文件系统的使用镜像和其他高级主题,但它非常深入探讨是如何工作的。

什么是容器镜像?

当运行一个容器,它使用隔离的文件系统。这个自定义的文件系统上由容器镜像提供的。由于镜像包含容器的文件系统,它必须包含应用程序运行的任何东西-所有依赖项,配置、脚本、二进制文件等。镜像还包含容器的其他配置项,例如环境变量,要运行的默认命令和其他元数据。 我们将在后面深入地研究,涵盖主题如分层、最佳实践等。

info 如果你熟悉chroot,可以将容器看作chroot的扩展版本。文件系统只是来自镜像。但是,容器添加了额外的隔离,对简单使用的chroot是不可用的。

CLI 参考

参考下面的主题文档,对于更好的使用的所有的CLI命令:

备注

受限于个人能力,可能翻译的不是很准确,仅供学习使用