基于Dockerfile制作tomcat镜像

Docker 概述:

??在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让 docker 读取并分析、执行,那么重复构建、更新将变得很方便,所以Dockerfile 就此诞生了

常用参数:

  • FROM 命令。用法, FROM <image>:<tag>。 FROM 命令告诉 docker 我们构建的镜像是以哪个(发行版)镜像为基础的
  • RUN 命令。用法 RUN 。 RUN 后面接要执行的命令,比如,我们想在镜像中安装 vim,只需在
  • Dockfile 中写入 RUN yum install -y vim
  • ENV 命令。用法,ENV 。 ENV 命令主要用于设置容器运行时的环境变量
  • ADD 命令。用法, ADD 。 ADD 主要用于将宿主机中的文件添加到镜像中

基于 dockerfile 制作 tomcat 镜像

  • 首先建一个目录构建我们的环境。
12
[[email protected] ~]# mkdir tomcat_centos[[email protected] ~]# cd tomcat_centos
  • 上传 tomcat 和 jdk 到该目录下。
12
[[email protected] tomcat_centos]# lsapache-tomcat-7.0.54.tar.gz jdk-7u65-linux-x64.tar.gz
  • 编辑 Dockerfile
123456789101112
[[email protected] tomcat_centos]# vim DockerfileFROM centos:1MAINTAINER from bistros <[email protected]>#copy jdk and tomcat into imageADD ./apache-tomcat-7.0.54.tar.gz /rootADD ./jdk-7u65-linux-x64.tar.gz /root#set environment variableENV JAVA_HOME /root/jdk1.7.0_65ENV PATH $JAVA_HOME/bin:$PATH#define entry point which will be run first when the container starts upENTRYPOINT /root/apache-tomcat-7.0.54/bin/startup.sh && tail -F /root/apache-tomcat-7.0.54/logs/catalina.out
  • 构建镜像
12345678910111213141516171819202122232425262728
[[email protected] tomcat_centos]# docker build -t bistros/tomcat:centos .Sending build context to Docker daemon 151.3 MBStep 1 : FROM centos:1---> 4a7667a30862Step 2 : MAINTAINER from b 大专栏  基于Dockerfile制作tomcat镜像istros <[email protected]>---> Running in 68bf1a959d26---> fcf74efba621Removing intermediate container 68bf1a959d26Step 3 : ADD ./apache-tomcat-7.0.54.tar.gz /root---> 66cddab1de86Removing intermediate container f0b727f5be51Step 4 : ADD ./jdk-7u65-linux-x64.tar.gz /root---> e5bb29fe10f6Removing intermediate container b26f642c67acStep 5 : ENV JAVA_HOME /root/jdk1.7.0_65---> Running in dfd83d97c8ed---> e434fbfdf162Removing intermediate container dfd83d97c8edStep 6 : ENV PATH $JAVA_HOME/bin:$PATH---> Running in 2233e413bb0d---> 6a2c544ad3c2Removing intermediate container 2233e413bb0dStep 7 : ENTRYPOINT /root/apache-tomcat-7.0.54/bin/startup.sh && tail -F /root/apache-tomcat-7.0.54/logs/catalina.out---> Running in 8d58b19e8ad7---> c0c55ad98c79Removing intermediate container 8d58b19e8ad7Successfully built c0c55ad98c79
  • -t 选择指定生成镜像的用户名,仓库名和 tag
  • –rm=true 指定在生成镜像过程中删除中间产生的临时容器。

查看新产生的镜像

123
[[email protected] tomcat_centos]# docker images bistros/tomcat:centosREPOSITORY TAG IMAGE ID CREATED SIZEbistros/tomcat centos c0c55ad98c79 About a minute ago 502.7 MB

运行镜像

  • 手动映射主机端口启动
12345678
[[email protected] tomcat_centos]# docker run -d -p 8090:8080 bistros/tomcat:centos65a0f0910f174132e009ca686b283c0dc58df0dd3000c144cd4c175f2078de37[[email protected] tomcat_centos]# docker ps -aCONTAINER ID IMAGE COMMANDCREATED STATUS PORTSNAMES5 / 565a0f0910f17 bistros/tomcat:centos "/bin/sh -c '/root/ap" 50 seconds agoUp 48 seconds 0.0.0.0:8090->8080/tcp pensive_kare
  • -p 指定主机 80 端口与容器 8080 端口进行绑定
  • -d 指定容器运行后与当前 tty 分离,后台运行
  • 65a0 是镜像的 ID 前 4 位。

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

  • 自动映射主机端口的启动
123456789
[[email protected] tomcat_centos]# docker run -d -p 8080 --name tomcatbistros/tomcat:centos2f20477608f8d335a3424acd6f54ad5900db86bdbf48af2ea2777159a7646566[[email protected] tomcat_centos]# docker ps -aCONTAINER ID IMAGE COMMANDCREATED STATUS PORTSNAMES2f20477608f8 bistros/tomcat:centos "/bin/sh -c '/root/ap" 8 seconds agoUp 6 seconds 0.0.0.0:32768->8080/tcp tomcat

这样就要通过 http://宿主机 IP:32768 访问了。

原文地址:https://www.cnblogs.com/lijianming180/p/12366273.html

时间: 2024-10-01 20:10:08

基于Dockerfile制作tomcat镜像的相关文章

实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署

最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7-maven-plugin插件,可以直接在maven上编译,打包,部署一次性完成,这个方法的关键是在tomcat上创建一个用户账号,然后maven插件用此账号和密码来执行在线部署. 本次实践中,我们要动手制作一个镜像,这个镜像run起来后是个tomcat server,这个server支持maven

Dockerfile制作自定义镜像

本文介绍最精简的Dockerfile文件构建镜像,Docker启动的时候可以启动一个shell脚本 1.首先编写Dockerfile文件 说明 1.启动的这个shell脚本一定是不退出的,比如服务器的启动,tomcat或者自己开发的socket服务监听程序等 2.如果是启动的服务有监听IP功能,那么IP需要配置成0.0.0.0,不要配置成127.0.0.1 否则curl的时候会出现:curl: (7) Failed to connect to localhost port 6230: Conne

DOCKER学习_011:使用Dockerfile制作docker镜像

前面使用commit的方式,制作一个docker镜像,本次介绍使用Dockerfile制作一个dockers镜像 [[email protected] ~]# mkdir /openssh [[email protected] ~]# cd /openssh [[email protected] openssh]# cp /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key /etc/ssh/ssh_host_rsa_key . [[

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

基于alpine制作php镜像

alpine包搜索https://pkgs.alpinelinux.org/ 安装依赖库 apk add --no-cache xxx 可以基于php apline镜像自行增加或删除扩展. https://github.com/docker-library/php 增加扩展可以使用 pecl install xxx 如 pecl install redis 如果不能使用此种方法安装可以使用,git clone 下来在进行编译,编译成功后 docker-php-ext-enable xxx启动扩展

Dockerfile制作sshd镜像

For Centos Shell脚本: # vim Dockerfile # mkdir /data01/sshd # vi Dockerfile # sshd # # VERSION 0.0.2 FROM centos:centos7 MAINTAINER yezl RUN yum install -y openssh-server RUN yum install -y openssh-clients RUN yum install -y sed RUN yum install net-too

基于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

8.Docker之使用dockerfile创建nginx镜像

一.前言 看了很多人的dockerfile,都是长篇大论,解释的又很少,对于初学者来说根本不知道指令的意思,哪怕知道指令的意思,也不知道指令后面配置的一大串东西来自于哪里,而这一大串又无需去记忆,例如: 开头的RUN指令都能根据dockerfile的指令说明可以知道该指令是干嘛用的,但是后面这一串这么长的东西又是来自于哪里? 所以在编写dockerfile之前,你必须懂的nginx(该文章是基于dockerfile创建nginx镜像)在linux上的安装流程,否则,需要安装什么依赖等都不知道,就

利用dockerfile制作基于centos7的lnmp镜像(亲测,详细版)

首先呢,这篇文章,也是小弟参考了许多文章,自己整理出来的,有很多不足之处还有待加强,期待各位评论. > LNMP 是代表 Linux 系统下的 Nginx.Mariadb.PHP 相结合而构建成的动态网站服务器架构.下面使用 Dockerfile 文件的方式来创建带有 LNMP 架构的 Docker 镜像. 1. 创建工作目录 [root@localhost ~]# mkdir lnmp [root@localhost ~]# cd lnmp/ 2. 创建 Dockerfile 文件 #基础镜像