docker部署web应用

1、创建dockerfile

#使用的基础镜像
FROM mysql:latest
#作者信息
MAINTAINER debian tomcat8 jdk1.8 mysql5.7

#创建目录
RUN mkdir -p /opt/app/jdk1.8.0_65
#把当前soft目录下的jdk文件夹添加到镜像
ADD soft/jdk1.8.0_65 /opt/app/jdk1.8.0_65

#创建tomcat目录
RUN mkdir -p /opt/app/apache-tomcat-8.0.30
#把当前soft目录下的tomcat文件夹添加到镜像
ADD soft/apache-tomcat-8.0.30  /opt/app/apache-tomcat-8.0.30

#添加环境变量
ENV JAVA_HOME /opt/app/jdk1.8.0_65
ENV CATALINA_HOME /opt/app/apache-tomcat-8.0.30
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

#暴露8080端口
EXPOSE 8080

#启动时运行tomcat
CMD ["/opt/app/apache-tomcat-8.0.30/bin/catalina.sh","run"]

2、生成镜像,注意后面的 "."

docker build -t java8-tomcat8-mysql .

镜像创建完毕后,就可以启动docker run来启动镜像,启动镜像的时候同时会创建一个容器,我们可以简单的把镜像比如成类,容器就是这个类的实例

,Image可以理解为一个系统镜像,
Container是Image在运行时的一个状态。如果拿虚拟机作一个比喻的话,Image就是关机状态下的磁盘文件,Container就是虚拟机运行时的磁盘文件,包括内存数据。

当利用docker run来创建容器时,Docker 在后台运行的标准操作包括:
检查本地是否存在指定的镜像,不存在就从公有仓库下载
利用镜像创建并启动一个容器
分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
从地址池配置一个 ip 地址给容器
执行用户指定的应用程序
执行完毕后容器被终止

3、启动镜像

#rule-container是容器的名字 rule:1.0 是镜像

docker run -p 8080:8080 --name rule-container rule:1.0 -d
 

4、进入容器

docker exec -it ${containername or container id} /bin/bash

5、将war包放进容器

#进入容器后可以找到tomcat路径/opt/app/apache-tomcat-8.0.30
docker cp rule.war rule-containdr:/opt/app/apache-tomcat-8.0.30/webapps

6、停止容器

docker stop 83422eb7f3c1(容器ID)

7、启动容器

docker start 83422

 

posted on 2017-07-13 15:19  hi_rain  阅读(1379)  评论(0)    收藏  举报