准备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. nmap简介和使用

    文章链接:https://blog.csdn.net/m1585761297/article/details/80015726 参考链接:https://www.cnblogs.com/nmap/p/ ...

  2. 使用Pycharm创建一个Django项目

    在使用python写脚本一段时间后,想尝试使用Django来编写一个python项目,现做以下记录备忘: 1.创建项目 如果本地没有安装与所选python版本对应Django版本,pycharm会自动 ...

  3. 【python】随机数用法

    全文拷贝自:Python随机数用法 random.seed(int) 给随机数对象一个种子值,用于产生随机序列. 对于同一个种子值的输入,之后产生的随机数序列也一样. 通常是把时间秒数等变化值作为种子 ...

  4. 关于数据库中日期格式(yy-MM-dd HH-mm-ss)通过json传到后台变成毫秒数的问题

    在日期封装对象前面加一个json标签即可防止自动转换 如 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date mod ...

  5. mysql查看索引与锁

    http://www.cnblogs.com/cocos/archive/2011/05/06/2039428.html Mysql乐观锁与悲观锁 http://www.cnblogs.com/esi ...

  6. 如何在cocos中为节点添加监听事件

    一般在监听键盘事件时,可是采用以下方式来监听键盘事件: 以及记得定义取消监听的函数(这个摧毁函数会自己调用吗?): 同时这里还有一种传统的监听方式: 但是cocos官方的文档建议我们不要使用这种方式, ...

  7. python之cookie, cookiejar 模拟登录绕过验证

    0.思路 如果懒得模拟登录,或者模拟登录过于复杂(多步交互或复杂验证码)则人工登录后手动复制cookie(或者代码读取浏览器cookie),缺点是容易过期. 如果登录是简单的提交表单,代码第一步模拟登 ...

  8. numpy安装-【老鱼学numpy】

    要玩numpy,就得要安装numpy. 安装python 3.6.3 64位 首先需要安装python,安装python的具体方法这里就不细讲了. 可以到官网上下载相应的python版本就可以了,目前 ...

  9. SQL Server 中执行Shell脚本计算本地文件的内容大小

    SQL Server 数据库中除了能执行基本的SQL语句外,也可以执行Shell脚本.默认安装后,SQL中的Shell脚本的功能是关闭的,需要手动打开, 执行以下脚本即可打开该功能. -- 允许配置高 ...

  10. ECMAScript 6 字符串的扩展

    1.字符的Unicode表示法 ① JavaScript允许采用\uxxxx的形式来表示一个字符,其中xxxx表示字符的Unicode码点. 但是,这种表示方法有一个局限性,它的码点只能在\u0000 ...