そのため、AWS を使用してサービスインスタンスを自動的にプロビジョニングすることを検討しています。
AWS では、インスタンスの作成時にシェルスクリプトを実行できます。
しかし!小さな問題が発生しました。サーバーの初期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を実行すると、userdocker
コマンドは一般的な.OKを提供するCommand 'docker' not found
ため、現在のユーザーグループにdockerを追加する必要があります。
$ sudo usermod -aG docker $USER
$ newgrp docker
サーバーにログインした後にこれら2つのコマンドを手動で実行すると、すべて正常です。しかし、私の無限の怠惰なので、サーバーインスタンスを設定するたびにこれを実行したくありません。
開始する準備ができた $USER に docker コマンドを追加するにはどうすればよいですか?さまざまな方法を試しましたが、成功しませんでした。$ sudo -i
root権限で実行する必要がありますか?
上記の両方を試しました。$userusername
インスタンスの作成時に指定されます。動作しません。
DevOpsサポートに関するアドバイスをいただきありがとうございます!