docker构建tomcat镜像

下载centos镜像

# docker pull daocloud.io/centos:7

[[email protected] ~]# 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
[[email protected] ~]#
[[email protected] ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
daocloud.io/centos   7                   1e1148e4cc2c        7 weeks ago         202MB

创建一个镜像

# docker tag daocloud.io/centos:7 centos

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

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

[[email protected] ~]# mkdir software
[[email protected] ~]# ls
anaconda-ks.cfg              jdk-7u67-linux-x64.tar.gz  software
apache-tomcat-7.0.55.tar.gz  kjxy.war
[[email protected] ~]#
[[email protected] ~]# cp jdk-7u67-linux-x64.tar.gz apache-tomcat-7.0.55.tar.gz software/
[[email protected] ~]#
[[email protected] ~]# cd software/
[[email protected] software]#
[[email protected] 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

[[email protected] ~]# docker run -it -v /root/software/:/mnt/software/ centos /bin/bash
[[email protected] /]#
[[email protected] /]# cd /mnt/software/
[[email protected] software]#
[[email protected] 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/

操作过程如下:

[[email protected] ~]# mkdir /usr/jdk64/
[[email protected] ~]#
[[email protected] ~]# tar -zxf /mnt/software/jdk-7u67-linux-x64.tar.gz -C /usr/jdk64/
[[email protected] ~]#
[[email protected] ~]# ls /usr/jdk64/
jdk1.7.0_67

安装tomcat

解压tomcat到存储目录

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

[[email protected] ~]# tar -zxf /mnt/software/apache-tomcat-7.0.55.tar.gz -C /home/
[[email protected] ~]#
[[email protected] ~]# ls /home/
apache-tomcat-7.0.55

编写运行脚本

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

# vi /root/run.sh

[[email protected] ~]# vi run.sh
[[email protected] ~]#
[[email protected] ~]# cat run.sh
export JAVE_HOME=/usr/jdk64/jdk1.7.0_67
export PATH=$JAVE_HOME/bin:$PATH
sh /home/apache-tomcat-7.0.55/bin/catalina.sh run 

为运行脚本添加执行权限

# chmod 777 run.sh

[[email protected] ~]# chmod 777 run.sh
[[email protected] ~]#
[[email protected] ~]# 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运行脚本添加权限

[[email protected] ~]# chmod +x /home/apache-tomcat-7.0.55/bin/*.sh
[[email protected] ~]#
[[email protected] ~]# 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

退出容器

[[email protected] ~]# exit
exit
[[email protected] ~]#
[[email protected] ~]# 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

[[email protected] ~]# docker commit d8222810d886 djltomcat:latest
sha256:559211e0b347204543772eddb94c5b73810a8d2746fb30d9a24c99e33b89b3e9
[[email protected] ~]#
[[email protected] ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
djltomcat            latest              559211e0b347        22 seconds ago      508MB
daocloud.io/centos   7                   1e1148e4cc2c        7 weeks ago         202MB
centos               latest              1e1148e4cc2c        7 weeks ago         202MB

启动tomcat容器

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

# mkdir webapps

[[email protected] ~]# ls
anaconda-ks.cfg  apache-tomcat-7.0.55.tar.gz  jdk-7u67-linux-x64.tar.gz  kjxy.war  software
[[email protected] ~]#
[[email protected] ~]# mkdir webapps
[[email protected] ~]#
[[email protected] ~]# cp kjxy.war webapps/
[[email protected] ~]#
[[email protected] ~]# ls webapps/
kjxy.war

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

# docker run -d -p 58080:8080 -v /root/webapps/:/usr/tomcat/apache-tomcat-7.0.92/webapps/ --name mytomcat_1 mytomcat:1.0 /root/run.sh

[[email protected] ~]# docker run -d -p 58080:8080 -v /root/webapps/:/home/apache-tomcat-7.0.55/webapps/ --name test djltomcat:1.0 /root/run.sh
c4a5471da148763e009453575648d869e0327222605456767ff034887d57d608
[[email protected] ~]# 

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

参考博客:

使用Docker搭建Tomcat运行环境

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

end

原文地址:https://www.cnblogs.com/djlsunshine/p/10329192.html

时间: 2024-08-20 14:51:52

docker构建tomcat镜像的相关文章

Docker 构建私有镜像仓库(6)

title: Docker 构建私有镜像仓库(6) date: 2018-12-18 08:47:27 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.

docker 构建基础镜像 时区问题

前言 在使用tomcat官方docker 镜像时,程序在与微信通信过程中返回了时间差问题,查看后发现是docker 容器的问题. 问题 docker 官方镜像使用的都是UTC 标准时间,这就导致了比beijing时间晚8小时. 解决这一问题并不难,只要修正容器的时区就可以了.众所周知,对容器的修改并不会影响到镜像,所以又会出现这样一个问题,再次从镜像启动容器时,时间就会又变成UTC 标准时间.对于此问题,自然是可以使用docker commit 来解决,但我并不想这样做-- 解决方案 基于cen

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

一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. 3.查看docker所有的镜像 docker images 4.启动tomcat镜像 注:前者是外围访问端口:后者是容器内部端口 docker run -d -p 8080:8080 tomcat 注:前者是外围访问端口:后者是容器内部端口 如下命令可后台启动tomcat -d: 后台运行容器,并

docker 制作tomcat 镜像并应用

tomcat支持自主应用并对外开放端口: 1.制作Dockerfile 以centos为基础,远程ssh登录:新建Dockerfile,编辑如下: FROM tomcat MAINTAINER ****************** ADD web.xml /usr/local/tomcat/webapps/manager/WEB-INF/ ADD tomcat-users.xml /usr/local/tomcat/conf/ ADD server.xml /usr/local/tomcat/c

使用docker构建、运行jenkins镜像

目录: 1.基于docker官方的jenkins镜像启动容器 2.使用源码构建jenkins镜像并运行容器 3.使用csphere产品对容器.镜像.主机进行管理 docker近两年很火,最近在听cSphere希云主办的docker培训, 之前也参加过docker相关的技术沙龙(如docker meetup). 同时也使用Jenkins近两年,所以尝试使用docker构建jenkins镜像.运行基于镜像的容器. 因为听希云的docker培训获得了一张200元的腾讯云代金券, 所以用代金券在腾讯云上

docker之NGINX镜像构建

Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性:1.作为Web服务器.2.作为负载均衡服务器.3.作为邮件代理服务器.4.安装及配置简单.接下来我们介绍在docker构建nginx镜像:Docker镜像构建分为两种方式:一.手动构建二.Dockerfile(自动构建) 一.Docker镜像手动构建实例: 基于centos镜像进行构建nginx镜像 #下载镜像 [[email protected] ~]# docker pull centos [[email protec

Docker构建nginx+uwsgi+flask镜像(二)

Dockerfile搭建环境并打包应用 在上一章Docker构建nginx+uwsgi+flask镜像(一)的学习中,我们学会用命令行一句一句在alpine环境中搭建nginx+uwsgi+flask服务,但这体现不了Docker为我们带来的便利,而本章,我们将通过Dockerfile来制作基础镜像和打包应用,因此会有两个Dockerfile文件. 我们先来写第一个Dockerfile文件,这个文件负责搭建运行环境,运行环境需要包括:nginx.uwsgi.Python3: # 配置基础镜像 F

dockerfile用源码包构建tomcat服务

一.说明 centos基于docker官方镜像来制作的,用tomcat源码包生成的镜像,本环境中tomcat安装目录位于:/usr/local/,jdk安装目录位于:/usr/,如果你使用dockerfile buid此镜像,你要提前下载好jdk.tomcat源码包,在此文本中用的版本为apache-tomcat-8.0.24.jdk1.8.0_131,并且还配置了服务器的时间区,里面#号为注释掉的内容可以不用管它. 二.Dockerfile FROM centos:latest MAINTAI

基于alpine用dockerfile创建的tomcat镜像

1.下载alpine镜像 [[email protected] ~]# 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:621c2f39f8133acb8e64023a9