Mount volume to Docker image on OSX

后端 未结 2 1352
春和景丽
春和景丽 2020-12-10 06:32

On a Mac, how do you mount a volume to a Docker container?

On my linux box, this is easy. All I need to do is something like -v /src/webapp:/opt/webapp

2条回答
  •  时光说笑
    2020-12-10 07:32

    For folks finding this in the future who want to mount anything other than /Users, there's a script someone made as a gist on github that does the whole process for you and is awesome. Just use this. It saved me a lot of headache of having to keep screwing around with virtualbox. This is tested as of Docker 1.3.0 on my Mac running Yosemite.

    EDIT:

    Now that docker-machine cli has been deprecated in favor or docker-machine, here's how you can do it with docker-machine:

    First, ssh into the docker-machine vm and create the folder we'll be mapping to:

    docker-machine ssh $MACHINE_NAME "sudo mkdir -p \"$VOL_DIR\""
    

    Now share the folder to VirtualBox:

    WORKDIR=$(basename "$VOL_DIR")
    vboxmanage sharedfolder add "$MACHINE_NAME" --name "$WORKDIR" --hostpath "$VOL_DIR" --transient
    

    Finally, ssh into the docker-machine again and mount the folder we just shared:

    docker-machine ssh $MACHINE_NAME "sudo mount -t vboxsf -o uid=\"$U\",gid=\"$G\" \"$WORKDIR\" \"$VOL_DIR\""
    

    Note: for UID and GID you can basically use whatever integers as long as they're not already taken.

    This is tested as of docker-machine 0.4.1 and docker 1.8.3 on OS X El Capitan.

提交回复
热议问题