![在启动时挂载并启动 Docker](https://linux22.com/image/195992/%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E6%8C%82%E8%BD%BD%E5%B9%B6%E5%90%AF%E5%8A%A8%20Docker.png)
我有一个在 Ubuntu 上运行的本地虚拟机,在启动时,我需要运行两个命令(作为我的用户andreas
):
sudo mount -a
docker-compose up -d
最后一个命令在我的主目录中运行,不能以 root 身份运行,否则 docker 会让我伤心。如何在机器加载时自动运行这两个命令,一个以 root 身份,一个以我身份运行?
谢谢
答案1
以 root 身份运行脚本,并使用sudo
的选项以您的用户身份-u
运行,并使用该选项确保它在登录 shell 中运行(即与您登录时所拥有的环境相同[1])。例如docker-compose
-l
#!/bin/sh
mount -a
sudo -l -u yourusername docker compose up -d
或者,使用su
:
#!/bin/sh
mount -a
su -l yourusername docker compose up -d
[1] 与 X 或 GUI 桌面环境有关的任何内容除外。