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