docker打包镜像

打包和加载镜像

打包

docker save -o <保存路径/文件名.tar> <镜像名:标签>

docker save -o ubuntu_latest.tar ubuntu:latest

加载

docker load -i <镜像文件.tar>

docker load -i ubuntu_latest.tar

打包springboot项目

使用本地jdk

Dockerfile

# 使用基于JDK 8的官方Java镜像作为基础镜像
#FROM openjdk:8-jdk
FROM centos:7
# 将JAR包复制到容器中
COPY / /app/

RUN echo $JAVA_HOME && sleep 5

RUN echo $(java -version) && sleep 5

ENV JAVA_HOME /app/jdk1.8.0_151
ENV PATH ${JAVA_HOME}/bin:$PATH
RUN echo 'after'
RUN echo $JAVA_HOME && sleep 5

RUN  echo $(java -version)  && sleep 5

# 设置工作目录
WORKDIR /app

# 运行JAR包
CMD ["java" , "-jar", "app.jar"]


EXPOSE 8080

打包tomcat项目

使用本地的tomcat和jdk

#FROM openjdk:8-jdk-slim
#FROM openjdk:8-jdk
FROM centos:7
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH

COPY tomcat $CATALINA_HOME
COPY jdk /app/jdk
COPY code /app/code
EXPOSE 7070
CMD ["catalina.sh", "run"]

打包公司的项目

使用java启动脚本启动

Dockerfile

FROM centos:7

RUN sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-Base.repo && \
    sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-Base.repo

RUN yum -y install telnet iputils traceroute  && \
    yum clean all

#设置支持中文
ENV LANG zh_CN.GBK
RUN localedef -i zh_CN -f GBK zh_CN.GBK

# 将JAR包复制到容器中
COPY / /app

RUN rm -f /app/Dockerfile
# 设置Java环境变量
ENV JAVA_HOME /app/jdk
ENV PATH ${JAVA_HOME}/bin:$PATH
# 设置工作目录
WORKDIR /app/bin
VOLUME /app/logs
VOLUME /app/conf

# 确保run.sh可执行
RUN chmod +x /app/bin/run.sh

# 运行程序i
CMD ["sh", "-c", "/app/bin/run.sh run && tail -f /dev/null"]

 tail -f /dev/null目的是为了不让执行完脚本容器退出

工作目录之所以是/app/bin,是因为代码中通过当前执行脚本的目录去获取配置

启动脚本

#!/bin/bash
LANG=zh_CN.gbk
export LANG
for i in /app/lib/*
do
  case "$i" in
     *.jar) export CLASSPATH=$CLASSPATH:$i ;;
  esac
done
echo $CLASSPATH
nohup java -Xss1024k -Xms200m -Xmx200m -DappName=EServer4H com.linkage.litms.eserver.Application EServer4H &
echo 'esb start'

在镜像中执行cron任务

Dockerfile


FROM centos:7
# 将JAR包复制到容器中
COPY / /app/

#加速yum下载
RUN sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-Base.repo && \
    sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-Base.repo
#安装指定的工具
RUN yum -y install cronie && \
       yum clean all


RUN mv /app/mycron /etc/cron.d

RUN chmod +x /app/cyz.sh /app/test.sh

ENV JAVA_HOME /app/jdk1.8.0_151
ENV PATH ${JAVA_HOME}/bin:$PATH
# 设置工作目录
WORKDIR /app
# 运行JAR包
#CMD ["java" , "-jar", "app.jar","&& crond start"]
CMD ["sh", "-c", "/usr/sbin/crond -n & java -jar app.jar"]
EXPOSE 8080

 

安装指定工具

基础镜像

FROM centos:7
#加速yum下载
RUN sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-Base.repo && \
    sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-Base.repo
#安装指定的工具
RUN yum -y install telnet iputils traceroute && \
    yum clean all

容器启动后不退出

 #tail -f /dev/null目的是为了不让执行完脚本容器退出


# 运行程序i
CMD ["sh", "-c", "/app/bin/run.sh run && tail -f /dev/null"]

设置支持中文

在DockerFile中添加

如果是GBK就使用如下


#设置支持中文
ENV LANG zh_CN.GBK
RUN localedef -i zh_CN -f GBK zh_CN.GBK

如果是utf8就使用如下

# 设置支持中文
ENV LANG zh_CN.UTF-8
RUN localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值