docker创建web镜像
(1)把tomcat jdk放到本地/home/software目录下,然后运行:
(2)docker run -t -i -v /home/software/:/opt/data --name mk_tomcat chug/ubuntu12.10x64 /bin/bash
此命令运行一个容器chug/ubuntu12.10x64,并把本地目录“/home/software/"目录挂载到/opt/data目录下。
(3)在上一个启动的容器内,安装配置TOMCAT和JDK。
配置JDK环境
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME
配置TOMCAT
配置启动tomcat脚本
vi /root/run.sh
#!/bin/bash
source ~/.bashrc
sh /opt/app/tomcat7/bin/catalina.sh run
(4)创建 Java Web 镜像
使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”:
docker commit dc2302fa708a gg/centos6.5-tomcat7:001
该容器的 ID 是“57c312bbaad1”,
所创建的镜像名是“gg/centos6.5-tomcat7”,
镜像TAG:001
随后可使用镜像来启动 Java Web 容器。
(5)启动 Java Web 容器
有必要首先使用docker images命令,查看当前所有的镜像:
docker run -d -p 18080:8080 --name javaweb gg/javaweb:0.1 /root/run.sh
解释:
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
--name:表示容器名称,用一个有意义的名称命名即可。
----------------------方法二--------------------
(1)把TOMCAT 和JDK放在目录/home/software下
(2)在/home/software下创建Dockerfile文件
[root@p1docker software]# more Dockerfile
FROM chug/ubuntu12.10x64
#install jdk
ADD jdk1.8.0_45 /opt/jdk1.8.0_45
ENV JAVA_HOME /opt/jdk1.8.0_45
ENV PATH $PATH:$JAVA_HOME/bin
RUN mkdir -p "$JAVA_HOME"
#install tomcat
ADD apache-tomcat-7.0.64 /opt/apache-tomcat
ENV CATALINA_HOME /opt/apache-tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
EXPOSE 8080
CMD [" /opt/apache-tomcat/bin/startup.sh","-D"]
(3)创建镜像
docker build -t ns/tomcat .
docker run -itd -p 18080:8080 --name=javaweb ns/tomcat
----------------------------------------------------------------------------------
导出容器
如果要导出本地某个容器,可以使用 docker export 命令。
导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像,例如
注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
--------------------------------------------------------------------------------
仓库(Repository)是集中存放镜像的地方。
一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 dl.dockerpool.com/ubuntu 来说,dl.dockerpool.com 是注册服务器地址,ubuntu 是仓库名。
大部分时候,并不需要严格区分这两者的概念。
---------------------------
数据卷容器:
创建数据卷:
docker run -d -v /home/software/datavol/ --name webdata1 richxsl/rhel6.5 /bin/bash
docker run -d -v /opt/apache-tomcat/logs/ --name webdata1 richxsl/rhel6.5 /bin/bash
使用数据卷:
docker run -itd -p 28080:8080 --volumes-from=webdata2 --name=javaweb2 ns/tomcat
docker run -itd -p 38080:8080 --volumes-from=webdata2 --name=javaweb3 ns/tomcat
docker exec javaweb2 ll /opt/apache-tomcat/logs
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10995764/viewspace-2125581/
,如需转载,请注明出处,否则将追究法律责任。