Docker使用Dockerfile创建Centos(tomcat+jdk)镜像
原文链接: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文件
- tar -zxvf apache-tomcat-8.5.31.tar.gz #解压tomcat
- tar -zxvf jdk-8u171-linux-x64.tar.gz #解压jdk
- rm -rf apache-tomcat-8.5.31.tar.gz #删除安装包
- rm -rf jdk-8u171-linux-x64.tar.gz #删除安装包
- touch Dockerfile #创建文件
操作完成之后,soft目录内容如下:
四:编写Dockerfile文件
- #指定操作的镜像
- FROM centos
- # 维护者信息
- MAINTAINER biubiu
- #执行命令:创建目录
- RUN mkdir -p /usr/local/soft
- #将jdk1.8.0_171添加到镜像centos的/usr/local/soft/目录下,并命名为jdk
- ADD jdk1.8.0_171 /usr/local/soft/jdk
- #将apache-tomcat-8.5.31添加到镜像centos的/usr/local/soft/目录下,并命名为tomcat
- ADD apache-tomcat-8.5.31 /usr/local/soft/tomcat
- #添加环境变量
- ENV JAVA_HOME /usr/local/soft/jdk
- ENV CATALINA_HOME /usr/local/soft/tomcat
- ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
- #暴露8080端口
- EXPOSE 8080
- #启动时运行tomcat
- 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)镜像的更多相关文章
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
原文链接:Docker使用Dockerfile创建支持ssh服务自启动的容器镜像 1. 首先创建一个Dockerfile文件.文件内容例如以下 # 选择一个已有的os镜像作为基础 FROM cento ...
- 使用Dockerfile创建ssh服务的镜像02
使用Dockerfile创建ssh服务的镜像02 1:创建工作目录---一个镜像的所有文件都放这个目录下 ubuntu@ubuntu:~$ mkdir sshd_ubuntu ubuntu@ubunt ...
- Docker Alpine Dockerfile 安装nginx,最小镜像
Docker Alpine Dockerfile 安装nginx,最小镜像 FROM alpine MAINTAINER will ## 将alpine-linux:apk的安装源改为国内镜像 RUN ...
- 使用Dockerfile创建一个tomcat镜像,并运行一个简单war包
docker已经看了有一段时间了,对镜像和容器也有了一个大致了解,参考书上的例子制作一个tomcat镜像,并简单运行一个HelloWorld.war 1.首先下载linux环境的tomcat和jdk, ...
- 基于alpine用dockerfile创建的tomcat镜像
1.下载alpine镜像 [root@docker43 ~]# docker pull alpine Using default tag: latest Trying to pull reposito ...
- docker 容器 centos + tomcat + jdk
环境: 阿里云ecs服务器 步骤: 1.安装docker 2.获取centos镜像 3.下载tomcat 和 jdk 安装包 4.配置 1.安装docker https://www.cnblogs.c ...
- 转:Docker创建centos的LNMP镜像
转自:http://www.vckai.com/p/29 1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装>. 1)启动docker # serv ...
- Docker创建centos的LNMP镜像
前段时间重装了系统,今天刚好有时间,就用docker安装一个lnmp开发环境,下面是我的安装笔记. 1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装> ...
- Docker实战之创建一个tomcat容器
一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...
随机推荐
- PMP杂谈--制约因素与如果条件
制约因素和如果条件都是项目范围说明书的内容.它们是项目范围基准的一部分,是定义活动.估算活动持续时间.制定进度计划.估算成本.制定预算.识别风险和规划採购等多个过程的输入. 差别:制约因素是确定 ...
- /dev/shm和swap差别与联系
1.基本理论 /dev/shm这个文件是寄生虫,寄存在内存中 swap是暂时在硬盘中划分一个区域,把它作为内存使用 2.怎样查看 使用df -lh能够查看/dev/shm 使用free -m能够查看s ...
- Onvif开发之服务端成功对接Rtsp视频流篇
前面篇介绍onvif服务端的发现功能,继续在之前的代码基础上完成一个RTSP流的工作,也就是客户端通过ONVIF协议来预览设备端在这个之前必须确定几个简单的条件1 设备端能被发现2 设备端支持RTSP ...
- Kinect 开发 —— 手势识别(上)
像点击(clicks)是GUI平台的核心,轻点(taps)是触摸平台的核心那样,手势(gestures)是Kinect应用程序的核心 关于手势的定义的中心在于手势能够用来交流,手势的意义在于讲述而不是 ...
- 压状态bfs
一般地图很小,状态不多,可以装压或者hash,构造压缩或hash的函数,构造还原地图的函数,然后就无脑bfs(感觉就是SPFA) 题目: 1.玩具游戏:二进制压缩状态 #include<cstd ...
- ipcalcIP地址计算
ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务. 语法 ipcalc(选项) 选项 -b:由给定的IP地址和网络掩码计算出广播地址: -h:显示给定UP地址所对应的主机名: ...
- 【Codeforces Round #427 (Div. 2) C】Star sky
[Link]:http://codeforces.com/contest/835/problem/C [Description] 给你n个星星的坐标(xi,yi); 第i个星星在第t秒,闪烁值变为(s ...
- POJ 3252 Round Numbers(组合数学)
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10223 Accepted: 3726 De ...
- TCP/IP图解学习总结(二)
注意:这里的第n层是依照OSI协议来的 I 网桥--2层交换机.数据链路层面上链接两个网络的设备.它可以识别数据链路层中的数据帧. II 路由器-3层交换机.网络层面上连接两个网络,并对分组报文 ...
- 01-Jvm 内存区域复习笔记
Java内存区域 1.程序计数器(Program Counter Register) 在虚拟机中一块较小的内存空间.它的作用能够看做是当前线程所运行的字节码的行号指示 ...