docker容器化部署nodejs应用
##使用 Dockerfile 创建镜像 bossnodejs-test:v1.0.1 .————(镜像名称:v版本号+空格+点)——. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
docker build -t bossnodejs-test:v1.0.1 .
##标记本地镜像,将其归入某一仓库 171.18.230.31:5000/node-y12726/---容器化仓库(主机和用户/路径)————是否有使用权限
docker tag boss2cnodejs-test:v1.0.1 171.18.230.31:5000/node-y12726/bossnodejs-test:v1.0.1
##登陆到镜像仓库(不必须的操作)
docker login 171.18.230.31:5000
##将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push 171.18.230.31:5000/node-y12726/bossnodejs-test:v1.0.1
## -d 后台运行 -p 指定映射端口号(访问端口:nodejs应用启动端口) name 名字
docker run -d -p 34000:4000 --name=bossnodejs bossnodejs-test:v1.0.1
## 启动并且进入容器(执行上一句,报错导致容器起不来,可以使用这个命令,查看命令)
docker run -it --name=bossnodejs bossnodejs-test:v1.0.1 /bin/bash
#启动后
#查找运行的容器
docker ps
#查找所有的容器
docker ps -a
#查找所有的容器 过滤关键词
docker ps -a|grep bossnodejs
##进入运行的容器
docker exec -it 容器ID bash
##重启容器
docker restart
##停止容器
docker stop
##删除容器
docker rm
#进入容器后执行启动node命令(dockerfile中未配置启动命令或者启动不成功,进入容器处理应用)
node /fortess/bossNodejs/bossNodejs/bin/start
##删除镜像
docker rmi
##删除远程仓库镜像
docker rmi 171.18.230.31:5000/node-y12726/bossnodejs-test:v1.0.1
##删除本地镜像
docker rmi bossnodejs-test:v1.0.1
##对应的Dockerfile文件
#以nodejs为基础镜像
FROM 171.18.230.31:5000/nodejs:8.16.2_centos7.4
#在docker中用到的路径——在容器中的路径
ENV BOSS_HOME_PATH=/fortess/boss2cNodejs
#在docker中创建一个目录
RUN mkdir -p $BOSS_HOME_PATH
#将当前目录中的东西copy到$BOSS_HOME_PATH目录下,.是指当前目录
COPY . $BOSS_HOME_PATH
#EXPOSE命令只是声明了容器应该打开的端口并没有实际上将它打开!
EXPOSE 4000
##启动命令
CMD ["node","/fortess/bossNodejs/bossNodejs/bin/start"]
注意:
Docker 删除镜像
分为两部:首先 删除 容器,再删除镜像。
- 删除前需要保证容器是停止的 stop
- 需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)
- 顺序需要先删除容器