容器化您的应用程序
原文: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
创建的文件。
总结
在这次演练中,您学习了如何将自己的应用程序容器化。
相关信息:
- 阅读更多关于 docker init
- 在 Dockerfile 参考 和 Compose 文件参考 中了解更多关于 Docker 资源的信息
搭建一个自己的 vitepress 博客网站为例
1. 根据下面教程,完成前三个步骤
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 .