在百度上试很多文章都不行,只有这篇可以。

宿主机为:centos64位

//安装docker

1:yum install docker

//启动docker

2:systemctl start  docker.service

3:新建web目录

mkdir test/web

4:上传tomcat和jdk到该目录(Web)下。

5:配置Dockerfile :vim Dockerfile,然后复制下面的代码到Dockerfile中,保存。记得相应修改tomcat和jdk名

#pull down centos image
FROM centos
MAINTAINER test@test.com
#copy jdk and tomcat into image
ADD ./apache-tomcat-7.0.70.tar.gz /root
ADD ./jdk-7u80-linux-x64.tar.gz /root
#set environment variable
ENV JAVA_HOME /root/jdk1.7.0_80
ENV PATH $JAVA_HOME/bin:$PATH
#define entry point which will be run first when the container starts up
ENTRYPOINT /root/apache-tomcat-7.0.70/bin/startup.sh && tail -F /root/apache-tomcat-7.0.70/logs/catalina.out

 6构建镜像

[root@localhost web]# docker build -t keven/centos:tomcat-centos --rm=true .
Sending build context to Docker daemon 507.1 MB
Step 1 : FROM centos
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
785fe1d06b2d: Pull complete
Digest: sha256:be5b4a93f116a57ab3fd454ada72421eac892a3a4925627ac9a44f65fcd69cf8
---> 98d35105a391
Step 2 : MAINTAINER 27381011@qq.com
---> Running in 6c49ddc87de9
---> 717ea8232a68
Removing intermediate container 6c49ddc87de9
Step 3 : ADD ./apache-tomcat-8.5.11.tar.gz /root
---> 79dee4e0968b
Removing intermediate container b7fd20fb27d4
Step 4 : ADD ./jdk-8u11-linux-x64.tar.gz /root
---> f9e00a11709f
Removing intermediate container 3e1d1cd9705f
Step 5 : ENV JAVA_HOME /root/jdk1.8.0_11
---> Running in b2296ac1b856
---> 67ea9916ce46
Removing intermediate container b2296ac1b856
Step 6 : ENV PATH $JAVA_HOME/bin:$PATH
---> Running in 904ef55db8dc
---> a32596709d8e
Removing intermediate container 904ef55db8dc
Step 7 : ENTRYPOINT /root/apache-tomcat-8.5.11/bin/startup.sh && tail -F /root/apache-tomcat-8.5.11/logs/catalina.out
---> Running in 959ccd7993b0
---> 41ab74750331
Removing intermediate container 959ccd7993b0
Successfully built 41ab74750331

7查看新产生的镜像

[root@localhost web]# docker images keven/centos
REPOSITORY TAG IMAGE ID CREATED SIZE
keven/centos tomcat-centos 41ab74750331 5 minutes ago 529.6 MB

8运行镜像

docker run -d -p 8090:8080 5207

  

-p指定主机80端口与容器8080端口进行绑定

-d 指定容器运行后与当前tty分离,后台运行

5207是镜像的ID前4位。

通过  http://宿主机IP:8090,即可看见我们熟悉的tomcat首页了。

 

使用Dockerfile docker tomcat部署的更多相关文章

  1. Docker Tomcat部署

    1.下载tomcat镜像 docker pull tomcat 2.上传项目 /etc/tomcat/webapps/ 3.启动tomcat容器 docker run -d --name tomcat ...

  2. 使用docker+tomcat部署jenkins

  3. docker快速部署本地项目到服务器(tomcat8+mysql8)

    目标是:将本地运行的spring项目,部署到服务器上 为什么使用docker? 环境隔离 服务器上,各种环境交杂,使用docker,能清楚的把各个项目进行隔离,不单维护的人员方便,也会省去很多维护这些 ...

  4. docker 实战---部署tomcat\weblogic集群 (二)

    安装tomcat镜像 准备好须要的jdk tomcat等软件放到home文件夹以下 启动一个虚拟机 docker run -t -i -v /home:/opt/data  --name mk_tom ...

  5. Docker容器Tomcat部署war包

    在docker容器中使用tomcat部署war包主要包括四个步骤,创建tomcat容器.上传war包到容器.重启容器.访问应用. 1.创建tomcat容器 使用docker run  -d --nam ...

  6. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  7. 如何使用Dockerfile构建Tomcat镜像并部署war

    我们都知道Docker构建一个镜像有两种方式: 使用`docker commit`命令 使用`Dockerfile`文件和`docker build`命令 那么这两种方式有何区别呢? 相同点:底层实现 ...

  8. Docker容器部署tomcat出现中文乱码

    docker 容器部署tomcat后,日志文件中出现中文乱码,很多问号,中文的文件夹也是问好.先看看容器的locale: [root@docker1 ~]# docker exec -it 41de9 ...

  9. 如果在docker中部署tomcat,并且部署java应用程序

    1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创 ...

随机推荐

  1. LeetCode第136题:只出现一次的数字

    问题描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...

  2. 数组最后一个元素的 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁

    数组最后一个元素$arr  = array( 1 ,  2 ,  3 ,  4 );foreach ( $arr  as & $value ) {     $value  =  $value  ...

  3. 教学ppt设计与制作

    分三部分陈述,分别是元素呈现/版面设计/导航设计/. 1 元素呈现 文本 (1)字符表现策略 少用宋体 多用黑体,微软雅黑等 少用艺术字 (2)段落表现策略 条目化 一行一条 用符号简化文字描述 按有 ...

  4. TigerVNC编译安装

    TigerVNC official site:http://www.linuxfromscratch.org/blfs/view/svn/xsoft/tigervnc.html TigerVNC版本: ...

  5. git commit失败

    1.使用命令  git rm test.txt 删除版本库中文件, 下一步:git commit 提交 出现如图: 这是因为没有同时提交信息,即:git commit -m "这里是信息&q ...

  6. 弹出窗口Session丢失、防止表单重复提交问题

    一.弹出窗口Session丢失问题 弹出窗口Session丢失使用window.showModalDialog进行信息的提示,相当方便,也容易控制外观和布局.但是存在一个严重的问题,就是Session ...

  7. Angular2使用ng2-file-upload上传文件

    Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng2-uploader.ng2-uploader是一个轻便的上传文件的支持库,功能较弱,而ng2-f ...

  8. v$sqlarea,v$sql,v$sqltext这三个视图提供的sql语句有什么区别?

    v$sqltext存储的是完整的SQL,SQL被分割 SQL> desc v$sqltextName                                      Null?    ...

  9. CompletionService详解

    public interface CompletionService<V> { Future<V> submit(Callable<V> task); Future ...

  10. Nexus 相关

    https://help.sonatype.com/repomanager3/download https://www.jianshu.com/p/5fc8fb14d25c