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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐