[英]Runing and exposing mosquitto and mongodb in a docker container
[英]Pass configuration file to mosquitto in Docker container
試圖在 Windows 上運行 masquitto Docker 容器。 我有目錄結構:
..
mosquitto
config
-- mosquitto.conf
data
log
我運行命令:
docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data -v /mosquitto/log eclipse-mosquitto
得到錯誤:
docker: Error response from daemon: source /var/lib/docker/overlay2/c54f317f73085489398e1b2c4ffbc85fbdb18073e8a0fa60f11a7f7222fbc49d/merged/mosquitto/config/mosquitto.conf is not directory.
See 'docker run --help'.
我做錯了什么?
UPD
我試圖提供主機上配置文件的完整路徑:
docker run -it -p 1883:1883 -p 9001:9001 -v C:/docker_tst/eclipse-mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto
得到錯誤:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: rootfs_linux.go:59: mounting "/run/desktop/mnt/host/c/docker_tst/eclipse-mosquitto/mosquitto.conf" to rootfs at "/var/lib/docker/overlay2/d9a7cbcb0f85b195dc5ee2d0999b3df8c84324552f6c45cf218876e9b96ed826/merged/mosquitto/config/mosquitto.conf" caused: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
PS C:\docker_tst\eclipse-mosquitto>
從評論中,解決方案是根據這個答案提供單個安裝文件的絕對路徑。
在基於 Unix 的系統或 ZEDC9F0A5A5A5D57797BF68E37364743831Z 的 Windows 子系統中,您可以通過運行以下命令來執行此操作:
docker run -v $PWD/filename:/path/in/container IMAGE_NAME
但是,根據此答案,Windows 的過程有所不同。
在 PowerShell 中,您可以運行Get-Location
或pwd
以獲取文件所在的當前目錄並將\
切換為/
(正斜杠)。 對於此示例,解決方案是使用以下命令:
docker run -it -p 1883:1883 -p 9001:9001 -v C:/docker_tst/eclipse-mosquitto/mosquito/config/mosquito.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.