docker部署node项目

‖任℡か性
2023-06-12 / 0 评论 / 122 阅读 / 正在检测是否收录...

要打包并部署一个 Node.js 项目,并且让 Docker 容器在开机时自动启动,您需要完成以下步骤:

在项目目录下创建一个 Dockerfile 文件。

编写 Dockerfile 文件,包括构建镜像的指令。

使用 Docker build 命令构建镜像。

运行并部署镜像,并添加 --restart 选项以设置在开机时自动运行容器。

以下是一个示例 Dockerfile 文件,它假设您的 Node.js 项目文件在当前工作目录中:

# 基础镜像为 Node.js 18 版本的 Alpine 发行版
FROM node:18-alpine

# 镜像维护者信息
MAINTAINER sofia

# 设置工作目录
WORKDIR /app

# 将当前目录中的所有文件复制到容器中
COPY . .

# 安装项目所需的依赖项
RUN npm install

# 将容器的 3000 端口暴露给宿主机,端口与项目端口一致
EXPOSE 3000

# 设置容器默认命令 需要与项目的config.json一致
CMD ["npm", "start"]

在这个例子中,我们使用了“node:18-alpine”作为基础镜像。在容器中创建了一个名为“/app”的工作目录,并将当前目录中的所有文件复制到该目录中。容器启动后,将运行 npm install 来安装所有项目依赖项,并将 TCP 端口 3000 添加到容器的暴露端口列表中。最后将项目的启动命令设置为容器的默认命令。

要构建此 Docker 镜像,请使用以下命令:

docker build -t your-image-name .

接下来,您需要使用 Docker run 命令来启动并运行容器,从而部署项目,并添加 --restart=always 选项,以便在容器停止或系统重新启动时自动重启。

创建一个自定义网络
docker network create --subnet=172.18.0.0/16 my-network
docker run -p 外部端口:内部端口 --name [自定义名字] --hostname [自定义名字] --restart always your-image-name
示例
docker run -p 3001:3001 --network my-network --ip 172.18.0.3  --name cp --hostname cp --restart always cp-image

使用 -p 参数,将 Docker 容器的端口映射到主机上的端口上。这意味着,当您在主机上使用 http://localhost:端口 访问时,请求会被转发到 Docker 容器中的端口。

使用 -ip 参数,给 Docker 容器指定ip ,避免容器重启重新分配ip

使用 --name 参数来给容器命名,这有助于您更轻松地识别容器,而不必记住其 ID。

使用 --hostname 参数来设置容器的主机名

使用 --restart always 参数来告诉 Docker Engine 在容器停止工作时自动重启容器。这是在生产环境中使用 Docker 容器时非常有用的功能。

现在,您可以通过访问 http://localhost:3001 或者你的服务器ip:3001 来访问部署的 Node.js 项目,并且在系统重新启动后,容器会自动重新启动。

0

评论

博主关闭了所有页面的评论