下载centos镜像

# docker pull daocloud.io/centos:7

[root@localhost ~]# docker pull daocloud.io/centos:
: Pulling from centos
a02a4930cb5d: Pull complete
Digest: sha256:365fc7f33107869dfcf2b3ba220ce0aa42e16d3f8e8b3c21d72af1ee622f0cf0
Status: Downloaded newer image for daocloud.io/centos:
[root@localhost ~]#
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/centos 1e1148e4cc2c weeks ago 202MB

创建一个镜像

# docker tag daocloud.io/centos:7 centos

[root@localhost ~]# docker tag daocloud.io/centos: centos
[root@localhost ~]#
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/centos 1e1148e4cc2c weeks ago 202MB
centos latest 1e1148e4cc2c weeks ago 202MB

删除源镜像

# docker rmi daocloud.io/centos:7

[root@localhost ~]# docker rmi daocloud.io/centos:
Untagged: daocloud.io/centos:
Untagged: daocloud.io/centos@sha256:365fc7f33107869dfcf2b3ba220ce0aa42e16d3f8e8b3c21d72af1ee622f0cf0
[root@localhost ~]#
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 1e1148e4cc2c weeks ago 202MB
[root@localhost ~]#

创建一个/root/software/目录,并把安装包放在该目录下

[root@localhost ~]# mkdir software
[root@localhost ~]# ls
anaconda-ks.cfg jdk-7u67-linux-x64.tar.gz software
apache-tomcat-7.0..tar.gz kjxy.war
[root@localhost ~]#
[root@localhost ~]# cp jdk-7u67-linux-x64.tar.gz apache-tomcat-7.0..tar.gz software/
[root@localhost ~]#
[root@localhost ~]# cd software/
[root@localhost software]#
[root@localhost software]# ls
apache-tomcat-7.0..tar.gz jdk-7u67-linux-x64.tar.gz

启动容器

# docker run -it -v /root/software/:/mnt/software/ centos /bin/bash

[root@localhost ~]# docker run -it -v /root/software/:/mnt/software/ centos /bin/bash
[root@d8222810d886 /]#
[root@d8222810d886 /]# cd /mnt/software/
[root@d8222810d886 software]#
[root@d8222810d886 software]# ls
apache-tomcat-7.0.55.tar.gz jdk-7u67-linux-x64.tar.gz

为了搭建 Java Web 运行环境,需要安装 JDK 与 Tomcat,下面的过程均在容器内部进行。

安装JDK

创建jdk存储目录

# mkdir /usr/jdk64/

解压jdk到存储目录

# tar -zxf /mnt/software/jdk-7u67-linux-x64.tar.gz -C /usr/jdk64/

操作过程如下:

[root@d8222810d886 ~]# mkdir /usr/jdk64/
[root@d8222810d886 ~]#
[root@d8222810d886 ~]# tar -zxf /mnt/software/jdk-7u67-linux-x64.tar.gz -C /usr/jdk64/
[root@d8222810d886 ~]#
[root@d8222810d886 ~]# ls /usr/jdk64/
jdk1..0_67

安装tomcat

解压tomcat到存储目录

# tar -zxf /mnt/software/apache-tomcat-7.0.55.tar.gz -C /home/

[root@d8222810d886 ~]# tar -zxf /mnt/software/apache-tomcat-7.0..tar.gz -C /home/
[root@d8222810d886 ~]#
[root@d8222810d886 ~]# ls /home/
apache-tomcat-7.0.55
[root@d8222810d886~]# mv /home/apache-tomcat-7.0.55/ /home/tomcat7
[root@d8222810d886~]# ls /home/
tomcat7

编写运行脚本

编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat。

# vi /root/run.sh

[root@d8222810d886 ~]# vi run.sh
[root@d8222810d886 ~]#
[root@d8222810d886 ~]# cat run.sh
#!/bin/bash
export JAVA_HOME=/usr/jdk64/jdk1..0_67
export PATH=$JAVA_HOME/bin:$PATH
sh /home/tomcat/bin/catalina.sh run

为运行脚本添加执行权限

# chmod 777 run.sh

[root@d8222810d886 ~]# chmod  run.sh
[root@d8222810d886 ~]#
[root@d8222810d886 ~]# ll
total
-rw-------. root root Dec : anaconda-ks.cfg
-rwxrwxrwx. root root Jan : run.sh

给tomcat运行脚本添加权限

[root@d8222810d886 ~]# chmod +x /home/tomcat/bin/*.sh
[root@d8222810d886 ~]#
[root@d8222810d886 ~]# ll /home/apache-tomcat-7.0.55/bin/*.sh
-rwxr-xr-x. 1 root root 20779 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/catalina.sh
-rwxr-xr-x. 1 root root 1922 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/configtest.sh
-rwxr-xr-x. 1 root root 7888 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/daemon.sh
-rwxr-xr-x. 1 root root 1965 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/digest.sh
-rwxr-xr-x. 1 root root 3459 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/setclasspath.sh
-rwxr-xr-x. 1 root root 1902 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/shutdown.sh
-rwxr-xr-x. 1 root root 1904 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/startup.sh
-rwxr-xr-x. 1 root root 5024 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/tool-wrapper.sh
-rwxr-xr-x. 1 root root 1908 Jul 18 2014 /home/apache-tomcat-7.0.55/bin/version.sh

退出容器

[root@d8222810d886 ~]# exit
exit
[root@localhost ~]#
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8222810d886 centos "/bin/bash" minutes ago Exited () seconds ago zealous_galileo

创建tomcat镜像

根据某个“容器 ID”来创建一个新的“镜像”

# docker commit d8222810d886 djltomcat:latest

[root@localhost ~]# docker commit d8222810d886 djltomcat:latest
sha256:559211e0b347204543772eddb94c5b73810a8d2746fb30d9a24c99e33b89b3e9
[root@localhost ~]#
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
djltomcat latest 559211e0b347 seconds ago 508MB
centos latest 1e1148e4cc2c weeks ago 202MB

启动tomcat容器

首先,新建/root/webapps/目录,把war包拷贝到该目录

# mkdir webapps

[root@localhost ~]# ls
anaconda-ks.cfg apache-tomcat-7.0..tar.gz jdk-7u67-linux-x64.tar.gz kjxy.war software
[root@localhost ~]#
[root@localhost ~]# mkdir webapps
[root@localhost ~]#
[root@localhost ~]# cp kjxy.war webapps/
[root@localhost ~]#
[root@localhost ~]# ls webapps/
kjxy.war

编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat

# docker run -d -p 58080:8080 -v /root/webapps/:/home/tomcat7/webapps/ --name test djltomcat:latest /root/run.sh

[root@localhost ~]# docker run -d -p : -v /root/webapps/:/home/tomcat7/webapps/ --name test djltomcat:latest /root/run.sh
87f68c345d3bd42bd4a87de96430e7dfa7f047688b66f0ea52d1e1778a4a842b
[root@localhost ~]#
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
87f68c345d3b djltomcat:latest "/root/run.sh" seconds ago Up seconds 0.0.0.0:->/tcp test
[root@localhost ~]#
[root@localhost ~]# cd webapps
[root@localhost webapps]#
[root@localhost webapps]# ls
kjxy kjxy.war

在浏览器中,输入宿主IP和端口号,即可访问 Tomcat:

参考博客:

使用Docker搭建Tomcat运行环境

https://www.cnblogs.com/areyouready/p/8949991.html

end

docker构建tomcat镜像的更多相关文章

  1. 用Docker构建Tomcat镜像

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

  2. docker构建自定义镜像

    docker构建自定义镜像 要构建一个镜像,第一步准备所需要的文件,第二步编写Dockerfile文件,比如我现在构建一个java web镜像 第一步:准备java web工程的war包文件(这里假设 ...

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

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

  4. dockerfile构建Tomcat镜像

    dockerfile构建Tomcat镜像 一.镜像分层概念 二.制作tomcat镜像 2.1.创建分层目录 [root@node2 ~]# mkdir /app/{web/{nginx,tomcat, ...

  5. docker制作tomcat镜像

    准备cestos镜像.tomcat.jdk cestos是docker pull下来的 在/opt/下创建docker:mkdir -p /opt/docker 把tomcat和jdk解压到docke ...

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

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

  7. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

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

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

  9. 用Docker构建MySQL镜像

    构建MySQL镜像 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过D ...

随机推荐

  1. Python学习手册

    基础 概念 源码编译为字节码,解释器解释字节码 CPython是python标准实现方式,Jython将源码编译为java字节码,运行在JVM上 优点:快速开发,灵活的核心数据类型,优美的缩进语法,垃 ...

  2. hibernate(一)

      hibernate介绍 jdbc缺点 1代码结构防繁琐,面向纯sql语句的编程,对于查询而言只要查询数据库的一张表,不需有如下编码 2有connection缓存,没有数据缓存 3.事务自动开启,有 ...

  3. golang-build-error

    工程中同时有两个main文件,编译的时候提示: go build proxy/proxy.go pb/anti_spam.pb.go::: cannot find package "_/Us ...

  4. MySQL Lock--MySQL加锁规则

    ===================================================================== 淘宝林晓斌总结 在可重复读事务隔离级别下,加锁规则如下: 原 ...

  5. RCC 和 RTC

    RCC是STM32的时钟控制器,可开启或关闭各总线的时钟,在使用各外设功能必须先开启其对应的时钟,没有这个时钟内部的各器件就不能运行.RTC是STM32内部集成的一个简单的时钟(计时用),如果不用就关 ...

  6. jmeter ---处理Cookie与Session

    有些网站保存信息是使用Cookie,有些则是使用Session.对于这两种方式,JMeter都给予一定的支持. 1.Cookie 添加方式:线程组-配置元件-HTTP Cookie 管理器,如下图: ...

  7. 配置中心Server端

    为什么需要统一配置中心 1.不方便维护.一个功能被多个人开发,如果其中一个人修改了配置文件,另外一个人测试之前的功能,准备使用之前的配置. 2.配置内容安全与权限.线上的配置是不会对开发公开,特别是数 ...

  8. Go并发控制--context的使用

    并发控制 Cancel Example 通过使用WithCancel可以取消一个或多个goroutine的执行,以实现对并发的控制. package main import ( "conte ...

  9. Linux下nohup日志输出过大问题解决方案

    转载自:http://blog.csdn.net/shawnhu007/article/details/50971084 最近在一hadoop测试集群运行一个spark streaming程序,然后使 ...

  10. CodeReview常见代码问题

    路线图 常见代码问题空值未捕获潜在的异常低性能影响范围过大单测问题与原有业务逻辑不兼容缺乏必要日志错误码不符合规范参数检测缺乏或不足引用错误细节错误多重条件文不符实跨语言或跨系统交互可维护性问题硬编码 ...