本文以springboot jar容器部署为例,介绍docker容器部署方式
编写Dockerfile
# 基础镜象FROM centos:7# 维护者 名称 邮箱MAINTAINER jiangyunpeng <jiangyunpeng-yd@thunisoft.com># 配置java dockerfile所在宿主机目录下的jdk copy到容器内/home下COPY jdk-8u172-linux-x64.tar.gz /home/RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Aisa/Shanghai" > /etc/timezone \&& mkdir -p /usr/local/java \&& cd /home/ && tar -zxf jdk-8u172-linux-x64.tar.gz -C /usr/local/java#ENV LANG="en_US.UTF-8" \JAVA_HOME="/usr/local/java/jdk1.8.0_172" \JAVA="/usr/local/java/jdk1.8.0_172/bin/java" \NACOS_HOST="xxx.xx.xx.xxx" \NACOS_PORT="8090"# 创建目录 创建的是容器内目录RUN mkdir -p /app# 上传jar包 第一个路径为宿主机目录文件 第二个为容器内路径ADD app-3.7.0.jar /app/app.jar## 创建启动脚本RUN echo '#!/bin/bash' >> /app/start.sh \&& echo 'exec $JAVA -jar /app/app.jar --spring.cloud.nacos.discovery.server-addr=${NACOS_HOST}:${NACOS_PORT} ' >> /app/start.sh \&& chmod 755 /app/start.sh# 暴露端口EXPOSE 7001# 配置容器启动后执行的命令WORKDIR /appCMD ["/app/start.sh"]
创建镜像、部署容器
# app:3.7.0 代表镜像名称和版本docker build -t app:3.7.0 .#移除镜像docker rmi app:3.7.0#查看所有镜像docker images
#运行容器docker run -d --network net-test -v /etc/hosts:/etc/hosts -v /opt/apps/app/logs:/app/logs --name app -p 7001:7001 app:3.7.0#跟踪日志docker logs -f app#删除容器docker rm app#进入容器 查看容器系统docker exec -it app bash#容器内 命令查看help
