6 - Docker 数据卷
Docker数据卷
-
定义
- 将宿主机的一个目录 映射到容器内部的一个目录
- 本质是一个共享文件夹,即在linux操作系统中做的操作会同步到对应的容器中
-
数据卷的操作
- 创建数据卷 docker volume create 数据卷的命名
- 查看数据卷的详细信息 docker volume inspect 数据卷的命名
- 数据卷的默认存放路径 /var/lib/docker/volumes/v-tomcat/_data
- 查看全部数据卷 docker volume ls
- 删除数据卷 docker volume rm 数据卷的名称
-
数据卷的使用
第1种方式:
首先创建一个数据卷(数据卷创建在了默认的路径下),然后用数据卷的名称映射容器内部的路径(当映射数据卷时,如果数据卷不存在,那么docker会自动创建数据卷)
docker run -d -p 8081:8080 --name xs-tomcat-02 -v v-tomcat:/usr/local/tomcat/webapps 镜像名称或者镜像ID
解释:
-d : 后台运行
-p :端口号
8081:指的是linux服务器自己的端口号,因为8080已经被分配给一个容器了,所以此处分配8081
8080:容器的端口号是固定的,每个容器tomcat的端口号都是8080
--name: 给容器起个名称
-v:指定它的数据卷
v-tomcat:linux服务器的目录,即数据卷的目录,一般为默认的目录/var/lib/docker/volumes/v-tomcat/_data,将项目war包上传到此目录,即相当于将项目war包上传到了容器对应的目录
/usr/local/tomcat/webapps:指定映射容器的哪个目录
镜像名称或者镜像ID:根据该镜像来创建一个目录
部署之后,在本机访问web网站的时候,URL地址为: Linux服务器IP:8081/war包名称
比如:
xs-tomcat-02对应的是新的tomcat容器,端口是8081
xs-tomcat对应的是旧容器,端口是8080
只有一个mysql容器
即一个mysql容器对应了2个tomcat容器
当这3个容器都起来的时候,8080和8081都可以访问该web系统,只不过8080对应的是旧系统,8081对应的是新系统,这样,定位问题的话很方便
第2种方式:直接指定路径来创建数据卷,也会自动创建数据卷
docker run -d -p 8082:8080 --name xs-tomcat-03 -v /opt/volumes/v-tomcat03:/usr/local/tomcat/webapps 镜像名称或者镜像ID
/opt/volumes/v-tomcat03:指定数据卷目录为此,不用默认的数据卷目录