Docker 使用-v安装卷时,文件不可用
我有一个Docker映像,它有一个卷[“/log”] 运行容器时,我正在装载主机上的文件夹 我希望docker在卷[“/log”]上编写的所有日志都可供主机使用Docker 使用-v安装卷时,文件不可用,docker,dockerfile,docker-volume,Docker,Dockerfile,Docker Volume,我有一个Docker映像,它有一个卷[“/log”] 运行容器时,我正在装载主机上的文件夹 我希望docker在卷[“/log”]上编写的所有日志都可供主机使用 docker run --name=test -v ${pwd}/hostlogfolder:/log dockerimage:1 hostlogfolder未写入日志 但日志在docker内部的位置/log处可用 docker exec -it test bash cd /log 装载文件夹的正确方法是什么?如果要创建具有预定义
docker run --name=test -v ${pwd}/hostlogfolder:/log dockerimage:1
hostlogfolder未写入日志
但日志在docker内部的位置/log处可用
docker exec -it test bash
cd /log
装载文件夹的正确方法是什么?如果要创建具有预定义设置(如添加卷)的映像,则必须使用Dockerfile。或者,如果不需要创建图像,但在创建容器时只需要一个临时容器来传递图像 我认为您需要阅读有关创建卷和其他指令的文档。这可能对你很有用
docker run -d -P --name web -v /webapp training/webapp python app.py
您就快到了,该命令需要稍加修改:
docker run --name=test -v $(pwd)/hostlogfolder:/log dockerimage:1
请注意,括号不同:错误:
${pwd}
右:
$(pwd)
运行后,您可以使用以下方法验证已装入的卷:
docker inspect
——您可以使用docker ps
检查命令输出的Mounts部分
"Mounts": [
{
"Source": "<host path>",
"Destination": "<container path>",
"Mode": "",
"RW": true
}]
“挂载”:[
{
“来源”:“,
“目的地”:“,
“模式”:“,
“RW”:正确
}]
我想访问Docker在location/log处编写的文件,这是我在Dockerfile中使用卷[“/log”]提到的位置。当我运行docker inspect时,我看到两个挂载—一个挂载指向docker系统文件位置,另一个挂载指向我提供的主机路径。是否有方法使用Dockerfile中的VOLUME指令指定主机上的挂载点?^nvm我实际上做了一些docker检查了一些容器| grep-e Source-e Destination
,其中包含卷[“/some/dir”]
指令在它的Dockerfile
中。我在目的地->/some/dir
中看到了一个在我的主机上自动创建的目录,大约在这里/var/lib/docker/volumes/some container id/_data
。到目前为止,这就是原因。