下载centos镜像

# docker pull daocloud.io/centos:7

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

创建一个镜像

# docker tag daocloud.io/centos:7 centos

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

删除源镜像

# docker rmi daocloud.io/centos:7

[root@localhost ~]# docker rmi daocloud.io/centos:7
Untagged: daocloud.io/centos:7
Untagged: daocloud.io/centos@sha256:365fc7f33107869dfcf2b3ba220ce0aa42e16d3f8e8b3c21d72af1ee622f0cf0
[root@localhost ~]#
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        7 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.55.tar.gz  kjxy.war
[root@localhost ~]#
[root@localhost ~]# cp jdk-7u67-linux-x64.tar.gz apache-tomcat-7.0.55.tar.gz software/
[root@localhost ~]#
[root@localhost ~]# cd software/
[root@localhost software]#
[root@localhost software]# ls
apache-tomcat-7.0.55.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.7.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.55.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.7.0_67
export PATH=$JAVA_HOME/bin:$PATH
sh /home/tomcat7/bin/catalina.sh run 

为运行脚本添加执行权限

# chmod 777 run.sh

[root@d8222810d886 ~]# chmod 777 run.sh
[root@d8222810d886 ~]#
[root@d8222810d886 ~]# ll
total 8
-rw-------. 1 root root 3415 Dec  5 01:37 anaconda-ks.cfg
-rwxrwxrwx. 1 root root  124 Jan 29 14:17 run.sh

给tomcat运行脚本添加权限

[root@d8222810d886 ~]# chmod +x /home/tomcat7/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"         16 minutes ago      Exited (0) 5 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        22 seconds ago      508MB
centos               latest              1e1148e4cc2c        7 weeks ago         202MB

启动tomcat容器

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

# mkdir webapps

[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-7.0.55.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 58080:8080 -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"      20 seconds ago      Up 18 seconds       0.0.0.0:58080->8080/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

转载于:https://www.cnblogs.com/djlsunshine/p/10329192.html

docker构建tomcat镜像相关推荐

  1. docker 构建tomcat镜像部署war包

    docker 构建tomcat容器部署war包 拉取tomcat镜像 docker pull tomcat:8.5-alpine 查看镜像 docker images 构建并启动容器 docker r ...

  2. web重启tomcat_使用docker构建jdk镜像和web服务镜像

    一.构建jdk镜像 FROM centos WORKDIR /home/lily ADD jdk-8u91-linux-x64.tar.gz /home/lily RUN mv jdk1.8.0_91 ...

  3. Docker构建JDK 镜像

    Docker构建JDK 镜像 在 Docker官网中的openJDK 镜像中,默认不是使用的北京时间,会导致启动jar应用程序时时区不对的情况,这里在 openJDK镜像的基础上,设置使用中国北京时间 ...

  4. docker构建hadoop镜像、docker-compose启动hdfs

    之前使用镜像singularities/hadoop:2.8安装过hdfs,但鉴于这个镜像已经很久没更新了,今天就手动安装一下hadoop,并构建成镜像,方便以后使用. 参考文档:docker构建ha ...

  5. Docker构建MySQL镜像并初始化

    文章目录 Docker构建MySQL镜像并初始化 Dockerfile 的一些常用语法 FROM RUN CMD ENV COPY ADD WORKDIR EXPOSE 构建自带初始化的 MySQL ...

  6. 使用docker构建jenkins镜像并运行容器

    https://my.oschina.net/donhui/blog/470372?p={{currentPage+1}}   摘要: 使用docker构建jenkins镜像并运行容器 目录: 1.基 ...

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

    目录 概述 基本环境 docker网络 安装MongoDb 构建YAPI镜像 运行YAPI Nginx反向代理 挂域名 概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测 ...

  8. docker生成tomcat镜像

    应用场景 有时候docker公共镜像库中下载下来的镜像,可能不是自己想要的,没办法,自己也可以制作一个自己想要的镜像,然后发布到公共资源镜像中,也可以保存到私有仓库中,以防后期自己也需要使用. 操作步 ...

  9. docker制作tomcat镜像并部署war包

    模拟面试小白: 需求:有一台没有网络的服务器,使用docker部署war包,没有tomcat镜像,限时30分钟. 小白:没网部署war包干啥,是不是工作不饱和让你们太闲了. 我:傻瓜,怪我没表达清楚, ...

最新文章

  1. JavaFX列表示例
  2. c语言陷阱试题,超级经典计算机二级C语言陷阱考试题.doc
  3. 基于python的作业管理系统_python day18 作业 Django 开发主机管理系统
  4. 台式电脑键盘按键错乱_电脑键盘按键怕误触怎么办?用这款软件帮你屏蔽指定键盘按键!支持替换按键!...
  5. 被指抄袭后 新浪微博APP绿洲更换Logo 重新上架
  6. 单片机引脚复用使用不当会导致bug
  7. SqlServer获取数据表字段自定义编号
  8. mybait-plus实现动态自定义查询条件
  9. 老板子华硕A7N8X-X
  10. NDK在Linux下载配置以及C、C++编译配置(交叉编译)
  11. 使用端口扫描工具消除端口安全威胁
  12. 计算机共享w7系统文件共享,win7系统怎么共享文件 电脑一键共享文件方法教程...
  13. Tuna Scope 金枪鱼猎手:当顶级吃货,搞起图像识别
  14. Japanese Student Championship 2021
  15. Python获取对象所占内存大小方法
  16. Mybatis| Bug合集
  17. R语言分析股票指数的GARCH效应
  18. 【CZY选讲·吃东西】
  19. java.sql.SQLException: Parameter number X is not an OUT parameter
  20. 校园闲置物品(跳蚤市场)交易平台的设计与实现

热门文章

  1. Spring错误Caused by: java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Reflec
  2. Python爬取瀑布流百度图片
  3. 数据中心IDC、ODC、EDC、DC分别是什么
  4. 刀光剑影的大片背后站着特效巨人
  5. 六大项目权威对比 三款互联网电视横评(手机平板点餐系统应用开发)
  6. c++类之“对象包含与成员函数不兼容的类型限定符”与“对象含有与成员 函数 “CarBody::Geta” 不兼容的类型限定符”错误的修改
  7. PCI/PCIE之总线、设备枚举
  8. 3Q 大战 双方口述
  9. python 随机生成大乐透号码
  10. linux识别require语法,Scala 的参数检查与断言: require, assert, assume 和 ensuring