我正在尝试做:
FROM mysql:5.7
RUN rm -rf /var/lib/mysql
COPY ./db /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
我收到错误:
rm:无法删除“/var/lib/mysql”:设备或资源繁忙
我真的不需要rm该文件夹,我只是想覆盖,但由于某种原因 dockerfile 没有覆盖,指令COPY似乎只是默默地失败了。
不确定是否正在进行缓存或其他操作,但我使用--no-cache,(这不是我第一次构建图像,但文件已更改)。
我该如何调试?
Dockerfile声明mysql
VOLUME /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
这直接导致您看到的错误。(在低级别上,Docker 会导致卷挂载到该目录上,就像在正常的 Linuxmount命令/函数中一样,因此您无法删除挂载点。)
它还会导致派生图像无法在该目录树中进行任何更改,因此您此处的基本方法将不起作用。如果您已经有一个可以在此处工作的数据树,则可以使用该docker run -v选项将其安装到容器中
docker run -v $PWD/db:/var/lib/mysql mysql:5.7
Run Code Online (Sandbox Code Playgroud)
如果您只有一个转储文件,您可以将其挂载或复制到/docker-entrypoint-initdb.d;Docker Hubmysql镜像页面(在“初始化新实例”下)描述了此机制。
| 归档时间: |
|
| 查看次数: |
18193 次 |
| 最近记录: |