准备cestos镜像、tomcat、jdk

cestos是docker pull下来的

在/opt/下创建docker:mkdir -p /opt/docker

把tomcat和jdk解压到docker目录下,分别命名为tomcat和jdk

删除jdk文件夹下多余文件, 降低build的镜像大小

rm -rf /z/docker/jdk/*src.zip \
/z/docker/jdk/lib/missioncontrol \
/z/docker/jdk/lib/visualvm \
/z/docker/jdk/lib/*javafx* \
/z/docker/jdk/jre/lib/plugin.jar \
/z/docker/jdk/jre/lib/ext/jfxrt.jar \
/z/docker/jdk/jre/bin/javaws \
/z/docker/jdk/jre/lib/javaws.jar \
/z/docker/jdk/jre/lib/desktop \
/z/docker/jdk/jre/plugin \
/z/docker/jdk/jre/lib/deploy* \
/z/docker/jdk/jre/lib/*javafx* \
/z/docker/jdk/jre/lib/*jfx* \
/z/docker/jdk/jre/lib/amd64/libdecora_sse.so \
/z/docker/jdk/jre/lib/amd64/libprism_*.so \
/z/docker/jdk/jre/lib/amd64/libfxplugins.so \
/z/docker/jdk/jre/lib/amd64/libglass.so \
/z/docker/jdk/jre/lib/amd64/libgstreamer-lite.so \
/z/docker/jdk/jre/lib/amd64/libjavafx*.so \
/z/docker/jdk/jre/lib/amd64/libjfx*.so

创建Dockerfile文件

#使用docker cestOs镜像
FROM docker.io/centos #作者信息
MAINTAINER guuyoog <gy>
LABEL Description="This image is used to serve tomcat 8 whit jdk8" Version="1.0" #在镜像中创建目录
#把jdk和tomcat添加到里面
RUN mkdir -p /opt/jdk1..0_181
ADD jdk /opt/jdk1..0_181 RUN mkdir -p /opt/tomcat-8.5.
ADD tomcat /opt/tomcat-8.5. #添加环境变量
ENV JAVA_HOME /opt/jdk1..0_181
ENV CATALINA_HOME /opt/tomcat-8.5.
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin ENV JAVA_OPTS "$JAVA_OPTS -server -XX:+UseParallelOldGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tomcat-8.5.32/dump/dump.hprof -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/opt/tomcat-8.5.32/dump/heap_trace.txt -Duser.timezone=GMT+08"
#工作区域
WORKDIR /opt/tomcat-8.5. #暴露端口
EXPOSE #启动时运行tomcat
CMD ["catalina.sh", "run"]

开始构建docker镜像文件

docker build -t guuyoog/centos-jdk8-tomcat8:1.0 .
-t 设置tag名称, 命名规则registry/image:tag
. 表示使用当前目录下的Dockerfile文件

如果没有问题的话docker images能查看到新建的镜像

导出镜像 docker save -o jdk8-tomcat8.tar  <镜像ID>

导入镜像 docker load < jdk8-tomcat8.tar

docker images时可能会看不到REPOSITORY 和 tag,则用docker tag 639d56a4231a taomeng/jdk8-tomcat8:1.0赋值

创建容器

sudo docker run -it --name tomcat \
--net=host \
-p : \
-m 1024m \ #设置容器使用内存最大值;
--restart=always \ #重启机制
--privileged=true \ #使用该参数,container内的root拥有真正的root权限
-v /opt/tomcat/setenv.sh:/opt/tomcat-8.5./bin/setenv.sh \
-v /opt/tomcat/tomcat-users.xml:/opt/tomcat-8.5./conf/tomcat-users.xml \
-v /opt/tomcat/server.xml:/opt/tomcat-8.5./conf/server.xml \
-v /opt/tomcat/logs:/opt/tomcat-8.5./logs \
-v /opt/tomcat/output:/opt/tomcat-8.5./output \
-v /opt/tomcat/webapps:/opt/tomcat-8.5./webapps \
-v /opt/tomcat/dump:/opt/tomcat-8.5./dump \
-d taomeng/jdk8-tomcat8:1.0

docker update -m 2048m --memory-swap 2048m 修改容器内存

docker制作tomcat镜像的更多相关文章

  1. Docker | 制作tomcat镜像并部署项目

    本文讲解如何制作自己的tomcat镜像,并使用tomcat部署项目 原料准备: tomcat.jdk安装包,dockerfile文件 步骤 1.准备压缩包 jdk-8u301-linux-x64.ta ...

  2. Docker系列(24)- 实战:DockerFile制作tomcat镜像

    实战:DockerFile制作tomcat镜像 step-1 准备镜像文件 tomcat压缩包,jdk压缩包! step-2 编写dockerfile文件,官方命名Dockerfile,build会自 ...

  3. 基于Dockerfile制作tomcat镜像

    Docker 概述:   在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一种文件或脚本,我们把想执行的操 ...

  4. Dockerfile介绍、Docker制作jdk镜像

    Dockerfile介绍.Docker制作jdk镜像 目标 1.Dockerfile简介 2.Docker制作jdk镜像 Dockerfile简介 dockerfile 是一个文本格式的配置文件, 用 ...

  5. centos7使用docker制作tomcat本地镜像

    1.安装Docker 安装docker前请确认当前linux的内核版必须是3.10及以上 命令: uname  -r 1).yum install -y yum-utils device-mapper ...

  6. Docker安装Tomcat镜像并部署web项目

    一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. ...

  7. docker构建tomcat镜像

    下载centos镜像 # docker pull daocloud.io/centos:7 [root@localhost ~]# docker pull daocloud.io/centos: : ...

  8. 用Docker构建Tomcat镜像

    构建tomcat镜像 创建工作目录 [root@elk-node2 tomcat]# mkdir tomcat [root@elk-node2 tomcat]# cd tomcat [root@elk ...

  9. Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用

    目录 1 下载 Docker 镜像 2 部署Web项目 2.1 通过Dockerfile自定义项目镜像 2.2 启动自定义镜像, 生成一个容器 2.3 另一种启动方式: 交互式启动 3 (附) 向镜像 ...

随机推荐

  1. 史上最明白的 NULL、0、nullptr 区别分析(老师讲N篇都没讲明白的东东),今天终于明白了,如果和我一样以前不明白的可以好好的看看...

    C的NULL 在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: int *i = NULL; foo_t *f = NULL; 实际上在C语言中,NULL通常被定义为如下: #def ...

  2. Python-Django 路由控制器

    1 路由的基本使用: # url是个函数,有四个参数,第一个参数要传正则表达式,第二参数传函数内存地址,第三个参数传默认参数,第四个是路由的别名 url(r'^liuqingzheng/article ...

  3. ApowerMirror投屏(手机投屏电脑、电脑投屏到手机)

    使用步骤    1. 亲测 使用Apowersoft ApowerMirror v1.4.2.zip版本      2.Apowersoft ApowerMirror v1.4.2.zip 解压安装 ...

  4. 【自然语言处理】LDA

    飞机票 飞机票 步骤: 1. 离线求的模型 2. 用模型对新文本预测topic,取topic概率带到阈值(例如0.2)且topN个topic,例如doc1 :topic1:0.5, topic2:0. ...

  5. springboot配置Druid数据源

    springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...

  6. docker - 容器lxc

    容器:是在用户空间进行隔离的组件叫做容器 常用的容器有lxc ----libcontainer---runc 需要隔离的资源有: Rootfs:每个容器对应的一个目录做为根目录 User: Hostn ...

  7. 查看CentOS版本信息

    今天小编将给大家详细讲解查看CentOS版本信息的命令. (一) 查看已经安装的CentOS版本信息 1.cat /etc/issue 查看版本 cat  缩写concatenate  cat命令可以 ...

  8. 咸鱼入门到放弃7--jsp<二>jsp常用标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  9. HTTP简述

    参考链接: https://www.cnblogs.com/XJJD/p/7674007.html HTTP的请求类型:GET.POST的区别? 一般在浏览器中输入网址访问资源都是通过GET方式:在F ...

  10. tap穿透之zepto的bug

    一.什么是zepto tap事件穿透?tap事件穿透就是,页面和弹框上都有绑定点击事件,最上层的弹框绑定了tap事件,下层的页面绑定了click事件,在执行完上层事件后会紧接着触发下层事件,进而出现事 ...