Docker容器上用DockerFile部署多个tomcat服务的步骤

1、

[admin@JD ~]$ cd opt

#进入根目录下的opt 里

2、

[admin@JD opt]$ mkdir web

#创建Web 文件夹

3、

[admin@JD web]$ cd web/

#进入web文件夹

4、

[admin@JD web]$ touch Dockerfile

#创建一个Dockerfile文件夹 名字不能错必须是这个名字否者检测不到

5、

利用三方工具将 tomcat 和 jdk的 上传到Web文件夹

6、

[admin@JD web]$ vim Dockerfile

#编辑文件并写入内容如下

FROM centos
MAINTAINER wuzhao
ADD ./apache-tomcat-7.0.88.tar.gz /root
ADD ./jdk-7u80-linux-x64.tar.gz /root
ENV JAVA_HOME /root/jdk1.7.0_80
ENV PATH $JAVA_HOME/bin:$PATH
ENTRYPOINT /root/apache-tomcat-7.0.88/bin/startup.sh && tail -F /root/apache-tomcat-7.0.88/logs/catalina.out

资源下载

FROM命令,用法,FROM <image>:<tag>,FROM命令告诉docker我们构建的镜像是以哪个(发行版)镜像为基础的

ENV命令,用法,ENV <key> <value>,ENV命令主要用于设置容器运行时的环境变量

ADD命令,用法,ADD <src> <dest>,ADD主要用于将宿主机中的文件添加到镜像中

7、

[admin@JD web]$ docker build -t test/centos:tomcat-centos --rm=true .

#-t 指定资源名称自定义

# --rm=rtue 减少非指定文件生成

# 稍后自动生成完成 下载一些文件 可能会出现请求超时的问题

8、

[admin@JD web]$ docker run -d -p 9090:8080 fe8d

#启动 tomcat 并将8080端口映射到 9090 fe8d 资源ID的前四位

9、

[admin@JD web]$ docker run -d -p 9091:8080 fe8d

# 启动第二个tomcat 端口不要冲突 !!

10、打开浏览器 服务器ip+端口号 你就能看见那只猫了 #docker会自动添加防火墙规则 我用的是iptables 防火墙

简单构建dockerflie 文件完成!

补充知识:docker内构建开源对象存储(minio)

前段时间做了一个项目,客户无法将数据拿到外网,只能通过在内网构建OSS对象存储,我们本身依赖极道的平台来做业务,他们采用了s3的标准,就采用minio来构建开源的OSS对象存储空间,其实很简单

docker pull minio/minio 从仓库拉镜像

docker run -p 9000:9000 --name minio1
-e “MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE”
-e “MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY”
-v /mnt/data:/data
-v /mnt/config:/root/.minio
minio/minio server /data

启动

下面说说问什么选择minio

(1) 需要C++ 接口的支持,既然采用s3标准,那亚马逊的aws就可以用

(2) 这是一种轻量级、高度并发的解决方案

(3) 和 FastDFS 或者 hdfs 对比的好处是可以为前段展示预留一定的可行性

稍后贴出C++的封装和java的封装

以上这篇Docker容器上用DockerFile部署多个tomcat服务的步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法

    前言 在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个java tomcat运行环境,虽然也初见成效,但很累人.如果依靠依靠脚本构建一个Tomcat容器实例,一个命令可以搞定,何乐而不为呢.好在Docker提供了Dockerfile作为构建Docker镜像脚本,避免人们一行一行的输入,真是善莫大焉.Dockerfile脚本可以做到随时维护修改,即可以分享,更有利于在模板化,更不用说传输了,好处那是一大箩筐! 最终目的:打造一个支持SSH终端登录.Tomcat7自动运行的Docke

  • docker在已有的tomcat镜像上打新的镜像的Dockerfile编写说明介绍

    如果需要将某个文件替换或者添加到旧的tomcatimage中,形成一个新的image,需要在dockerfile中做一下操作 FROM old_tomcat #这里可以使用docker官方的镜像,以下说明都是在此基础上的实例 MAINTAINER ****************** #如果需要替换原有的配置文件或者脚本 ADD web.xml /usr/local/tomcat/webapps/manager/WEB-INF/ ADD tomcat-users.xml /usr/local/t

  • Docker-利用dockerfile来搭建tomcat服务的方法

    在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让docker读取并分析.执行,那么重复构建.更新将变得很方便,所以Dockerfile就此诞生了. 常用参数: FROM命令.用法,FROM <image>:<tag>.FROM命令告诉docker我们构建的镜像是以哪个(发行版)镜像为基础的 RUN命令.用法RUN <co

  • 如何基于Dockerfile构建tomcat镜像

    dockerfile 是用来构建docker镜像的文件!命令参数脚本! 构建步骤: 编写一个dockerfile 文件 docker build 构建成一个镜像 docker run 运行镜像 docker push 发布镜像(DockerHub.阿里云镜像仓库) # 以contes为例 查看 dockerhub 上 contes 的 dockerfile FROM scratch ADD centos-7-x86_64-docker.tar.xz / LABEL \ org.label-sch

  • Dockerfile制作官方Tomcat镜像及镜像使用详解

    这两天学习了Dockerfile感觉这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记. 官方Tomcat镜像 地址:https://hub.docker.com/_/tomcat/ 镜像的Full Description中,我们可以得到许多信息,这里简单介绍几个: 1.Supported tags and respective Dockerfile links 支持的标签,以及对应的Dockerfile链接.一个Dockerfile可以对应多个标签,我们将以8.5.16-jre8版本的

  • 基于alpine用dockerfile创建的tomcat镜像的实现

    1.下载alpine镜像 [root@docker43 ~]# docker pull alpine Using default tag: latest Trying to pull repository docker.io/library/alpine ... latest: Pulling from docker.io/library/alpine 4fe2ade4980c: Pull complete Digest: sha256:621c2f39f8133acb8e64023a94dbd

  • Docker容器上用DockerFile部署多个tomcat服务的步骤

    1. [admin@JD ~]$ cd opt #进入根目录下的opt 里 2. [admin@JD opt]$ mkdir web #创建Web 文件夹 3. [admin@JD web]$ cd web/ #进入web文件夹 4. [admin@JD web]$ touch Dockerfile #创建一个Dockerfile文件夹 名字不能错必须是这个名字否者检测不到 5. 利用三方工具将 tomcat 和 jdk的 上传到Web文件夹 6. [admin@JD web]$ vim Doc

  • docker 容器上编译 go 程序提示找不到文件问题

    dockerfile [root@SZB-L0010091 zxg]# cat Dockerfile FROM scratch COPY webdemo / EXPOSE 9999 CMD ["/webdemo"] docker run 报错信息: [root@zxg]# docker run --rm -it -p 9999:9999 web:1.0 panic: standard_init_linux.go:178: exec user process caused "n

  • Docker容器harbor私有仓库部署和管理

    目录 前言 一.Harbor概述 二.Harbor的特性 三.Harbor的构成 四.Harbor私有仓库搭建 (1)安装docker-compose (2)安装harbor (3)新建项目 (4)镜像推送 (5)从私有仓库下载镜像 (6)Harbor管理 前言 之前我们搭建了本地私有仓库,但是本地仓库的管理和使用比较麻烦,个原生的私有仓库并不好用,所以我们采用harbor私有仓库,也叫私服,更加人性化. 一.Harbor概述 Harbor是VMware公司开源的企业级Docker Regist

  • Docker容器使用宿主机上的mongod/redis等服务详解

    我们在本地的开发中为了保证大家都开发环境一直,PHP 的扩展,版本保持一致, 我们使用了 docker .但是由于redis/mongodb 在宿主机上, 所以通过 127.0.0.1 是连接不上的 前提说明 这个是在 docker 运行容器时使用的桥接模式(默认) 时才会发生以上问题.如果使用 host 模式就没有. 所以,我们就是要把是 docker 的网络模式设置为 host 模式. 具体实现 ~ docker run --network host php56 补充说明 使用了 host

  • docker如何在mac-m1芯片部署并启用tomcat

    目录 手把手教你使用docker在mac-m1芯片部署并启用tomcat 1,下载docker并安装 2,配置docker的阿里云加速器(也可以配置其他加速器) 3,下载tomcat镜像 4,启用docker的tomcat容器 5,启动后访问tomcat 6,接下在就可以在本地放项目包,访问了 本文永久更新地址: 手把手教你使用docker在mac-m1芯片部署并启用tomcat 1,下载docker并安装 登陆官网下载dockr,选择mi芯片的docker下载 下载地址:https://www

  • Docker容器使用jenkins部署web项目(总结)

    (1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat.   新建maven项目,添加findbugs plugin. 使用docker启动jenkins,gogs,Tomcat的命令gogs : 复制代码 代码如下: docker run -itd -p 10022:22 -p 10080:3000 --restart=always --privileged=true --name=gogs -v /var/gogs:/data gogs/gogs je

  • docker资源限制和compose部署详解

    目录 一.私有仓库建立 二.Cgroup 资源配置方法 三.CPU使用率控制 使用 stress 工具测试 CPU 和内存 四. CPU 周期限制 五. CPU Core 控制 六. CPU 配额控制参数的混合使用 七. 内存限额 八.Block IO 的限制 九. bps 和 iops 的限制 十. 构建镜像(docker build)时指定资源限制 十一. compose部署 十二. consul部署 总结 一.私有仓库建立 docker pull registry 在docker 引擎终端

  • Docker容器通过独立IP暴露给局域网的方法

    Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBox用起来方便,部署起来也非常容易.官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用.一般过程是: 1.Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器 2.宿主机可以打开防火墙让局域网其他设备通过访问宿主机的端口进而访问docker的端口 这里以CDNS为例,CDNS是一个用于避免DNS污染的程序,通过CDNS可以把你的计算机变成一个抗污染的DNS

  • 在宿主机上执行docker容器内部的shell或程序方式

    为了避免反复进入docker容器内部操作,可以将一系列容器内部的指令由宿主机来操作完成. 在宿主机(作者主机为windows7)上执行centos容器(name为centos-1)中/usr目录下的"printer"可执行程序,该程序输出为打印"123". C:\Users\Administrator>docker exec -it centos-1 /bin/bash -c "cd usr && ./printer" 12

  • docker容器中无法获取宿主机hostname的解决方案

    在nodejs环境中测试通过,其它语言同理,只需要使用获取环境变量的方法即可. 思路: docker容器和宿主机环境是隔离的,但是可以在启动docker容器时将宿主机的主机名以环境变量的形式传入,代码在容器中获取该值即可. 操作: docker run -d -p 3000:3000 --name myTest -e HOST_Q=$(hostname) mytest:v1 # 使用-e 参数传入环境变量,值为主机名 如果使用yml文件启动: version: '3' services: mys

随机推荐