Dockerfile VOLUME和docker run -v命令之间的Docker区别
我有一个有VOLUME [“/ log”]的Docker镜像。
在运行容器时,我挂载了一个存在于主机上的文件夹。
我希望docker写在VOLUME [“/ log”]上的所有日志都可以被主机使用。
docker run --name=test -v ${pwd}/hostlogfolder:/log dockerimage:1
日志不会被hostlogfolder写入
但日志在docker的位置/日志中可用
docker exec -it test bash cd /log
什么是正确的方式来安装文件夹?
你几乎在那里,命令需要一个小的更正:
docker run --name=test -v $(pwd)/hostlogfolder:/log dockerimage:1
请注意,括号是不同的:
错误: ${pwd}
正确: $(pwd)
一旦运行,您可以使用以下方法validation已安装的卷:
docker inspect <container id>
– 您可以使用docker ps
获取容器ID
检查命令输出的Mounts部分。
"Mounts": [ { "Source": "<host path>", "Destination": "<container path>", "Mode": "", "RW": true }]
如果你想用预定义的设置来创build一个图像,比如添加音量,那么你必须使用Dockerfile。 或者,如果您不需要创build图像,但创build容器时仅需要临时容器来传递图像。
我想你需要阅读有关创build卷和其他指令的文档。 这可能对你非常有用。
docker run -d -P --name web -v /webapp training/webapp python app.py
https://docs.docker.com/engine/userguide/containers/dockervolumes/