docker内的数据映射可以不通过数据卷,直接映射到本地的目录。下面将以mysql容器示例,完成容器的数据映射。
注意:每一个不同的镜像,将来创建容器后内部有哪些目录可以挂载,可以参考DockerHubDocker Hub Container Image Library | App Containerization对应的页面
首先在/root目录下创建mysql文件夹,然后进入mysql文件夹,创建三个文件夹data、conf、init
然后我们创建mysql容器
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
mysql
# 挂载本地目录
-v 本地目录:容器内目录
# 挂载本地文件
-v 本地文件:容器内文件
注意:本地目录或文件必须以 `/` 或 `./`开头,如果直接以名字开头,会被识别为数据卷名而非本地目录名。
此时我们可以看到/root/mysql/data目录下已经有了数据文件
想要查询mysql容器挂载的目录,命令如下
docker inspect --format='{{ .Mounts }}' mysql
#格式:docker inspect --format='{{ .Mounts }}' 容器名称或ID