应用在本地是已经ok的了,现在将node应用放进docker容器里面

docker使(二)—发布node应用镜像和容器-LMLPHP

获取node镜像

docker pull node

docker使(二)—发布node应用镜像和容器-LMLPHP

编写Dokerfile

# 根据node镜像开始创建新的镜像(可以加上:tag)
FROM node # 用于在Image里创建一个文件夹并用来保存我们的代码
#-P:将容器内部使用的网络端口映射到我们使用的主机上
RUN mkdir -p /home/service # 将我们创建的文件夹做为工作目录
WORKDIR /home/service # 把本机当前目录下的所有文件拷贝到Image的/home/Service文件夹下
COPY . /home/service
# 使用npm 安装我们的app据需要的所有依赖
RUN npm install EXPOSE 80 CMD ['npm','start'] #注意这里容器暴露的是80端口,应用服务的监听端口也应该是80端口 #为了避免node_modules里面的文件也copy,我设置了.dockerignore

制作镜像


docker build -t aad_serve:0.0.1 .
(注意最后的.)
-t :指定要创建的目标镜像名 . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径 自己设置端口

使用镜像创建容器并启动node应用

# 方法一:让docker自己映射端口
docker run -d -p aad_serve:0.0.1 node app.js # 方法二:自己配置映射端口
docker run -d -p 100:80 aad_serve:0.0.2 node app.js
(注意100:80的意思是,将主机的100端口和容器的80d端口做映射)

现在可以在主机访问http://localhost:100

容器的停止和删除

如果cmd终端不行时,在powershell里面操作


docker rm $(docker ps -a -q) #删除全部通用容器
docker ps -a  查看全部容器,含停用

参考文章</>