Skip to content

容器化您的应用程序

原文:https://docs.docker.com/guides/walkthroughs/containerize-your-app/

在处理容器时,您通常需要创建一个 Dockerfile 来定义您的镜像,以及一个 compose.yaml 文件来定义如何运行它。

为了帮助您创建这些文件,Docker Desktop 提供了 docker init 命令。在项目文件夹中的终端运行此命令。docker init 创建了容器化您的应用程序所需的所有文件。本演练将向您展示这是如何工作的。

步骤 1: 运行命令以创建 Docker 资源

选择您想要容器化的自己的应用程序之一,在终端中运行以下命令。将 /path/to/your/project/ 替换为包含您的项目的目录。

bash
cd /path/to/your/project/
bash
docker init

步骤 2: 跟随屏幕提示

docker init 会引导您回答几个问题,以便使用合理的默认设置配置您的项目。指定您的答案并按 Enter 键。

步骤 3: 尝试运行您的应用程序

一旦您回答了所有问题,运行以下命令在终端中运行您的项目。将 /path/to/your/project/ 替换为包含您的项目的目录。

bash
cd /path/to/your/project/
bash
docker compose up

步骤 4: 更新 Docker 资源

docker init 命令尽其所能为您做繁重的工作,但有时还需要一些装配。在这种情况下,您可以参考 Dockerfile 参考Compose 文件参考 来学习如何更新 docker init 创建的文件。

总结

在这次演练中,您学习了如何将自己的应用程序容器化。

相关信息:

搭建一个自己的 vitepress 博客网站为例

1. 根据下面教程,完成前三个步骤

VitePress 入门教程

2. docker 容器化,选择 node.js 应用

docker init

3. 修改 Dockerfile 内容

注意这里的 NODE_ENV production 要注释掉,不然不会安装 devDependencies 中的模块依赖 也就无法打包了

dockerfile
# syntax=docker/dockerfile:1

# Comments are provided throughout this file to help you get started.
# If you need more help, visit the Dockerfile reference guide at
# https://docs.docker.com/go/dockerfile-reference/

# Want to help us make this template better? Share your feedback here: https://forms.gle/ybq9Krt8jtBL3iCk7

ARG NODE_VERSION=18.16.0
ARG NGINX_VERSION=1.25.4

FROM node:${NODE_VERSION}-alpine AS builder

# Use production node environment by default.
# ENV NODE_ENV production

WORKDIR /app

COPY package.json package-lock.json /app

RUN npm install --registry=https://registry.npmmirror.com

COPY . /app

RUN npm run docs:build

FROM nginx:${NGINX_VERSION}-alpine

COPY --from=builder /app/dist /usr/share/nginx/html

EXPOSE 80

4. 构建 mynginx 镜像

console
docker build -t mynginx .

5. 运行容器

console
docker run --name mydocs -d -p 8889:80 .

6. 浏览器访问

http://localhost:8889