Amazon Linux2 + Dockerで「Welcome to nginx!」
Dockerってなんだろう。そう思いながらも時間とれずにいたので、今回は、実際に動かしながら、Dockerの勉強をしていこう。
どこから始めるべきか、できれば、実際に動かしながら動作を確認して理解していきたい。
そう考え、さくらインターネットのさくらのナレッジの記事を参考に進めてみることにしました。
デモ動作環境として、AWSにサーバを作成して進める手順です。
さくらのナレッジでは、さくらのクラウドで進めていましたので、それでもOK。
Vagrantをずっと使って来たが、DockerでのnginxのWelcomeページ表示は速攻で出来ました。。すご><
Amazon Linux2
今回は、AWSのEC2インスタンス作成で、AMI(AmazonMachineImage)としてAmazonLinux2
を選択しました。
セキュリティグループの修正
- HTTP
- HTTPS
を追加しておきましょう。
インスタンスの作成を完了
あとは、そのままインスタンスを作成して完了です。
作成が完了し次第、アクセスして確認しましょう。
デモサーバ(AWS)へのアクセス確認
SSHログインできることを確認しましょう。
Dockerをインストール
AWSでインスタンスを作成しました。ログインまで出来て、デモ環境の準備はOKです。Dockerを動かすためにセットアップを行います。
yum update
しておきましょう。
$ sudo yum update
基本的にはさくらのナレッジにある通り進めてみる。
yum-utilsとdevicemapper
$ sudo yum install -y yum-utils\
device-mapper-persistent-data\
lvm2
コマンドの改行\
見やすそうなので、それで書きます。
yumのリポジトリ追加
Docker CEをインストールするため、yumのリポジトリを追加します。
$ sudo yum-config-manager\
--add-repo\
https://download.docker.com/linux/centos/docker-ce.repo
docker-ce.repo
確認
$ ls /etc/yum.repos.d/
amzn2-core.repo docker-ce.repo
Dockerインストール
$ sudo yum install docker-ce
読み込んだプラグイン:langpacks, priorities, update-motd
docker-ce-stable | 2.9 kB 00:00:00
docker-ce-stable/x86_64/primary_db | 13 kB 00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ docker-ce.x86_64 0:18.03.1.ce-1.el7.centos を インストール
--> 依存性の処理をしています: container-selinux >= 2.9 のパッケージ: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> 依存性の処理をしています: pigz のパッケージ: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> 依存性の処理をしています: libltdl.so.7()(64bit) のパッケージ: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ docker-ce.x86_64 0:18.03.1.ce-1.el7.centos を インストール
--> 依存性の処理をしています: container-selinux >= 2.9 のパッケージ: docker-ce-18.03.1.ce-1.el7.centos.x86_64
---> パッケージ libtool-ltdl.x86_64 0:2.4.2-22.2.amzn2 を インストール
---> パッケージ pigz.x86_64 0:2.3.4-1.amzn2 を インストール
--> 依存性解決を終了しました。
エラー: パッケージ: docker-ce-18.03.1.ce-1.el7.centos.x86_64 (docker-ce-stable)
要求: container-selinux >= 2.9
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest
インストール失敗しました。
調べて別手順でうまくいきました。
$ sudo yum install --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
インストールの確認
$ docker -v
Docker version 17.03.2-ce, build f5ec1e2
Dockerサービス
Dockerサービスの起動と自動起動登録しておきます。
Dockerサービスを起動
$ sudo systemctl start docker
Dockerの起動確認
active
であることを確認
$ sudo 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 木 2018-05-31 09:31:18 UTC; 5s ago
自動起動の登録をしておく
これでマシン再起動後も自動でDockerサービスが起動します。
$ sudo systemctl enable docker
NginxのDockerイメージで即表示
イメージをダウンロードします。
$ sudo docker pull nginx
ダウンロードしたNginxイメージでコンテナを起動します。
8080
ポートでアクセスします。
$ sudo docker run -d --name nginx-container -p 8080:80 nginx
AWSのセキュリティグループ修正
インバウンドルールに8080を追加しておく。
表示確認
IPアドレス:8080
でアクセスします。
dockerイメージのダウンロードだけでいけました。。
速い。。。
参考
Docker入門(第二回)~Dockerセットアップ、コンテナ起動~
Docker for Centos – Install Instructions Causing Conflicts #20