Docker文件VOLUME和docker之间的Docker差异运行-v命令

时间:2016-05-17 23:57:15

标签: docker dockerfile docker-volume

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

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

我希望Docker在VOLUME [“/ log”]写的所有日志都可供主机使用。

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

主机日志文件夹

未写入日志

但是日志在docker / dock

中的docker中可用
docker exec -it test bash
cd /log

安装文件夹的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

你几乎就在那里,命令需要一个小小的修正:

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

请注意括号不同:
错误:${pwd}
右:$(pwd)

运行后,您可以使用以下方法验证已装入的卷:

docker inspect <container id> - 您可以使用docker ps

获取容器ID

检查命令输出的Mounts部分。

"Mounts": [
            {
                "Source": "<host path>",
                "Destination": "<container path>",
                "Mode": "",
                "RW": true
           }]

答案 1 :(得分:1)

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

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

boolean isInstanceArrayList = tempVar.getClass() == ArrayList.class

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