Dockerfile 内容如下
vi Dockerfile
#指定以openjdk:8-jre 为基础镜像,来构建此镜像,可以理解为运行的需要基础环境
FROM openjdk:8
RUN mkdir -p /opt/java_jar
#WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行。
WORKDIR /opt/java_jar
#将当前demo.jar 复制到容器对应目录下
ADD demo.jar /opt/java_jar/demo.jar
#jar文件端口 通过启动命令传入进来
ENV server_port ${server_port}
EXPOSE ${server_port}
#容器启动时执行的命令
CMD nohup java -jar -Xmx256m -Xms128m -Xss256k /opt/java_jar/demo.jar --spring.profiles.active=local --server.port=${server_port}
sh文件
vi test.sh
#!/bin/bash
echo "开始构建"
#构建镜像
#分别输入 容器名称 和要构建的 版本号 eg test 111 生成版本号为 test:111
read -p "Please enter your contain name and version eg : demo v1.0: " contain_name version
echo "开始构建 contain name and version is [${contain_name}:${version}]"
#取消自定义命令
#contain_name=demo
docker rmi ${contain_name}:${version}
docker buildx build -t ${contain_name}:${version} .
#停用之前的服务
docker stop ${contain_name}
docker rm ${contain_name}
#启动容器
docker run -p 8001:8001 -e server_port="8001" --name ${contain_name} -d ${contain_name}:${version}
echo "构建完成"
停用容器 并删除
vi stopAndRemoveContain.sh
#vi stopAndRemoveContain.sh
#!/bin/bash
read -p "Please enter your [contain name :contain version eg test:1] or contain id: " contain_info
echo "开始删除 contain name or contain id is [${contain_info}]"
#停止容器
docker stop ${contain_info}
#删除容器
docker rm ${contain_info}