Docker:为容器设定数据卷的两种方式

时光总嘲笑我的痴心妄想 提交于 2020-03-17 01:10:50

1. 命令行方式:

以安装mysql为例:
在宿主机建立与MySQL容器挂载的文件目录(如/mysql),在该目录下至少包含下面三个目录:
data logs conf
进入mysql目录下,执行下面容器运行命令,绑定容器卷。

运行mysql:
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

2. DockerFile方式:

以挂载Tomcat的webapps目录为例:

FROM tomcat:9.1
VOLUME ["/usr/local/tomcat/webapps"]

可以看出以DockerFile中VOLUME命令指定容器中数据卷对应位置,并没有提供能够指定在宿主机中文件的位置,其原因是,不同的宿主机下,无法确定一个目录的存在。

上面没有指定数据卷在宿主机中位置,如何查看:
使用 docker inspect 容器id 查看容器详情:
在这里插入图片描述

注意:
(1)默认拉取的tomcat:9.0 他的webapps下的内容在webapps.dist文件夹下;
(2)当配置数据卷编写DockerFile时,不要添加CMD 、ENTRYPOINT 命令,否则会覆盖而导致Tomcat容器无法正常启动。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!