docker镜像制作---jdk7+tomcat7基础镜像
1. 安装docker
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install docker-io
可使用以下命令,查看 Docker 是否安装成功:docker version
输出了 Docker 的版本号,则说明安装成功了,可通过以下命令启动 Docker 服务:
service docker start
一旦 Docker 服务启动完毕,我们下面就可以开始使用 Docker 了。
2. 下载镜像
我们不妨还是以 CentOS 为例,通过以下步骤,下载一个 CentOS 的镜像。
首先,访问 Docker 中文网,在首页中搜索名为“centos”的镜像,在搜索的结果中,有一个“官方镜像”,它就是我们所需的。
然后,进入 CentOS 官方镜像页面,在“Pull this repository”输入框中,有一段命令,把它复制下来,在自己的命令行上运行该命令,随后将立即下载该镜像。
[root@host-10-1-251-62 ~]# docker pull centos:6
最后,使用以下命令查看本地所有的镜像:
[root@host-10-1-251-62 ~]# docker images
可以查看到如下信息:
如果看到以上输出,说明您可以使用“centos”这个镜像了,或将其称为仓库(Repository),该镜像有一个名为“6”的标签(Tag),此外还有一个名为“2f96ee8baf17”的镜像 ID(可能您所看到的镜像 ID 与此处的不一致,那是正常现象,因为这个数字是随机生成的)。现在镜像已经有了,我们下面就需要使用该镜像,来制作(jdk+tomcat)基础镜像。
3. 准备JDK+TOMCAT软件
我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于宿主机(Linux机器的本地目录/home/crmtest/MCC/ljj/下)。为了制作时更加快捷,我直接在本地解压了两个软件,并将目录名字吻别重命名为jdk和tomcat。
4. 编写Dockerfile文件
#---------------------------------------------------------------------
#This is a comment注释
#使用基础镜像centos:6
FROM centos:6
#指定镜像创建者信息
MAINTAINER lijj3 <<A href="mailto:lijj3@asiainfo.com">lijj3@asiainfo.com>
#切换镜像的目录,进入/usr目录(基础镜像是一个linux系统,可参照linux查看相应目录)
WORKDIR /usr
#在/usr/下创建java目录,用来存放jdk
RUN mkdir java
#切换镜像的目录至/usr/java
WORKDIR /usr/java
#在/usr/java下创建jdk目录,用来存放jdk文件
RUN mkdir jdk
#切换镜像的目录至/usr/java/jdk
WORKDIR /usr/java/jdk
#将宿主机的jdk目录下的全部文件考入至镜像的/usr/java/jdk目录下
ADD jdk /usr/java/jdk
#切换镜像的目录至/opt
WORKDIR /opt
#在/opt下创建tomcat目录,用来存放tomcat文件
RUN mkdir tomcat
#将宿主机的tomcat目录下的全部文件考入至镜像的/opt/tomcat目录下
ADD tomcat /opt/tomcat
#设置环境变量
ENV JAVA_HOME=/usr/java/jdk
ENV JAVA_BIN=/usr/java/jdk/bin
ENV PATH=$PATH:$JAVA_HOME/bin
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#设置容器启动时执行的操作
CMD /opt/tomcat/bin/catalina.sh run
#---------------------------------------------------------------------
以上就是Dockerfile文件的内容,将该文件存入宿主机当前目录/home/crmtest/MCC/ljj/下,与jdk,tomcat同目录。
5. 制作镜像
使用命令:docker build -t centos_jdk7_tomcat7_ljj:latest .
其中centos_jdk7_tomcat7_ljj为镜像名称,latest为镜像tag。
[root@host-10-1-251-62 ~]# docker build -t centos_jdk7_tomcat7_ljj:latest .
制作成功后,查看镜像:docker images
6.启动容器
使用命令:docker run -d -p 5050:8080 centos_jdk7_tomcat7_ljj:latest
[root@host-10-1-251-62 ~]# docker run -d -p 5050:8080 centos_jdk7_tomcat7_ljj:latest
注意:这里使用的是宿主机的 IP 地址,与对外暴露的端口号 5050,它映射容器内部的端口号 8080。
-d:表示以“后台模式”启动,此时 Tomcat 控制台不会出现在输出终端上。-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 5050 端口,这样就向外界暴露了 5050 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。--name:表示容器名称,用一个有意义的名称命名即可。
7. 登录tomcat网站
在浏览器中,输入以下地址,即可访问 Tomcat 首页:
http://10.1.251.62:5050/
docker镜像制作---jdk7+tomcat7基础镜像的更多相关文章
- 使用Dockerfile文件制作centos6.8基础镜像,基于centos基础镜像的ssh远程登录镜像,jdk1.8镜像,tomcat镜像,elasticsearch镜像等等
一.首先制作一个centos6.8的裸机镜像 创建一个干净的目录: [root@docker centos6.]# ls c68-docker.tar.xz Dockerfile Dockerfile ...
- docker中如何制作自己的基础镜像
一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目 ...
- Docker制作私有的基础镜像
debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统).生成的目录符合Linux文件系统标准(FHS),即包含了/boot./etc./bin./usr等 ...
- 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...
- Docker制作基础镜像
Docker镜像制作 方式一:手动运行一个容器,做好所有配置,然后把容器提交成一个镜像 方式二:使用DockerFile 示例1:做一个yum安装的nginx镜像 - 运行并进入一个centos容器: ...
- Docker 镜像制作教程:针对不同语言的精简策略
本系列文章将分为三个部分: 第一部分着重介绍多阶段构建(multi-stage builds),因为这是镜像精简之路至关重要的一环.在这部分内容中,我会解释静态链接和动态链接的区别,它们对镜像带来的影 ...
- Docker如何制作镜像-Dockerfile的使用
1:什么是Dockerfile Dockerfile是一个文本文档,可以通过docker build 命令构建成一个镜像. 我们可以在Dockerfile中定义一系列的命令,构建出我们想要的镜像. 想 ...
- 使用 febootstrap 制作自定义基础镜像
转载自:https://cloud.tencent.com/developer/article/1454524 文章目录1.febootstrap 介绍2.环境.软件准备3.febootstrap 安 ...
- alpine制作jdk、jre镜像、自定义镜像上传阿里云
alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...
随机推荐
- SpringBoot入门系列:第三篇 日志输出
http://blog.csdn.net/lxhjh/article/details/51752419
- ORACLE修改列名与列类型
--修改列名 alter table 表名 rename column 旧列名 to 新列名; --修改列类型 )); 删除表的一列: alter table 表名 drop column 列名 给表 ...
- Java监听模式
说明 生活中,监听无处不在.比如说,手机播放音乐功能,也是一种监听:你不点击播放按钮,手机就不放歌,当你点击时,手机就播放音乐.即触发某种行为,便执行相应的动作. 组成 Java监听模式右三个部分组成 ...
- Tomcat7 自动加载类及检测文件变动原理
在一般的web应用开发里通常会使用开发工具(如Eclipse.IntelJ)集成tomcat,这样可以将web工程项目直接发布到tomcat中,然后一键启动.经常遇到的一种情况是直接修改一个类的源文件 ...
- linux—mysql安装步骤
一.检查系统中是否已经安装过mysql. rpm -qa | grep mysql 如果存在,则需要删除. yum -y remove mysql* 继续检查一下是否还存在mysql rpm -qa ...
- How to convert from BufferedImage to JavaFX 2.2 Image
http://blog.idrsolutions.com/2012/11/convert-bufferedimage-to-javafx-image/ ———————————————————————— ...
- Android Intent 用法全面总结(转载)
1. [代码]调用拨号程序 1 2 3 4 // 给移动客服10086拨打电话 Uri uri = Uri.parse("tel:10086"); Intent intent = ...
- javaweb乱码(tomcat服务器)
et提交 :<Connector protocol="HTTP/1.1" port="80" redirectPort="8443" ...
- PAT002 Reversing Linked List
题目: Given a constant K and a singly linked list L, you are supposed to reverse the links of every K ...
- C++ Scoket的升级版(多态的运用)
//Socket报文发送c++升级版 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; #in ...