首页 > 解决方案 > Docker -- 如何在启动时将目录挂载为卷(在 MacOS 中)

问题描述

什么是一个非常简单的单行终端命令,可以在每次启动时(在 MacOS 中)将本地目录挂载为 Docker 容器的卷?

标签: macosdocker

解决方案


不明白你的意思。您知道容器不只是自行启动(除非您将使用服务/脚本/cron/run 等)。

您可以使用 -v/--volume 选项添加音量:

docker run -dit --name=FOO -v /Path/On/Host:/Path/In/Container Image

如果您想在启动时使用它,您可能需要一项服务(尽管我不知道它们是否在 mac 上可用)

[Unit]
Description=Foo Bar
After=docker.service
BindsTo=docker.service
Conflicts=shutdown.target reboot.target halt.target

[Service]
Environment=LOCAL_DIR='/Path/On/Host'
Environment=TARGET_DIR='/Path/On/Container'
Environment=IMAGE='YOUR_DOCKER_IMAGE'
TimeoutStartSec=0
TimeoutStopSec=30
Restart=always
RestartSec=10

ExecStartPre=-/usr/bin/docker rm -f Foo_Bar

ExecStart=/usr/bin/docker run -dit --name=Foo_Bar -v $LOCAL_DIR:$TARGET_DIR $IMAGE

ExecStop=/usr/bin/docker stop Foo_Bar 
NotifyAccess=all

[Install]
WantedBy=multi-user.target

推荐阅读