首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AIxmi人工智能基础能力编程--工具篇 入门指南和实操演示

入门指南概述

本指南包含有关如何开始使用 Docker 的分步说明。本指南介绍如何:

将映像作为容器生成并运行。

使用 Docker Hub 共享映像。

使用具有数据库的多个容器部署 Docker 应用程序。

使用 Docker Compose 运行应用程序。

什么是容器?

容器是在主机上运行的沙盒进程,它与该主机上运行的所有其他进程隔离。这种隔离利用内核命名空间和 cgroupopen_in_new, 在 Linux 中已经存在了很长时间的功能。Docker 使这些功能易于访问且易于使用。总而言之,一个容器:

是映像的可运行实例。您可以使用 Docker API 或 CLI 创建、启动、停止、移动或删除容器。

可以在本地计算机、虚拟机上运行,也可以部署到云中。

是可移植的(可以在任何操作系统上运行)。

与其他容器隔离,并运行自己的软件、二进制文件、配置等。

如果您熟悉 ,则可以将容器视为 的扩展版本。文件系统来自映像。但是,容器增加了使用 chroot 时不可用的额外隔离。chrootchroot

什么是图像?

正在运行的容器使用隔离的文件系统。这个隔离的文件系统由映像提供,映像必须包含运行应用程序所需的一切 - 所有依赖项、配置、脚本、二进制文件等。该映像还包含容器的其他配置,例如环境变量、要运行的默认命令和其他元数据

容器化应用程序

在本指南的其余部分,您将使用一个简单的待办事项 在 Node.js 上运行的列表管理器。如果您不熟悉 Node.js, 不用担心。本指南不需要任何 JavaScript 经验。

先决条件

您已安装最新版本的 Docker Desktop。

您已经安装了Git 客户端open_in_new.

您有一个 IDE 或文本编辑器来编辑文件。Docker 建议使用Visual Studio 代码open_in_new.

获取应用程序

在运行应用程序之前,需要将应用程序源代码获取到计算机上。

克隆getting-started-app 存储库open_in_new使用以下命令:

$ git clone https://github.com/docker/getting-started-app.git

查看克隆存储库的内容。您应该会看到以下文件和子目录。

├── getting-started-app/

│ ├── package.json

│ ├── README.md

│ ├── spec/

│ ├── src/

│ └── yarn.lock

生成应用的映像

若要生成映像,需要使用 Dockerfile。Dockerfile 只是一个基于文本的文件,没有文件扩展名,包含指令脚本。Docker 使用此脚本生成容器映像。

在与文件相同的目录中,创建一个名为 .您可以使用以下命令创建基于您的操作系统的 Dockerfile。getting-started-apppackage.jsonDockerfile

Mac / Linux操作系统 窗户

在终端中,运行以下命令。

确保您在目录中。替换为目录的路径。getting-started-app/path/to/getting-started-appgetting-started-app

$cd /path/to/getting-started-app

创建一个名为 的空文件。Dockerfile

$ touch Dockerfile

使用文本编辑器或代码编辑器,将以下内容添加到 Dockerfile:

[

使用以下命令生成映像:

在终端中,确保您位于目录中。替换为目录的路径。getting-started-app/path/to/getting-started-appgetting-started-app

$cd /path/to/getting-started-app

生成映像。

$ docker build -t getting-started .

该命令使用 Dockerfile 生成新映像。您可能已经注意到 Docker 下载了很多“层”。这是因为您指示构建者要从映像开始。但是,由于您的计算机上没有该映像,因此 Docker 需要下载映像。docker buildnode:18-alpine

Docker 下载映像后,Dockerfile 中的说明将复制到应用程序中,并用于安装应用程序的依赖项。该指令指定从此映像启动容器时要运行的默认命令。yarnCMD

最后,该标志会标记您的图像。将其视为最终图像的人类可读名称。由于您命名了映像,因此可以在运行容器时引用该映像。-tgetting-started

命令末尾的 告诉 Docker 它应该在当前目录中查找 。.docker buildDockerfile

启动应用容器

现在,您已经有了映像,可以使用该命令在容器中运行应用程序。docker run

使用命令运行容器,并指定刚刚创建的映像的名称:docker run

$ docker run -dp 127.0.0.1:3000:3000 getting-started

标志(简称 )在后台运行容器。 这意味着 Docker 会启动您的容器并将您返回到终端 提示。可以通过在 Docker 中查看容器来验证容器是否正在运行 Dashboard 在 Containers 下,或在终端中运行。-d--detachdocker ps

标志(的缩写)在主机之间创建端口映射 和容器。该标志采用格式为 的字符串值,其中 是主机上的地址,并且是 容器上的端口。该命令将容器的端口 3000 发布到主机上的 ()。没有端口映射, 您将无法从主机访问该应用程序。-p--publish-pHOST:CONTAINERHOSTCONTAINER127.0.0.1:3000localhost:3000

几秒钟后,打开您的网络浏览器http://localhost:3000open_in_new. 您应该会看到您的应用。

添加一两个项目,看看它是否按预期工作。您可以将项目标记为已完成并删除它们。前端已成功将项目存储在后端。

此时,您有一个正在运行的待办事项列表管理器,其中包含一些项目。

如果快速查看容器,应看到至少有一个容器正在运行,该容器正在使用映像和端口。要查看容器,可以使用 CLI 或 Docker Desktop 的图形界面。getting-started3000

命令行界面 Docker 桌面

在终端中运行以下命令以列出容器。docker ps

$ docker ps

应显示类似于以下内容的输出。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

df784548666d getting-started "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 127.0.0.1:3000->3000/tcp priceless_mcclintock

总结

在本部分中,你学习了有关创建 Dockerfile 以生成映像的基础知识。生成映像后,启动了一个容器并看到了正在运行的应用。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OSB_MRClZ0UX4VwkvOKpzfxA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券