Docker 使用-v安装卷时,文件不可用

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映像,它有一个卷[“/log”]

运行容器时,我正在装载主机上的文件夹

我希望docker在卷[“/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
。到目前为止,这就是原因。