linux把当前目录挂在到docker运行nodejs应用

不想写Docker File,也不想写Docker Compose, 在 Docker 容器中运行一个 Node.js 应用

可以使用下面命令

docker run -itd --restart=always --name node8010 -p 8010:8010 -v $(pwd):/data -w /data -d node:14.21.3-slim node /data/webhook.node.js

这个 `docker run` 命令用于在 Docker 容器中运行一个 Node.js 应用。下面是该命令的详细解释:

- `docker run`: 用于创建并运行一个 Docker 容器。
- `-itd`: 这是一些选项的组合,它们的含义如下:
  - `-i`:保持标准输入 (STDIN) 打开,允许你与容器进行交互。
  - `-t`:为容器分配一个伪终端(pseudo-tty),使你能够在容器内执行命令。
  - `-d`:在后台(守护进程)模式下运行容器。
- `--restart=always`: 指定容器在退出时自动重启。这样,如果容器在某些情况下终止,Docker 会自动重新启动它。
- `--name node8010`: 为容器指定一个名称为 `node8010`,方便后续管理。
- `-p 8010:8010`: 将容器的端口 8010 映射到主机的端口 8010。这允许我们通过主机上的端口来访问容器内运行的服务。
- `-v $(pwd):/data`: 将当前工作目录挂载到容器内的 `/data` 目录。`$(pwd)` 是 Linux shell 中获取当前工作目录的命令。这将使主机和容器之间可以共享文件。
- `-w /data`: 设置容器的工作目录为 `/data`。
- `-d`: 使用镜像为 `node:14.21.3-slim`,这是一个基于 Node.js 14.21.3 版本的轻量级镜像。
- `node /data/webhook.node.js`: 在容器内执行的命令。这里是运行 `node /data/webhook.node.js`,其中 `/data/webhook.node.js` 是在容器内的 `/data` 目录下的一个 Node.js 脚本文件。

使用这个 `docker run` 命令,你可以在容器中以后台运行的方式,启动一个名为 `node8010` 的容器,映射到主机的 8010 端口,并执行 `/data/webhook.node.js` 脚本文件。

那么怎么在Docker Compose里面表达这个命令呢

下面是将该 docker run 命令转换为 Docker Compose 的示例:

version: '3'

services:
  node8010:
    image: node:14.21.3-slim
    restart: always
    ports:
      - 8010:8010
    volumes:
      - ${PWD}:/data
    working_dir: /data
    command: node webhook.node.js

将上述内容保存为 docker-compose.yml 文件,并在包含该文件的目录下运行以下命令:

docker-compose up -d

这将使用 Docker Compose 创建并运行一个名为 node8010 的服务,使用 node:14.21.3-slim 镜像,容器的 8010 端口映射到主机的 8010 端口,并将当前目录 (${PWD}) 挂载到容器的 /data 目录。此外,容器的工作目录被设置为 /data,并最后执行 node webhook.node.js 命令。

请确保在运行 Docker Compose 命令时位于正确的目录中,以便将正确的当前目录传递给挂载点路径。同样,请根据实际情况进行相应的调整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值