本文以springboot jar容器部署为例,介绍docker容器部署方式

编写Dockerfile

  1. # 基础镜象
  2. FROM centos:7
  3. # 维护者 名称 邮箱
  4. MAINTAINER jiangyunpeng <jiangyunpeng-yd@thunisoft.com>
  5. # 配置java dockerfile所在宿主机目录下的jdk copy到容器内/home下
  6. COPY jdk-8u172-linux-x64.tar.gz /home/
  7. RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  8. && echo "Aisa/Shanghai" > /etc/timezone \
  9. && mkdir -p /usr/local/java \
  10. && cd /home/ && tar -zxf jdk-8u172-linux-x64.tar.gz -C /usr/local/java
  11. #
  12. ENV LANG="en_US.UTF-8" \
  13. JAVA_HOME="/usr/local/java/jdk1.8.0_172" \
  14. JAVA="/usr/local/java/jdk1.8.0_172/bin/java" \
  15. NACOS_HOST="xxx.xx.xx.xxx" \
  16. NACOS_PORT="8090"
  17. # 创建目录 创建的是容器内目录
  18. RUN mkdir -p /app
  19. # 上传jar包 第一个路径为宿主机目录文件 第二个为容器内路径
  20. ADD app-3.7.0.jar /app/app.jar
  21. ## 创建启动脚本
  22. RUN echo '#!/bin/bash' >> /app/start.sh \
  23. && echo 'exec $JAVA -jar /app/app.jar --spring.cloud.nacos.discovery.server-addr=${NACOS_HOST}:${NACOS_PORT} ' >> /app/start.sh \
  24. && chmod 755 /app/start.sh
  25. # 暴露端口
  26. EXPOSE 7001
  27. # 配置容器启动后执行的命令
  28. WORKDIR /app
  29. CMD ["/app/start.sh"]

创建镜像、部署容器

  1. # app:3.7.0 代表镜像名称和版本
  2. docker build -t app:3.7.0 .
  3. #移除镜像
  4. docker rmi app:3.7.0
  5. #查看所有镜像
  6. docker images
  1. #运行容器
  2. 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
  3. #跟踪日志
  4. docker logs -f app
  5. #删除容器
  6. docker rm app
  7. #进入容器 查看容器系统
  8. docker exec -it app bash
  9. #容器内 命令查看
  10. help