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 ...
随机推荐
- apue.h文件找不到的解决办法
参考:http://blog.csdn.net/nihaotoyou/article/details/16827675 1.首先到该书的官网下载源代码:http://www.apuebook.com/ ...
- SIGBUS 和 SIGSEGV
一.导致SIGSEGV 1.试图对仅仅读映射区域进行写操作 . 2.訪问的内存已经被释放,也就是已经不存在或者越界. 3.官方说法是: SIGSEGV --- Segment Fault. ...
- Unix系统编程()文件空洞
如果程序的文件偏移量已然跨越了文件结尾,然后再执行IO操作,将会发生什么情况? read调用将会返回0,表示文件结尾.令人惊讶的是,write函数可以在文件结尾后的任意位置写入数据. 从文件结尾后到新 ...
- 小型web服务器thttpd的学习总结(下)
1.主函数模块分析 对于主函数而言,概括来说主要做了三点内容,也就是初始化系统,进行系统大循环,退出系统.下面主要简单阐述下在这三个部分,又做了哪些工作呢. 初始化系统 拿出程序的名字(argv[0] ...
- CentOS平滑升级Nginx
服务器:CentOS 6.4 64位 升级方案:nginx1.4.0 – nginx1.4.3 Nginx编译后就一个小文件,不带动态库,升级也可以无缝升级,并不影响访问,按下面的命令执行就可以,具体 ...
- WebRTC编译系统之GYP,gn和ninja
GN(Generate Ninja)来生成构建脚本,使用 ninja 来构建. gn 的介绍在这里:https://www.chromium.org/developers/gn-build-confi ...
- C#获取CPU编号
//System.Management;//需要添加引用(系统自带) /// <summary> /// 获取cpu编号 /// </summary> /// <retu ...
- C#反射实例学习及注意内容
C#反射的入门学习首先要明白C#反射提供了封装程序集.模块和类型的对象等等.那么这样可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性.如果代码中 ...
- Unity3D入门其实很简单
在上次发布拙作后,有不少童鞋询问本人如何学习Unity3D.本人自知作为一名刚入门的菜鸟,实在没有资格谈论这么高大上的话题,生怕误导了各位.不过思来想去,决定还是写一些自己的经验,如果能给想要入门U3 ...
- 把本地的jar包安装到maven库中
mvn install:install-file -Dfile=E:\temp\catV1\cat-client\trunk\CAT_v1.1.1\cat-consumer\target\cat-co ...