原文链接:https://blog.csdn.net/qq_37936542/article/details/80824389

Docker构建镜像的方法主要有两种:

    (1)使用docker commit命令;

(2)使用docker build命令和Dockerfile文件(更为强大、灵活和常用);

一:准备centos镜像

docker pull centos

二:下载jdk、tomcat安装包,上传/usr/local/soft目录下

jdk1.8下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

tomcat8下载:https://tomcat.apache.org/download-80.cgi

三:解压,创建Dockerfile文件

  1. tar -zxvf apache-tomcat-8.5.31.tar.gz #解压tomcat
  2. tar -zxvf jdk-8u171-linux-x64.tar.gz #解压jdk
  3. rm -rf apache-tomcat-8.5.31.tar.gz #删除安装包
  4. rm -rf jdk-8u171-linux-x64.tar.gz #删除安装包
  5. touch Dockerfile #创建文件

操作完成之后,soft目录内容如下:

四:编写Dockerfile文件

  1. #指定操作的镜像
  2. FROM centos
  3. # 维护者信息
  4. MAINTAINER biubiu
  5. #执行命令:创建目录
  6. RUN mkdir -p /usr/local/soft
  7. #将jdk1.8.0_171添加到镜像centos的/usr/local/soft/目录下,并命名为jdk
  8. ADD jdk1.8.0_171 /usr/local/soft/jdk
  9. #将apache-tomcat-8.5.31添加到镜像centos的/usr/local/soft/目录下,并命名为tomcat
  10. ADD apache-tomcat-8.5.31 /usr/local/soft/tomcat
  11. #添加环境变量
  12. ENV JAVA_HOME /usr/local/soft/jdk
  13. ENV CATALINA_HOME /usr/local/soft/tomcat
  14. ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
  15. #暴露8080端口
  16. EXPOSE 8080
  17. #启动时运行tomcat
  18. CMD ["/usr/local/soft/tomcat/bin/catalina.sh","run"]

FROM : 指定基础镜像,并且必须是第一条指令

MAINTAINER : 指定作者

RUN : 运行指定的命令

ADD : 复制命令,把文件复制到镜像中。

ENV : 设置环境变量

EXPOSE : 功能为暴漏容器运行时的监听端口给外部

CMD : 指定容器启动时运行的命令

五:构建Docker镜像

docker build -t repostory/centos_tomcat .

-t 设置tag名称, 命名规则registry/image:tag(若不添加版本号,默认latest)
. 表示使用当前目录下的Dockerfile文件(注意语句后面有一个点)


六:启动镜像,访问

docker run -d -p 8080:8080 --name Icentos repostory/centos_tomcat

-d 后台运行

-p 端口映射  宿主机port : 容器port

--name 指定容器运行名称

关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源300G干货大全。公众号回复“1”,拉你进程序员技术讨论群

Docker使用Dockerfile创建Centos(tomcat+jdk)镜像的更多相关文章

  1. Docker使用Dockerfile创建支持ssh服务自启动的容器镜像

    原文链接:Docker使用Dockerfile创建支持ssh服务自启动的容器镜像 1. 首先创建一个Dockerfile文件.文件内容例如以下 # 选择一个已有的os镜像作为基础 FROM cento ...

  2. 使用Dockerfile创建ssh服务的镜像02

    使用Dockerfile创建ssh服务的镜像02 1:创建工作目录---一个镜像的所有文件都放这个目录下 ubuntu@ubuntu:~$ mkdir sshd_ubuntu ubuntu@ubunt ...

  3. Docker Alpine Dockerfile 安装nginx,最小镜像

    Docker Alpine Dockerfile 安装nginx,最小镜像 FROM alpine MAINTAINER will ## 将alpine-linux:apk的安装源改为国内镜像 RUN ...

  4. 使用Dockerfile创建一个tomcat镜像,并运行一个简单war包

    docker已经看了有一段时间了,对镜像和容器也有了一个大致了解,参考书上的例子制作一个tomcat镜像,并简单运行一个HelloWorld.war 1.首先下载linux环境的tomcat和jdk, ...

  5. 基于alpine用dockerfile创建的tomcat镜像

    1.下载alpine镜像 [root@docker43 ~]# docker pull alpine Using default tag: latest Trying to pull reposito ...

  6. docker 容器 centos + tomcat + jdk

    环境: 阿里云ecs服务器 步骤: 1.安装docker 2.获取centos镜像 3.下载tomcat 和 jdk 安装包 4.配置 1.安装docker https://www.cnblogs.c ...

  7. 转:Docker创建centos的LNMP镜像

    转自:http://www.vckai.com/p/29  1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装>. 1)启动docker # serv ...

  8. Docker创建centos的LNMP镜像

    前段时间重装了系统,今天刚好有时间,就用docker安装一个lnmp开发环境,下面是我的安装笔记. 1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装> ...

  9. Docker实战之创建一个tomcat容器

    一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...

随机推荐

  1. Zookeeper vs. etcd

    etcd是go语言实现的. 对比,可以参考这篇文章: http://studygolang.com/articles/4837 <服务发现:Zookeeper vs etcd vs Consul ...

  2. CI框架源代码阅读笔记6 扩展钩子 Hook.php

    CI框架同意你在不改动系统核心代码的基础上加入或者更改系统的核心功能(如重写缓存.输出等). 比如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = ...

  3. Android SecurityException

    public boolean checkNetwork() { boolean result = false; try { Context context = this.getApplicationC ...

  4. Oracle定义变量、常量

    1 定义变量 declare var_countryname varchar2(50):='中国'; 2 定义常量 con_day constant integer:=365;

  5. AIX 适配器

    1. 查看所有适配卡 lsdev -CHc adapter     2. 物理网卡适配卡 查看到物理网卡的个数与类型 lsdev -Cc adapter|grep ent   查看物理网卡具体插槽位( ...

  6. ping---测试主机之间网络的连通性

    ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常. 选项 -d:使用Socke ...

  7. fsck---于检查并且试图修复文件系统中的错误

    fsck命令被用于检查并且试图修复文件系统中的错误.当文件系统发生错误四化,可用fsck指令尝试加以修复. -a:自动修复文件系统,不询问任何问题: -A:依照/etc/fstab配置文件的内容,检查 ...

  8. LightOJ 1291 Real Life Traffic

    Real Life Traffic Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on LightOJ. O ...

  9. 洛谷——P1314 聪明的质监员

    https://www.luogu.org/problem/show?pid=1314 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每 ...

  10. HDOJ 5399 Too Simple

    每个函数都必须是一个排列,经过连续的一段确定函数后数字不能少. 满足上面的条件的话,仅仅要有一个-1函数特别的排列一下就能够满足要求,剩下的能够任意填 没有-1的话特判 Too Simple Time ...