簡體   English   中英

如何使用`docker run`掛載單個文件?

[英]How to mount a single file with `docker run`?

在 docker-compose 中,這工作正常:

  nginx:
    image: nginx:latest
    network_mode: host
    volumes:
      - web_server/local-nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 8080:8080

但是,如果我嘗試使用docker run相同的操作:

$ docker run --network host -p 8080:8080 \
  -v "web_server/local-nginx.conf:/etc/nginx/nginx.conf" \
  nginx:latest

我收到錯誤:

docker: Error response from daemon: create web_server/local-nginx.conf: "web_server/local-nginx.conf"
includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. 
If you intended to pass a host directory, use absolute path.

我也嘗試使用--mount ,結果相同:

$ docker run -p 8080:8080 --network host \
  --mount src="web_server/local-nginx.conf",dst="/etc/nginx/nginx.conf" \
  nginx:latest

docker run -v選項的左側必須是卷名或絕對路徑。 Docker Compose 理解volumes: ,但普通的 Docker 不理解。

您需要在選項中包含當前目錄名稱。 為此使用$PWD環境變量很常見:

docker run ... \
  -v "$PWD/web_server/local-nginx.conf:/etc/nginx/nginx.conf" \
  ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM