如何通过docker-compose挂载主机目录?

时间:2019-07-23 05:22:13

标签: docker docker-compose dockerfile docker-volume

我想知道如何使用docker-compose挂载主机目录。

此刻,我仅使用常规的Dockerfile,并且工作正常。运行容器时,只需在主机上指定路径,再在容器上指定路径。

docker run -d -p 3000:3000 -v ~/path/on/host:/path/on/container my-container

我想使用docker-compose实现此目的,但是我不确定它是如何工作的。我的docker compose在下面。

version: '3'

services:
  my-app:
    build:
      context: .
      dockerfile: ./path/to/Dockerfile

1 个答案:

答案 0 :(得分:0)

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"