因此,我正在考虑使用 AWS 自动设置服务实例。
AWS 允许您在创建实例时运行 shell 脚本。
然而!我遇到了一个小问题。我想在初始 ssh 进入服务器时使用 docker 命令。我不是真正的开发人员,所以很抱歉,如果这是Linux 101东西 (或重复的问题)。
到目前为止,这是我尝试过的:
所以我有一个用于设置防火墙和我们需要的其他零碎内容的初始脚本:
#!/bin/sh
$ sudo ufw allow OpenSSH ApacheSecure
$ echo "y" | sudo ufw enable
这一切都运作良好。然后我的脚本继续安装docker-ce
:
$ sudo apt update
$ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install -y docker-ce
如果我们停在这里,通过 ssh 进入服务器,用户docker
命令会为我们提供通常的Command 'docker' not found
.好的,所以我需要将 docker 添加到当前用户组:
$ sudo usermod -aG docker $USER
$ newgrp docker
登录服务器后手动运行这两个命令时 - 一切都很好。然而,由于我无限的懒惰 - 我不想每次设置服务器实例时都这样做。
我将如何将 docker 命令添加到准备启动的 $USER 中?我尝试了各种方法,但没有成功。我需要$ sudo -i
以 root 权限运行它们吗?
我已经尝试过以上两个$用户以及username
实例创建时指定的。不起作用。
任何支持 DevOps 的建议将不胜感激!