准备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. Visual studio 配置

    解决方案 一个解决方案的文件结构: .sln        项目目录         debug   release 其中,debug与release放置最终生成的dll或exe,项目目录下包含 头文 ...

  2. SVN 版本控制安装

    客户端 一路点击next即可 注意事项: 这个一定要选,否则后面使用会出现问题. 选择下拉菜单的第一项

  3. Redis数据结构之intset(2)

    本文及后续文章,Redis版本均是v3.2.8 上文我们说到intset整型集合的数据结构定义即元素的添加和查询操作,本文我们来看下Redis暴露给外面使用的Set集合,先通过一些基本的命令回顾下se ...

  4. windows下创建MySQL定时备份与删除脚本

    今天在windows服务器上面写了一个MySQL定时任务,备份呢与删除 rem *****************************Code start********************* ...

  5. flume进阶

    上一张初识里面谢了一些flume入门的内容,其实在真正工作环境里面这种情况使用的是很少的,大部分情况,我们可能需要从多台设备的日志里面汇总收集数据并存储到HDFS上,以便于后期对数据进行处理,真实的情 ...

  6. C - 树的统计Count - 树链剖分

    思路 :树剖模板,线段树维护即可. #include<bits/stdc++.h> using namespace std; #define MID int m = (l+r)/2 #de ...

  7. 树莓派开启samba服务

    安装samba 和 samba-common-bin 启动树莓派以后,在命令行输入: sudo apt-get update sudo apt-get install samba samba-comm ...

  8. webpack配置antd的按需加载

    安装babel-plugin-import插件.下面方法二选一,都可以实现antd的按需加载. 一.配置webpack.config.js文件 { test: /.jsx?$/, exclude: / ...

  9. PBRT笔记(3)——KD树

    茎节点与叶子节点 茎节点与叶子节点皆适用KdAccelNode来表示 注意:这里使用了匿名union union有个特性:内部类型共用一段内存,且大小为内部最大类型的大小. struct KdAcce ...

  10. 安装Percona版本的MySQL主从复制

    准备两台虚拟机,按顺序执行1.1节的公共部分 1.1 首先安装 cmake # yum –y install cmake     //也需要安装gcc-c++,openssl openssl-deve ...