如何使用 docker-compose 挂载主机目录,在 运行 主机时指定“~/path/on/host”,而不是在 docker-compose 文件中
How to mount a host directory with docker-compose, with the "~/path/on/host" to be specified when running the host, not in the docker-compose file
我想知道如何使用 docker-compose 挂载主机目录。
目前我只使用常规的 Dockerfile,它工作正常。当我 运行 容器时,我只指定主机上的路径和容器上的路径。
docker run -d -p 3000:3000 -v ~/path/on/host:/path/on/container my-container
我想使用 docker-compose 来实现这一点,但我不确定下面的 works.My docker compose 是如何实现的。
version: '3'
services:
my-app:
build:
context: .
dockerfile: ./path/to/Dockerfile
此外,我需要在 运行 连接主机时指定 ~/path/on/host,而不是在 docker-compose 文件中指定。
version: '3'
services:
my-app:
build:
context: .
dockerfile: ./path/to/Dockerfile
volumes:
- ~/path/on/host:/path/on/container
ports:
- "3000:3000"
然后您可以使用 docker-compose up -d
开始您的服务。确保首先停止并删除您使用 docker 命令启动的容器,否则会发生冲突。
根据评论进行编辑:
创建一个包含以下内容的 .env 文件:
HOST_PATH=~/path/on/host
并更改您的 docker-compose.yml:
version: '3'
services:
my-app:
build:
context: .
dockerfile: ./path/to/Dockerfile
volumes:
- ${HOST_PATH}:/path/on/container
ports:
- "3000:3000"
我想知道如何使用 docker-compose 挂载主机目录。
目前我只使用常规的 Dockerfile,它工作正常。当我 运行 容器时,我只指定主机上的路径和容器上的路径。
docker run -d -p 3000:3000 -v ~/path/on/host:/path/on/container my-container
我想使用 docker-compose 来实现这一点,但我不确定下面的 works.My docker compose 是如何实现的。
version: '3'
services:
my-app:
build:
context: .
dockerfile: ./path/to/Dockerfile
此外,我需要在 运行 连接主机时指定 ~/path/on/host,而不是在 docker-compose 文件中指定。
version: '3'
services:
my-app:
build:
context: .
dockerfile: ./path/to/Dockerfile
volumes:
- ~/path/on/host:/path/on/container
ports:
- "3000:3000"
然后您可以使用 docker-compose up -d
开始您的服务。确保首先停止并删除您使用 docker 命令启动的容器,否则会发生冲突。
根据评论进行编辑:
创建一个包含以下内容的 .env 文件:
HOST_PATH=~/path/on/host
并更改您的 docker-compose.yml:
version: '3'
services:
my-app:
build:
context: .
dockerfile: ./path/to/Dockerfile
volumes:
- ${HOST_PATH}:/path/on/container
ports:
- "3000:3000"