美文网首页
docker制作含jar、war的镜像

docker制作含jar、war的镜像

作者: 夏日橘子冰 | 来源:发表于2018-06-13 16:04 被阅读0次

【docker制作含jar包的镜像并启动】

  • 制作
mkdir -p /docker/serviceImage/dataServiceImage/   #创建含dockerfile和jar包的目录
rm -f /docker/serviceImage/dataServiceImage/data.service.jar # 删除原有的jar
cd /docker/serviceImage/dataServiceImage/ #进入创建的目录下
cp xxx/xxx/xxx/data.service.jar .  #将svn中的jar copy到当前目录下(即刚才创建的目录下)
source /etc/profile
docker build -t data.service:latest .              # build镜像
docker tag data.service:latest 192.168.28.30:5000/data.service:latest 
#给镜像改标签,通常用私服地址
docker login -u -admin -p admin123 192.168.28.30:500#登录到私服
docker push 192.168.28.30:5000/data.service:latest #推送镜像
Dockerfile
FROM java:8    #第一条指令,指定基础镜像
MAINTAINER kitty "kitty@126.com"     # 作者名和email
WORKDIR /opt/latech/data.service/ #指定容器的一个目录, 容器启动时执行的命令会在该目录下执行
ADD latech.data.service.jar /opt/latech/data.service/   #将jar加入到容器中
RUN echo "Asia/Shanghai" > /etc/timezone    
ENTRYPOINT ["java","-jar","-Duser.timezone=GMT+08","latech.data.service.jar"]  #容器启动时要执行的命令

注意:
1)Dockerfile和jar包要在同一级,并在此级上执行打包命令
2)jar包不含xml,properties文件
3)同级放xml,properties文件,启动时挂载到容器

  • 启动
docker login -u -admin -p admin123 192.168.28.30:5000  #登录到私服
docker pull 192.168.28.30:5000/data.service:latest  #拉取镜像
docker run -it -d --restart always --name dataService -p 18080:18080 \
-v /etc/localtime:/etc/localtime \
-v xxx/xxx/dubbo.properties:/opt/latech/data.service/dubbo.properties
-v xxx/xxx/xxx/jdbc.properties:/opt/latech/data.service/jdbc.properties
-v xxx/xxx/xxx/logback.xml:/opt/latech/data.service/logback.xml
-v xx/xx/xxx/logs:/home/latech/data.service/ \ #后者是logback.xml里配置的日志地址
192.168.28.30:5000/data.service:latest

注意:此处有一个对容器时间和宿主机时间不一致的处理
build镜像是有RUN echo "Asia/Shanghai" > /etc/timezone
run时有-v /etc/localtime:/etc/localtime

【docker制作含war包的镜像并启动】

  • 制作(参考上面制作jar包的镜像)

Dockfile

FROM tomcat:8.5
MAINTAINER kitty "qxzhihi@126.com"
WORKDIR /usr/local/tomcat/webapps/
RUN rm -rf /usr/local/tomcat/webapps/*
ADD latechMonitor.war /usr/local/tomcat/webapps/ROOT.war
RUN unzip /usr/local/tomcat/webapps/ROOT.war -d /usr/local/tomcat/webapps/ROOT      #先解压,以便挂载文件
RUN echo "Asia/Shanghai" > /etc/timezone
  • 启动
docker login -u -admin -p admin123 192.168.28.30:5000  #登录到私服
docker pull 192.168.28.30:5000/latechWeb:latest #拉取镜像
docker run -it -d --restart always --name $NEW_JOB_NAME  \
-v /etc/localtime:/etc/localtime \
-v /xxx/xxx/xxx/dubbo.properties:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/dubbo.properties \
-v /xxx/xxx/xxx/redis.properties:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/redis.properties \
-v /xxx/xx/xxx/logs:/usr/local/tomcat/webapps/logs/ \
-p 9734:8080 192.168.28.30:5000/latechWeb:latest

注意:
关于容器间不能访问的问题,视docker版本不同
有的用-p直接能代理到宿主机端口,其他容器可以访问
当访问不到时,启动容器使用--net=host可解决此问题

相关文章

网友评论

      本文标题:docker制作含jar、war的镜像

      本文链接:https://www.haomeiwen.com/subject/fyqjeftx.html