准备一个web项目
-
创建一个文件夹,例如:demo
-
创建一个文件夹WEB-INF
-
在WEB-INF中创建一个文件web.xml
-
在web.xml中添加如下内容:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> </web-app>
-
在demo文件夹中创建一个index.html,并添加如下内容:
<h1>test docker!</h1>
创建MySQL容器
-
创建MySQL镜像
docker pull daocloud.io/library/mysql:5.7.5-m15
-
查看MySQL镜像
docker images
-
创建MySQL容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql 镜像tag
-
测试
连接成功。
创建Tomcat容器
-
创建Tomcat镜像
docker pull daocloud.io/library/tomcat:8.0.45
-
查看Tomcat镜像
docker images
-
创建Tomcat容器
docker run -d -p 8080:8080 --name tomcat 镜像tag
-
测试
将项目部署到Tomcat
-
上传项目
通过ftp将demo文件夹上传到/home/目录下
-
进入容器目录
docker exec -it 容器tag bash
-
将项目拷贝到tomcat容器的webapps目录下面
docker cp demo 容器tag:/usr/local/tomcat/webapps
-
查看tomcat运行日志
docker logs -f 容器tag
-
测试
Docker数据卷
为了部署我们的demo工程,需要使用到cp
的命令将宿主机内的demo文件复制到容器内部。当我们需要更新这个项目时都需要cp
操作,这样是不太现实的,因此docker提供了解决方案——数据卷。
数据卷:将宿主机的一个目录,映射到容器的一个目录中,可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。
1.创建数据卷
docker volume create 数据卷名称
#创建数据卷之后,默认会存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data
2.查看数据卷的详细信息
docker volume inspect 数据卷名称
3.查看全部数据卷
docker volume ls
4.删除数据卷
docker volume rm 数据卷名称
5.应用数据卷
当映射数据卷时,如果数据卷不存在,docker会自动创建,会将容器内部自带的文件存储在默认存放路径中。
# 方式一
docker run -v 数据卷名称:容器内部的路径 镜像id
# 方式二
# 直接指定一个路径作为数据卷存放的位置,这个路径下是空的
docker run -v 路径:容器内部的路径 镜像id
# 推荐使用
-
方式一:
浏览器进入:
-
方式二:
浏览器进入:
修改demo内容:
浏览器再次进入:
发现内容已更新。