Memo

メモ > サーバ > 各論: Docker > EC2でDockerを使用する

EC2でDockerを使用する
通常の手順でEC2を作成し、SSHでアクセスできることを確認しておく。 ここではAmazonLinux2を使うものとする。 通常の手順で言語・タイムゾーン・アップデート・開発ツールインストール・メール送信など最低限のものを設定しておく。 ※EC2のIPアドレスは「203.0.113.1」であるとする。 ※AmazonLinux2の場合、DockerはExtrasリポジトリからインストールすることができる。 ※ECSなどAWSのマネージドサービスについては「AWS.txt」を参照。 ■Dockerをインストール EC2(Amazon Linux 2)にDocker CEをインストールしてみる - Qiita https://qiita.com/simis/items/902e18c82f602917ccf2 ※もとは「yum install -y docker」としてインストールすれば良かったようだが、 今は「yum install -y docker-ce」としてCE版をインストールする方が良さそう。 ただしAmazonLinux2ならExtrasリポジトリにdockerがあるので、AmazonLinux2の場合は原則これをインストールすると良さそう。
# amazon-linux-extras install docker -y … dockerをインストール。 # systemctl start docker … dockerを起動。 # systemctl enable docker … dockerの自動起動を設定。 # docker info … dockerの起動を確認。 # docker container run hello-world … hello-worldの起動を確認。 # docker image ls
■一般ユーザでDockerを実行できるようにする 一般ユーザでDockerを実行すると、「Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock」のようなエラーになる。 これはグループを調整することで対処できる。
# groupadd docker … dockerグループを作成。(環境によっては作成済みみたい。) # usermod -a -G docker ec2-user … ec2-userをdockerグループに入れる。これでec2-userがdockerコマンドを実行できる。 # systemctl restart docker … dockerを再起動。(必須。) # exit $ docker info … 上記変更は、再接続後に反映されるので注意。
■Apache+PHPの動作確認
$ docker container run --name php -p 80:80 -d php:8.1-apache … 「php」という名前を付けてApacheの起動を確認。 $ docker image ls $ docker container ls $ docker container exec -it php bash … phpコンテナのターミナルに接続。 # echo '<?php phpinfo();' > index.php … index.php を作成。(初期状態ではviはインストールされていない。) # exit
ブラウザで以下にアクセスし、phpinfoの内容が表示されれば成功。 (コンテンツを何も作成していない場合、「403 Forbidden」が表示される。) http://203.0.113.1/
$ docker container rm -f $(docker container ls -a -q) … いったんすべてのプロセスを終了。 $ docker container ls
■Docker Composeをインストール 【AWS】EC2にDockerとDocker Composeをインストール - ふにノート https://kacfg.com/aws-ec2-docker/ 最新のバージョンは https://github.com/docker/compose/releases/ で確認できる。 今回は検証時最新版の 2.14.2 を使用する。
$ sudo su - # curl -L https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose # docker-compose --version # exit $ docker-compose --version … ec2-userでも実行できることを確認。
■Docker Composeの動作確認 /home/ec2-user/docker/test にPHP環境構築用の Docker Compose を配置するものとする。 起動中のコンテナがあれば、終了させておく。
$ cd /home/ec2-user/docker/test $ docker-compose build $ docker-compose up -d $ docker-compose down $ docker container exec -it php bash # ls -l /var/www/public # exit $ docker container exec -it mysql bash # mysql -u user -p > exit # exit
http://203.0.113.1/ ■参考 AWS EC2インスタンスにdockerとdocker-composeをインストールして簡単なWEBサービスを立ち上げる方法 - Qiita https://qiita.com/y-do/items/e127211b32296d65803a EC2上でDockerのnginxコンテナを動かしてアクセスを確認した - やる気がストロングZERO https://yaruki-strong-zero.hatenablog.jp/entry/ec2_docker_nginx AWS EC2 Amazon LinuxでDocker, Docker Composeをインストールする - Qiita https://qiita.com/shinespark/items/a8019b7ca99e4a30d286 ECSを試す際は以下も参考になるかも。 知識0から Docker 環境を AWS の ECS でデプロイするまで - istyle Tech Blog https://techblog.istyle.co.jp/archives/1652

Advertisement