3

我有一个 Docker Image,它有一个 VOLUME ["/log"]。

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

我希望 docker 在 VOLUME ["/log"] 上写入的所有日志都可供主机使用。

docker run --name=test -v ${pwd}/hostlogfolder:/log  dockerimage:1

日志没有被 hostlogfolder 写入

但是日志在 docker 中的位置 /log 中可用

docker exec -it test bash
cd /log

挂载文件夹的正确方法是什么?

4

2 回答 2

2

你快到了,命令需要一个小的修正:

docker run --name=test -v $(pwd)/hostlogfolder:/log  dockerimage:1

注意括号是不同的:
错:${pwd}
对:$(pwd)

运行后,您可以使用以下命令验证已安装的卷:

docker inspect <container id> -- 您可以使用获取容器 iddocker ps

检查命令输出的 Mounts 部分。

"Mounts": [
            {
                "Source": "<host path>",
                "Destination": "<container path>",
                "Mode": "",
                "RW": true
           }]
于 2016-05-18T16:50:54.070 回答
1

如果要创建具有预定义设置(例如添加卷)的映像,则必须使用 Dockerfile。或者,如果你不需要创建镜像,而只需要一个临时容器在创建容器时传递它。

我认为您需要阅读有关创建卷和其他指令的文档。它可能对您非常有用。

docker run -d -P --name web -v /webapp training/webapp python app.py

https://docs.docker.com/engine/userguide/containers/dockervolumes/

于 2016-05-18T03:14:43.987 回答