Dockerfile
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
更新详细语法说明,请参考官网文档: Dockerfile reference | Docker Docs
Dockerfile部署Java项目
首先创建一个目录 例如docker-demo
将我们打包好的Java项目的jar放入其中 例如docker-demo.jar
随后编写一个Dockerfile文件
# 指定基础镜像
FROM java:8-alpine
COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
构建镜像:
docker build -t javaweb:1.0 .
Dockerfile部署VUE前端
首先安装node
docker pull node:16.20.2
然后运行出一个容器
docker run -itd --name 容器名 -p 8080:8080 node:16.20.2
查看容器状态
docker container ls
进入到容器内部
docker exec -it 容器名 bash
克隆前端项目
git clone
克隆后就可以下载项目所需要的依赖
npm install
然后运行
npm run serve
将前端打包成一个镜像
创建一个文件夹
mkdir -p /opt/docker-images/hellovue
进入到刚才创建的文件夹中 创建一个Dockerfile文件
vi Dockerfile
Dockerfile文件中填以下信息
FROM node:16.20.2
RUN git clone 项目链接
WORKDIR 克隆项目的名字
RUN npm install
EXPOSE 8080
CMD ["npm", "run", "serve"]
回到文件夹hellovue下面
docker build -t hellow:v1.0
docekr images 查看构建的镜像
docker run -itd --name 起名 -p 8080:8080 镜像的名字:v1.0 启动刚才创建的镜像
docker ps -a 查看启动的镜像
Dockerfile文件
# 基础镜像
from nginx:1.19
# Dockerfile的维护者
maintainer 919432841@qq.com
# 注释
label zl dockerfile-std
# 构件时环境变量
arg port 80
# 运行时环境变量
env port 80
# 拷贝
copy test.txt /
# 拷贝并解压
add test.tar /
# 指定工作目录
workdir /
# 在构建的时候执行的命令
run ls
# 换一个工作目录
workdir /test
run ls
# 容器启动的时候执行的命令,在外部的命令也会覆盖里面的
cmd ["-g","daemon off;"]
# 如果cmd和entrypoint同时使用,那么cmd中的东西会作为entrypoint的参数
# 容器启动的时候执行的命令,在外部的命令不会覆盖里面的
entrypoint ["nginx"]
# 暴露端口 1.开发人员方便查看 2. -P 动态映射端口
expose ${port}
#挂载卷,挂载在容器中的data目录,宿主的目录不知道,会随机分配
volume ["/data"]
run apt-get update -y
run apt-get install curl -y
# 健康检查
healthcheck --interval=5s --timeout=3s cmd curl -fs http://localhost/ || exit 1