以无根模式运行 Docker

Roh*_*kur 5 docker

我正在尝试在 ubuntu VM 中以无根模式运行 docker。

  1. 我正在使用 terraform 脚本配置虚拟机。
  2. 我正在使用 terraform run 模块来执行命令和先决条件。
  3. 但是当我在此运行模块中添加 docker 作为无根模式命令时,即使我切换新用户,这些脚本也不会执行。以下是我需要在 terraform run 模块中以另一个用户身份执行的命令。
sudo apt-get install -y uidmap
curl -fsSL https://get.docker.com/rootless | sh
export DOCKER_HOST=unix:///run/user/1000/docker.sock
systemctl --user status docker
Run Code Online (Sandbox Code Playgroud)
  1. 我收到错误“拒绝以 root 用户身份安装 rootless Docker”
  2. 我的目标是使用 terraform run 模块自动执行此操作。

是否可以帮助解决此问题,或者是否有其他解决方法。

提前致谢。

我尝试过切换用户并执行,但这些命令仍然没有执行。

sudo apt-get install -y uidmap
curl -fsSL https://get.docker.com/rootless | sh
export DOCKER_HOST=unix:///run/user/1000/docker.sock
systemctl --user status docker
Run Code Online (Sandbox Code Playgroud)

我想使用 terraform run 模块或任何其他方式自动执行此操作,但唯一的事情是在配置虚拟机后应该执行此操作。

Gui*_*eim -3

阅读脚本https://get.docker.com/rootless,其中显示“此脚本应使用非特权用户运行,并在 $HOME/bin/ 下安装/设置 Docker”

如果您仍然想安装它,那么您只需要学习如何读取 shell 脚本,因为脚本中有这一部分:

# User verification: deny running as root (unless forced?)
if [ "$(id -u)" = "0" ] && [ -z "$FORCE_ROOTLESS_INSTALL" ]; then
    >&2 echo "Refusing to install rootless Docker as the root user"; exit 1
fi
Run Code Online (Sandbox Code Playgroud)