随便记录一下

1、首先需要在项目的根目录添加DockerFile文件

FROM node:10.15
#FROM node:latest

RUN mkdir -p /home/www/nodeEmail
WORKDIR /home/www/nodeEmail

RUN apt-get update

RUN apt-get install -y \
    vim \
    wget

COPY . /home/www/nodeEmail

RUN npm install

# 设置时区
RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#EXPOSE 3000

ENTRYPOINT ["npm", "run"]
CMD ["start"]

2、然后我们需要build一个镜像,在根目录下执行,来生成镜像

docker build -t nodemail .

3、然后我们通过docker image可以看到我们已经打包好的镜像

4、最后我们把服务启动起来

docker run -d -p 8003:3000 --name="nodeemail" nodeemail

docker run 是 docker create 和 docker start 两个命令的简写。

  • -d 即 --detach,代表让容器后台运行。
  • -p 指定宿主机和容器的端口映射,左边为宿主机的端口,右边为容器的端口,也就是说访问宿主机的 8003 端口,会映射到容器内的 3000 端口。
  • --name 设置容器别名,如果不指定,docker 会随机生成一个名字,比如 tender_swirles 之类的。

添加内存限制

docker run -d -p 8081:8080 -m 512M --memory-swap -1 --name tomcat01
  • –memory=”300m” –memory-swap=”1g” 的含义为: 容器可以使用 300M 的物理内存,并且可以使用 700M(1G -300M) 的 swap。–memory-swap 居然是容器可以使用的物理内存和可以使用的 swap 之和!
  • --memory-swap 设置为 0 和不设置是一样的,此时如果设置了 --memory,容器可以使用的 swap 大小为 --memory 值的两倍。
  • 如果--memory-swap 的值和--memory 相同,则容器不能使用 swap。

docker run -d -p 8003:3000 -m 100M --memory-swap -1 --name="nodemail" nodemail

5、进入容器里面进行查看

docker exec -it express-app bash

6、关闭容器

docker stop nodeemail


7、删除容器

docker rm nodeemail
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐