当ページのリンクには広告が含まれています。

AWS

【AWS】EC2にDockerとDocker Composeをインストール

【AWS】EC2にDockerとDocker Composeをインストール
エンジニア
エンジニア
EC2にDockerとDocker Composeをインストールする手順を教えてください。

EC2 (Amazon Linux 2) は簡単にDocker環境を構築できます。

AWS経験5年以上の僕が、その構築手順を詳しくご説明します。

 

本記事の内容

  • EC2へのDockerインストール手順
  • EC2へのDocker Composeインストール手順(システム上の全OSユーザー向け)

構成イメージ:はじめに

EC2にDockerとDocker Composeをインストール

今回、EC2 (Amazon Linux 2)  にDockerとDocker Composeをインストールします。

AWSマネジメントコンソールとSSHクライアントを使用します。

 

EC2にDockerとDocker Composeをインストールする前の準備

EC2とセキュリティグループを作成

事前準備として、EC2とセキュリティグループを作成し、EC2にSSH接続します。

 

EC2作成

EC2はAmazon Linux 2をt2.microで作成、パブリックサブネットに配置しパブリックIPアドレスを付与します。

EC2作成方法については、こちらの記事をご覧ください。↓

関連記事
【AWS】EC2でAmazon Linux 2を構築しSSH接続してみよう
【AWS】EC2でAmazon Linux 2を構築しSSH接続してみよう

続きを見る

 

セキュリティグループの設定

EC2のセキュリティグループで、インバウンドルールに以下が設定されていることを確認します。もし未設定の場合は設定しておきましょう。

  • タイプ:SSH
  • ソース:マイIP

 

EC2にSSHで接続する

SSHクライアントを使用して、作成したEC2にec2-userでSSH接続します。

 

EC2にDockerをインストールする

EC2にDockerをインストール

最初に、EC2にDockerをインストールします。

 

EC2内のパッケージを最新にしておく

EC2内のパッケージが最新ではない場合はupdateしておきましょう。


$ sudo yum update -y

 

updateしたパッケージによっては、OSを再起動したほうが良い場合もありますが、今回は再起動しません。

本記事ではDockerとDocker Composeのインストールを行いますが、それらはOSを再起動せずにインストールを進められるからです。

なお、yum update後のOS再起動の要否はneeds-restarting -rコマンドで確認できますが、本記事では詳細はふれません。

 

Docker Engineパッケージのインストール

amazon-linux-extrasで最新のDockerパッケージをインストールします。


$ sudo amazon-linux-extras install -y docker

 

amazon-linux-extrasとは

  • Amazon Linux 2で使用できる専用のリポジトリを操作するコマンド
  • Amazonが公式サポートしたパッケージをインストールできる
  • PHP、Pythonなど特定のパッケージは、ディストリビューションの標準パッケージより新しいバージョンで使用可能

【公式】Extras library (Amazon Linux 2)

 

sudo yum install -y dockerを実行した場合も、amazon-linux-extrasのDockerパッケージがインストールされるようになっています。

 

インストール後の確認。[20 docker=latest enabled \]と表示されていればインストール完了です。


$ amazon-linux-extras | grep docker
 20 docker=latest enabled \

 

Dockerサービスの起動

次はDockerサービスを起動します。起動成功時のレスポンスは何もありません。


$ sudo systemctl start docker

 

Dockerサービスが起動していることを確認。[active (running)]と表示されていれば正常に起動しています。


$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-06-11 23:45:40 UTC; 5s ago
略

 

Dockerサービスの自動起動を有効化

続いてDockerサービスの自動起動を有効にします。

これにより、EC2再起動後もDockerサービスが自動起動するようになります。


$ sudo systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

 

Dockerサービスの自動起動が有効であることを確認。[enabled]と表示されていればOK。


$ systemctl is-enabled docker
enabled

 

ec2-userにdockerグループを追加

Dockerをインストールすると、OSにdockerグループが自動作成されます。

以下コマンドで確認可能です。


$ grep docker /etc/group
docker:x:992:

 

そのdockerグループにec2-userを追加しましょう。(コマンド成功時のレスポンスはなし)

これでec2-userはsudoなしでdockerコマンドを実行できるようになります。


$ sudo usermod -a -G docker ec2-user

 

いったんEC2からログアウトし、再度EC2にec2-userでSSH接続しましょう。

それ以降の接続では、ec2-userにdockerグループのアクセス権限が付与された状態になります。


$ exit

 

ec2-userでdoker infosudoなしで実行できることを確認します。


$ docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
略

 

docker info実行結果の末尾に、以下が表示された場合は無視してOKです。本記事を進める手順には関係ありません。

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

 

EC2にDocker Compose(docker-compose)をインストールする

EC2にDocker Composeをインストール

EC2にDockerをインストールしたあとに、Docker Composeをインストールします。

 

Docker Composeのインストール

今回はDocker Composeのバージョン 2.4.1 をインストールします。

最新のバージョンはdocker docsの公式サイトから確認できます。

上記ドキュメント内で、[最新安定版] の文字で検索してみてください。

 

Docker Composeは、OSのユーザー単位で(ユーザーのhomeディレクトリ配下へ)インストールする方法もあります。

今回はシステム自体(サーバーの/usr/配下)にインストールします。

 

はじめに/usr/local/lib/配下にディレクトリ/usr/local/lib/docker/cli-plugins/を作成。

このあとの手順でDocker Composeのバイナリファイルを格納します。


$ sudo mkdir -p /usr/local/lib/docker/cli-plugins

 

変数VERにDocker Composeのバージョンを代入します。バージョンの数字は適宜変えてください。


$ VER=2.4.1

 

GitHubにあるDocker Composeのバイナリファイルを、上記で作成した/usr/local/lib/docker/cli-plugins/にダウンロードします。

以下3行をまとめてコピペしてください。


$ sudo curl \
  -L https://github.com/docker/compose/releases/download/v${VER}/docker-compose-$(uname -s)-$(uname -m) \
  -o /usr/local/lib/docker/cli-plugins/docker-compose

 

ダウンロードしたdocker-compose(バイナリファイル)に実行権限を付与します。


$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

 

/usr/bin//usr/local/lib/docker/cli-plugins/docker-composeへのシンボリックリンクを設定します。
(コマンド成功時のレスポンスはなし)


$ sudo ln -s /usr/local/lib/docker/cli-plugins/docker-compose /usr/bin/docker-compose

 

docker-composeコマンドが使用できることを確認。以下が表示されていればDocker Composeインストールは成功です。


$ docker-compose --version
Docker Compose version v2.4.1

 

Docker ComposeはOSコマンドと同じような扱いのため、サービス自動起動の設定は不要です。

 

Dockerを勉強するための教材

Dockerを勉強したい人は、以下の『仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん』がおすすめです。

イラストが多く説明も分かりやすいので、初学者にぴったりの入門書。

ハンズオンを通して、コンテナの仕組みやDockerコマンドを学ぶことができます。

Docker ComposeとKubernetesの解説もあり、それらも実際に手を動かしながら基礎を学習できます。

 

Docker環境をEC2で構築:まとめ

AWSのVPC環境さえ整っていれば、10分くらいでEC2にDockerとDocker Composeをインストールできるのは素晴らしいですよね。

以下の記事では、DockerとDocker ComposeでJenkinsを導入する手順を解説しています。

Docker学習の次のステップとして、ぜひ実施してみてください。

関連記事
【AWS】EC2のDockerでJenkins(Master+Slave)導入
【AWS】EC2のDockerでJenkins(Master+Slave)導入

続きを見る

-AWS