SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【Docker】入門② Linux(EC2)にDockerをインストールする

今回はDockerのインストールを行います。インストールだけなのでさらっと

いきなりインストールから入るのではなく、なんとなくでも概要を把握してからインストール作業を行うことで分かってくる部分もあるのではないかと思います。

Dockerのインストール

DockerとホストOS

ここではLinux(EC2)環境へのDocker(ツール)のインストールを行います。
OSによって方法は違うので注意。

少し話しておくと、元々はホストのWindows環境にインストールしようかと思っていましたが、WindowsにそのままインストールするにはHyper-Vを有効化する必要があり、私が使用するWindows10 HomeではHyper-Vが有効化できないのです。

Windows10 Homeでもインストールする方法はあり、Docker Toolboxを使用すればよいようです。
これはOracle VM VirtualBoxも同時にインストールし、VirtualBox上にDockerを起動させるようですが私の環境には既にVirtualBoxが存在しているため環境をキレイにするのが面倒になってしまいました。

今はまだAWSの無料枠が残っているからいいけど、今後継続して使うならなにかしら方法を考えないと

下準備

AWSアカウント取得やインスタンス生成の詳細な方法は「AWS」タグの過去記事を参照してください。

私の場合は以前無料枠の範囲内で生成したインスタンスを再利用するので、
インスタンスタイプはAmazon Linuxt2.microです。

EC2インスタンスを起動して、ホストPCからteratermで接続できるようになったらひとまず準備完了とします。
AWSでなくてもLinuxサーバを用意できれば大差はないと思います。

インストール作業

・リポジトリのアップデート
とりあえずインストール前にリポジトリを更新しておきます。

sudo yum update

EC2の場合、レポジトリにDockerパッケージが標準で入っているため(AWS公式より)このような手順になります。
他のLinuxサーバの場合は別途リポジトリへの追加が必要になるかもしれません。

必要なら以下のコマンドのリポジトリ上のパッケージを確認できます。

sudo yum info docker

f:id:wantanBlog:20200129000534p:plain


インストール実行は以下のコマンドでOK。
完了まで少し待ちます。

sudo yum install docker

インストール後は以下のコマンドで一応バージョン確認しておきます。

docker -v

・出力結果

Docker version 18.09.9-ce, build 039a7df

インストール作業自体はここまで。
Linuxも少し分かっていればヘタにWindowsでやるよりも早いかもしれませんね。

動作確認

コマンドコンソール上での確認

まずはコンソール上で動作確認を行います。

さっそくDockerコンテナを起動してみます。

sudo docker container run centos:latest /bin/echo 'hello world'

上記のコマンドを実行し正常に実行されると以下のようなメッセージが表示されます。

Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:latest
hello world

なにをしているかというとまずはコンテナの作成しています。
その際に現在のローカル環境に当該コンテナ(centos)が存在しないため、リポジトリから取得を行っています。

そして、コンテナ上のCentosで/bin/echoにてコマンドを実行しています。
後は通常のLinuxでのコマンド実行と同様です。

最初のコマンド実行で「リポジトリから取得」を行っているので、以降同様のコマンドを実行すれば実行結果のみが出力されるようになります。
もちろん、echo以外のコマンドも実行可能です。

Docker上でNginxを起動する

Nginxはオープンソースのwebサーバです。
webサーバと言えばApacheも有名ですが、Nginxも流行ってきているようなので知っておいて損はないかと

nginx(「エンジンエックス」のように発音[3])は、フリーかつオープンソースなWebサーバである。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されており、HTTP, HTTPS, SMTP, POP3, IMAPのリバースプロキシの機能や、ロードバランサ、HTTPキャッシュなどの機能も持つ。
引用元:nginx - Wikipedia

Dockerイメージのダウンロード

まずはnginxのDockerイメージを公式レポジトリであるDockerHubから実行環境へダウンロードします。

ダウンロード

sudo docker pull nginx

ダウンロードが結果の確認はコンソールの表示を見ていても十分に分かると思いますが明示的に確認する場合には、以下のコマンドでイメージ一覧を出力します。

sudo docker image ls

以下のようにnginxが表示されれば成功しています。
・出力結果

REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 5ad3bd0e67a9 7 days ago 127MB

イメージのダウンロードが完了したので、さっそくnginxを起動します。

sudo docker container run --name webserver -d -p 80:80 nginx

ブラウザから動作確認してみます。
私の場合EC2のIPアドレス(ホスト名)にアクセスを行います。

以下のようなページが表示できればとりあえず疎通確認はOKです。

f:id:wantanBlog:20200130005147p:plain


最後に停止と起動だけやっておきましょう。

コンテナの停止は以下のコマンドを実行します。

sudo docker container stop webserver 

ブラウザからアクセスできくなっていることを確認してみましょう。
また、以下のコマンドで実行中のコンテナがなくなっていることも確認できます。

sudo docker ps

再び起動する場合だけ少し気を付けましょう。
2回目以降の起動は以下のstartコマンドを実行します。

sudo docker container start webserver

これで再びブラウザからアクセスし最初に起動時と同じ画面が表示されればここまでは問題ないでしょう。

エラーが起きたら・・・

上記の作業中に発生したエラー対応記事を追加作成しました。
全てに対応できるわけではありませんがご参考までに

www.wantanblog.com



今回はここまで。
初歩の初歩をやっているうちはなんでも楽しい。