前言
本篇文章会使用docker简单部署一个node服务,用其他语言编写也是可以的,重点是掌握常用的docker命令。
首先新建一个index.js文件
// index.js
const { createServer } = require('http')
const app = createServer((req, res) => {
res.end('<h1>hello</h1>')
})
app.listen(3001)
console.log('服务运行在http://localhost:3001')
编写完相关代码,随后在当前目录中运行 node index.js
,访问本地 3001 端口,可以看到页面展示 Hello 字段,代表服务运行成功。
接下来使用docker来部署node服务
同样在当前目录下新建一个 Dockerfile 文件,注意首字母大小写,没有拓展名。编写以下内容
# 选择镜像
FROM node:20-alpine
#设置工作目录 代表以后的RUN/CMD命令都在这个工作目录中运行
WORKDIR /runDir
# 把当前的代码都添加到这个目录中
COPY . /runDir
# 运行启动命令
CMD node index.js
构建镜像
# 这里的imageName指的是构建之后的镜像名字,而后面的 ?:version 指代是否添加版本号,
# 版本可以不填写所以用?表示,不要忘了最后的点表示当前目录
docker build -t ${imageName?:version} .
# 示例
docker build -t my-docker:v1 .
#或
docker build -t my-docker .
查看本地镜像
docker images
# 或
docker image ls
找到要运行的镜像id,执行命令启动容器
docker run imageId
启动镜像
docker run -p ${target-port}:${origin-port} ${image-name?:version}
# 或
docker run -p ${target-port}:${origin-port} ${image-id}
查看本地所有容器,包括没有正在运行的
docker ps -a
查看本地正在运行的容器
docker ps
停止某个正在运行的容器
docker stop ${container-id}
启动某个容器
docker start ${container-id}