跳至主要内容

使用容器或 Dockerfile 运行 Pod

本教程涵盖了从容器或 Dockerfile 运行 Pod 所需的以下端到端任务

  • 构建镜像
  • 创建容器
  • 创建和运行 Pod

创建容器时,您可以设置以下配置

  • 使用 **基本** 配置,您可以选择

    • 定义卷以配置持久存储位置。为此,您必须设置主机目录,然后将此目录挂载到容器。即使您的容器停止或失败,您也可以在主机目录中保持应用程序数据完整。

    • 定义端口映射以创建可从外部访问的容器。为此,您必须将主机端口与容器端口映射。此映射完成后,对主机端口的任何请求都会转发到容器中的端口。

    • 选择一个包含容器环境变量的文件。此文件以 key=value 格式包含数据。

  • 使用 **高级** 配置,您可以选择

    • 自动删除容器
    • 指定可以运行容器的用户 ID
    • 选择重新启动策略,该策略定义了容器在退出时是否应重新启动
  • 使用 **网络** 配置,您可以选择定义

    • 容器主机名
    • 自定义 DNS 服务器
    • 其他主机
    • 容器的网络模式
  • 使用 **安全性** 配置,您可以选择

    • 保护您的容器资源
    • 使容器根文件系统只读
    • 添加或删除安全功能
    • 指定一个命名空间,以将容器的使用限制为具有已定义权限和所有权的用户组

开始之前

确保您拥有

# syntax=docker/dockerfile:1

ARG NODE_VERSION
ARG ALPINE_VERSION

FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS base
WORKDIR /src

FROM base AS build
COPY package*.json ./
RUN npm ci
RUN npm run build

FROM base AS production
COPY package*.json ./
RUN npm ci --omit=dev && npm cache clean --force
COPY --from=build /src/dist/ .
CMD ["node", "app.js"]

构建镜像

  1. 点击左侧导航窗格中的 **容器**。

  2. 点击 **创建**。 创建新的容器

  3. 在 **从 Containerfile 构建镜像** 页面上,提供以下详细信息

    • Containerfile 路径:选择放置容器或 Dockerfile 的路径。
    • 构建上下文目录:该字段会根据文件路径自动选择上下文目录。
    • 镜像名称:如果需要,请输入镜像名称。
    • 构建参数:传递构建镜像所需的参数。此示例使用参数,例如 NODE_VERSIONALPINE_VERSION
    • 平台:更改要构建镜像的平台。默认平台为英特尔和 AMD x86_64 系统。 从 Containerfile 构建镜像
  4. 点击 **构建**。镜像开始构建。

  5. 镜像构建成功后,点击 **完成**。

  6. 在 **镜像** 页面上查看新创建的镜像。

创建容器

  1. 点击左侧导航窗格中的 **镜像**。

  2. 点击与要运行的镜像相对应的 **运行镜像** 图标。**从镜像创建容器页面** 将会打开。 运行镜像

  3. 可选:配置容器的基本详细信息: 容器的基本详细信息

  4. 可选:选择 **高级** 选项卡以配置容器的高级详细信息: 容器的高级详细信息

  5. 可选:选择 **网络** 选项卡以配置容器的网络详细信息: 容器的网络详细信息

  6. 可选:选择 **安全性** 选项卡以配置容器的安全详细信息: 容器的安全详细信息

  7. 点击 **启动容器**。

  8. 查看 **容器详细信息** 页面以获取信息,例如摘要、日志、YAML 代码,并访问终端。 容器详细信息页面

  9. 点击页面右侧的 **关闭** 图标。

  10. 在 **容器** 页面上查看新创建的容器。

创建和运行 Pod

  1. 从左侧导航窗格中转到 **容器**。

  2. 从容器列表中选择容器。 选择容器

  3. 点击 **创建 Pod**。**将容器复制到 Pod 页面** 将会打开。

  4. 如果需要,更改 Pod 的名称,然后点击 **创建 Pod**。 创建 Pod

  5. 在 **Pod** 页面上查看新创建的 Pod。

  6. 点击与您创建的 Pod 相对应的 **启动 Pod** 图标。

  7. 检查该 Pod 是否在同一页面上运行。 运行 Pod