HTML/CSS/JavaScriptだけを使ったWebサイトなら、S3で安価に構築して公開する。
S3のレイアウトが変更されたので改めて新レイアウトでWebサイトホスティングの手順を公開します。
目次
テスト用のサイトを作成する
S3ではトップページと、エラーページが必要なため、テスト用でindex.htmlとerror.htmlを作成します。
以下をコピーしてサクラエディタなどで作成しましょう。
index.html
<html> <head> <meta charset="UTF-8"> </head> <body> Hello S3 </body> </html>
error.html
<html> <head> <meta charset="UTF-8"> </head> <body> Error! </body> </html>
index.html, error.htmlをアップロードする
S3のTOP画面を表示してバケット名を選択する。
[アップロード]をクリックする。
アップロードダイアログが表示されるので、[ファイルを追加]をクリックするか、ドラッグアンドドロップでアップロードするファイルを選択します。
アクセス許可を設定する画面です。
以降の設定はすべてデフォルトのままでよければ[アップロード]を押してアップロードを開始します。
今回は他の設定も説明するのでデフォルトのままで[次へ]を選択します。
プロパティを設定画面です。
ココではストレージクラスや暗号化の要否などが設定可能です。
デフォルトのままで[次へ]を選択します。
アップロードの確認画面です。
[アップロード]を押してファイルのアップロードを開始します。
index.htmlがアップされているのを確認します。
同様の手順でerror.htmlをアップロードします。
以下のようになればOKです。
Webサイトホスティングを設定する
index.htmlとerror.htmlを表示するように設定しましょう。
[プロパティ]→[static website hosting]を選択して以下を設定します。
- 「このバケットを使用してウェブサイトをホストする」を選択
- インデックスドキュメント: index.html
- エラードキュメント: error.html
さてまだ設定途中ですが、一度index.htmlにアクセスして表示を確認してみましょう。
index.htmlを選択して右側のプロパティから[リンク]に記載されているURLをクリックしてアクセスしてみましょう。
すると「This XML file does not appear to have any style information associated with it. The document tree is shown below.」と表示され、アクセス拒否されます。
これはバケットに読み込み許可のアクセス権限がないためです。
バケットに読み込み許可の権限を設定する
それではバケットに読み込み許可の権限を設定します。
バケット名から[アクセス権限]タブ→[バケットポリシー]を選択します。
テキストエリアに以下を張り付け[保存]を押します。
"examplebucket"は自分のバケットのバケット名を設定します。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AddPerm", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::examplebucket/*"] } ] }
設定が完了したら再度index.htmlを表示してみます。
Hello S3と表示されればOKです。
以上です。
AWSを登録したら最初にやりたい。IAMで多要素認証やアクセス権限などの5つの設定
AWSを登録したら一番初めにやってほしいのが多要素認証(MFA:Multi-Factor Authentication)の設定です。従来のユーザ名とパスワードの他にもう一要素(例えばワンタイムパスワード)を入力してログインする手法です。AWSではデフォルトでは設定されていないので、Identify and Access Management(通称IAM)で設定する必要があります。所要時間は30分から1時間程度です。たったそれだけの時間でMFAを設定できて、セキュリティも向上するならやらない選択肢はありません。またIAMは新規ユーザを作る際にも覚えておきたいサービスなので、この機会に一度触ってみてください。
目次
セキュリティステータスの設定
AWSマネジメントコンソール画面の左上の[サービス]→[IAM]を選択してIAMのダッシュボード画面を表示しましょう。
画面を表示するとセキュリティステータス一覧が表示されています。これらを1つずつ設定していきます。(はじめからすでに「ルートアクセスキーの削除」はチェックが入っています。)
ルートアカウントのMFAを有効化
早速ルートアカウントにMFAの設定を行います。
[ルートアカウントのMFAを有効化]→[MFAの管理]を押します。
すると[MFAデバイスの管理]ダイアログが表示されます。
- 仮想MFAデバイス:スマホにMFAアプリをインストールして認証コードを生成してログインする方法です。
- ハードウェアMFAデバイス:仮想MFAデバイスと同様認証コードを生成してくれます。違うのは物理デバイスを別途購入する必要があります。
AWSがサポートしている物理デバイスはこちら。
仮想MFAデバイスをスマホにインストールして準備してほしい旨が記載されています。仮想MFAのアプリはいくつかあるようですが、以下が分かりやすくてオススメです。
- Authy
スマホにインストールして設定が完了したら[次のステップ]を押します。
MFAデバイスの管理画面で、スマホにインストールした仮想MFAデバイスから認証コード6桁を生成して2回入力します。Authyの場合は6桁の認証コードを生成したあと、1分後にまた6桁の認証コードが生成されます。それらを入力した後[仮想MFAの有効化]を押してください。
成功すると以下のようにMFAデバイスとしてスマホが関連付けらえれた旨が表示され、MFAの設定は完了です。以降ルートアカウントでログインする際には毎回関連付けたスマホで認証コードを1コ生成してログインする必要があります。
スマホを亡くすとルートアカウントでログインできなくなります。AWSの解約はルートアカウントでしかできないので、失くしたり、他のスマホに変えた際に誤って捨てたりしないように注意してください。
万が一スマホを亡くしてAWS解約ができなくなってしまった場合は、AWSサポートに電話してMFAの設定を解除してもらいましょう。
個々のIAMユーザの作成
ここでは新規ユーザを作成します。AWSを他のインフラメンバーや開発メンバーに公開して一緒に使う場合などはここで新規アカウントと権限を設定して生成します。
以下画面から[ユーザ追加]を押して新規ユーザアカウントを作ってみます。
ユーザ追加画面で以下項目を入力して、[次のステップ:アクセス制限]を押します。
- ユーザ名:任意。アクセス権限が同一でよいなら下にある[別のユーザの追加]をクリックして複数ユーザを同時に作ることが可能です。
- アクセスの種類
- パスワード
- 自動生成パスワード:ランダムなパスワードを生成したい場合。
- カスタムパスワード:最初から決まったパスワードを設定する場合。
- パスワードのリセットが必要:開発メンバー用に生成する場合、上記を自動生成パスワードにして、ココもチェックしておきます。アカウントの作成が完了したらユーザ名と自動生成されたパスワードを開発メンバーに連絡して、ログインしてもらい新しいパスワードを設定してもらいましょう。
ユーザのアクセス制限を設定します。
グループを作成しておけば、新規アカウントをグループに紐づけるだけで、そのグループのアクセス権限が設定されるので楽です。今回は「グループを使用してアクセス許可を割り当て」で作成しますのでスキップします。
[既存のポリシーを直接アタッチ]を選択して[フィルター]のテキスト入力欄に"Admini"と入力します。すると一番上に[AdministratorAccess]が表示されるのでそこにチェックを入れます。ポリシーの設定が完了したら[次のステップ:確認]を押します。
※ AdministraterAccessはAWSの全権限を与えるポリシーです。本来であればセキュリティを強固に保つために、利用するサービスだけにチェックするべきです。今回は説明のためだけに設定しています。
アカウント作成前の確認画面です。
問題なければ[ユーザの作成]を押してください。
今回作成したユーザ情報をCSVでダウンロードしたり、Eメールで送信することができます。開発メンバーに送信したい場合はココから送信すると楽ですね。
[閉じる]を押してIAMのダッシュボード画面に戻ります。
グループを使用してアクセス許可を割り当て
グループ生成します。先ほどの個々のIAMユーザの作成でグループを作成している場合は、すでにチェックが付いていると思いますのでスキップしてください。
では[グループの管理]を押してグループを生成します。
[新しいグループの作成]を押しましょう。
グループ名を設定し、[次のステップ]を押します。
グループ名:任意。
グループに紐づけるポリシーを設定します。
フィルタのテキスト入力欄に"Admini"と入力してポリシーから[AdministratorAccess]にチェックを入れて[次のステップ]を押します。
※ AdministraterAccessはAWSの全権限を与えるポリシーです。本来であればセキュリティを強固に保つために、利用するサービスだけにチェックするべきです。今回は説明のためだけに設定しています。
グループ作成前の確認画面です。問題ないか確認して[グループの作成]を押します。
グループのTOP画面に戻り先ほど作成したグループ名が一覧に表示されていること確認してください。
IAMパスワードポリシーの適用
アカウントのパスワードポリシーを設定します。簡単なパスワードはブルートフォースアタックで簡単に突破されてしまいます。ここでパスワードポリシーを事前に決めておいて、ユーザにポリシーに合ったパスワードを設定してもらいましょう。
[パスワードポリシーの管理]を押します。
パスワードポリシー画面では、パスワードの最小長や、大文字小文字の必須チェックなど、社内のセキュリティに即したパスワードポリシーを設定してください。
Security Token Serviceリージョンは、東京以外使うことがなければ無効化しておくことをオススメします。
新規アカウントでログイン
さてIAMダッシュボードに表示されているセキュリティステータスはすべてチェックマークになったでしょうか。
ルートアカウント以外でログインする場合は、ログインするサイトが違うので注意が必要です。
IAMダッシュボードの[IAMユーザのサインインリンク]のURLをコピーしてブラウザのお気に入りに入れておきましょう。
それでは右上から一度サインアウトして新規アカウントでログインしてみてください。
新規アカウント用のログインページはルートアカウントのログインページとデザインが異なり以下のような画面です。
ログインに成功して、AMSマネジメントコンソールの画面が表示されれば成功です。
IAMの設定は以上です。お疲れさまでした。
S3でバケットを作成する
AWSのS3の画面デザインが大幅に変わりましたね。
新しいデザインでS3の基本的なことを学びましょう。
目次
S3にバケットを作成する
AWSのホーム画面から上部メニューから[サービス]→[S3]でS3画面に行きましょう。
S3画面にきたら[バケットを作成する]からバケット作成画面へ行きます。
以下を入力して左下の[作成]ボタンを押しましょう。
バケットの作成画面です。
バケット名:一意のもの。またSSL対応するなら.(ピリオド)は入れないようにしましょう。
リージョン:特になければアジアパシフィック(東京)で。
バケットの作成が完了するとS3画面に先ほど作成したバケット名が表示されます。
バケットにファイルをアップロードする
作成したバケット名をクリックしてバケットの中に入ります。
[オブジェクトタブ]→[アップロード]でアップロード画面へ。
[ファイルを追加]を押すか、ドラッグアンドドロップでファイルを追加しましょう。
例ではtext.txtをアップロードしてみました。
アップロードが完了するとこのように追加されます。
また、アップロードしたファイルをクリックすると詳細画面に遷移し、そこの[ダウンロード]からダウンロードすることができます。
S3の基本的な内容は以上です。
IntelliJ IDEAのインストール手順
IntelliJ IDEAが最近注目を浴びていますね。有償版UltimateのPHPStromやWebStromが使いやすいとかなんとか。あとはGrails3をサポートしているのがIntelliJだけみたいですね。使ったことないですけど。
最近はSublimeTextやATOMを使っていたのですが、毎回同じものを入れているので正直最初から入ってた方が楽だなぁって思ったり。。。
やっぱ統合環境って一発インストールするだけである程度なんでもできるから楽ですよねー。
eclipseはUIが分かりづらいし重いし。。。というわけでIntelliJ IDEAをまずは入れてみました。こいつはJavaも対応しているし軽くて使いやすいならeclipseから移動しようかなぁと思ってます。
今回はまずはインストールまで紹介します。
目次
IntelliJ IDEAのダウンロード
まずはJetBrainsのサイトからIntelliJ IDEAをダウンロードしましょう。以下からアクセスして右上の[Download]を押してください。
IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains
無償版と有償版が選べます。今回は無償版をダウンロードします。左のCommunityの[DOWNLOAD]を押しましょう。
以下画面でしばらく待つと自動的にダウンロードが始まるので、保存先を選んでダウンロードしてください。
IntelliJ IDEAのインストール
IntelliJ IDEAをダウンロードしたらexeを実行しましょう。すると以下画面になるので[Next]を押します。
インストール先の設定です。そのままで[Next]を押します。
デスクトップにショートカットを作成するかと、紐づける拡張子を選択します。またJREをまだインストールしてない場合は、JetBrainsのJREをインストールするか選択できます。
よく分からなければ以下のようにすればよいと思います。(32bitか64bitかは気にしたほうがいいですが。。。)
ここはそのままで[Next]を押しましょう。
インストールが始まるのでそのまま待ちます。
インストール完了画面です。そのままIntelliJ IDEAを起動する場合はチェックを入れて[Finish]を押しましょう。
IntelliJ IDEAの初回起動
初回起動時に表示され鵜画面です。IntelliJ IDEAの別バージョンをインストール済みの場合、以前の設定をインポートするか聞かれますが、初めてインストールする場合は必要ないので下の方を選んで[OK]しましょう。
UIの色を選択します。好きな方をどうぞ。私は右の黒い色にしました。
インストールするツールを選択します。特に変更する必要はありません。人によってはSVNを使わないのでチェックを外したりなどはありますね。[Next Featured plugins]を押しましょう。
ここはそのままで[Start using IntelliJ IDEA]を押しましょう。(ぶっちゃけ何の設定か分かりません。中で使うエディタですかね。)
そのままで待ちましょう。
Ansibleでnginxを簡単インストール
前回Amazon LinuxにAnsibleをインストールしてpingを送信するところまでやりました。今回は続きですのでAnsibleをインストールしていない人はまずは前回のインストールから実施してください。
Amazon LinuxでAnsibleを簡単インストール~ping送信まで - KAROUSHI -Japanese Engineer Blog-
今回はAnsibleでNginxをインストールしてみようと思います。これができれば環境構築のたびにインストールコマンドを繰り返す必要がなくなります。
目次
Ansible実行ユーザの用意
実行ユーザの作成
まずはAnsibleでログインするためのユーザを作成しましょう。
ログインできれば何でもいいので、すでにログインユーザがある場合は読み替えてください。
$ sudo useradd ansible $ sudo passwd ansible Changing password for user ansible. New password: <任意>(今回はpasswd) BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully.
BAD PASSWORDと怒られますが気にしない。
実行ユーザのsudo権限付与
sudo権限でyumなどを実行する必要があるため、権限を付与しましょう。
以下コマンドを実行して★の行を追記してください。
$ sudo visudo ----------ファイルの中身---------- # Defaults specification Defaults:ansible !requiretty ★ ## Allow root to run any commands anywhere root ALL=(ALL) ALL ansible ALL=(ALL) NOPASSWD:ALL ★
ユーザパスワードログインの許可
Amazon Linuxではデフォルトでユーザのパスワードログインができないようになっているので許可しておきましょう。
以下PasswordAuthenticationのnoをyesに変えましょう。設定を変更したらsshdを再起動するのを忘れずに。
$ sudo vim /etc/ssh/sshd_config PasswordAuthentication no →PasswordAuthentication yes $ sudo service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
ユーザログインの確認
最後にansibleでログインできることを確認しましょう。パスワードは先ほど作成した時に入力したものです。(今回はpasswd)
$ ssh ansible@localhost ansible@localhost's password: $ exit
プレイブックでNginxをインストールする
インベントリファイルの作成
Ansibleでは接続先情報をインベントリファイルに記載します。
インベントリファイルに複数のサーバ情報を記述する際に便利な記載方法があるが今回は説明しません。
今回は自サーバに接続するのでlocalhostと先ほど作成したansibleユーザの情報です。
$ mkdir -p ~/samplebook $ cd samplebook/ $ vi hosts.yml ----------中身---------- [localhost] localhost [all:vars] ansible_ssh_user=ansible ansible_ssh_pass=passwd
プレイブックの作成
ようやくプレイブックの作成です。今回行っているのは以下です。
$ vim main.yml ----------中身---------- - hosts: all become: yes tasks: - name: Nginxインストール yum: name=nginx state=latest - name: Nginx起動 service: name=nginx state=started enabled=yes - name: Nginxの起動確認 shell: ps aux | grep nginx register: ps_result changed_when: false - debug: var=ps_result.stdout_lines when: ps_result | success
プレイブックの実行
これで準備完了です。作成したインベントリと、プレイブックを指定したAnsibleコマンドを実行し、Nginxをインストール&起動しましょう。
$ ansible-playbook -i hosts.yml main.yml PLAY [all] ********************************************************************* TASK [setup] ******************************************************************* ok: [localhost] TASK [nginxインストール] ************************************************************* ok: [localhost] TASK [nginx起動] ***************************************************************** ok: [localhost] TASK [nginxの起動確認] ************************************************************** ok: [localhost] TASK [debug] ******************************************************************* ok: [localhost] => { "ps_result.stdout_lines": [ "root 4374 0.0 0.0 58084 1016 ? Ss 14:14 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf", "nginx 4376 0.0 0.3 58456 3932 ? S 14:14 0:00 nginx: worker process ", "root 8086 0.0 0.2 113084 2776 pts/3 S+ 16:21 0:00 /bin/sh -c ps aux | grep nginx", "root 8088 0.0 0.1 110460 2020 pts/3 S+ 16:21 0:00 grep nginx" ] } PLAY RECAP ********************************************************************* localhost : ok=5 changed=0 unreachable=0 failed=0
Nginxの画面確認
最後にhttp://
Amazon LinuxでAnsibleを簡単インストール~ping送信まで
今までLinux構築手順書を書いて、そこからコピー&ペーストして実行。。。というのを繰り返していました。それがChefやAnsibleなどの構成管理ツールの登場により従来のテキストエディタやエクセルで手順書を作成するというものから、構成管理ツールで手順を作成、実行。完成したらあとは配布すれば全く同じ環境ができるので楽です。
日本では多少歴史の長いChefが圧倒的シェアを誇っているようですが、使っている技術者に聞くとかなり学習コストが高いとのこと。どちらがよいか調べてみると後発のAnsibleがChefの悪いところが改善されてだいぶ使いやすくなり、学習コストも低いとこのことなので試しに使ってみました。
今回はAWS EC2のAmazon Linux上でAnsibleをインストールし、簡単なサンプルを動作させるところまで説明します。
これを読んでAnsibleに興味を持ってもったらぜひ現場で使いましょう!そして面倒で手間のかかる手順書作成やレビュー作業を止めて、作業時間を減らして少しでも早く帰りましょう!
目次
Ansibleをインストールする。
Amazon Linuxにはpipが初めから入っているのでそれでインストールします。
Amazon Linux以外の自前の環境でpipが入ってない場合は、easy_installでpipを入れてください。(え?easy_installも入ってないだって!?)
$ sudo pip install ansible
一応バージョンを確認してみると、2.2.0.0が入ってる模様。
$ ansible --version ansible 2.2.0.0 config file = configured module search path = Default w/o overrides
ちゃんと応答が返ってきました。これでインストール完了です。
わーすっごい簡単!
localhostや他サーバへpingを打つ!
まずは初歩です。自分自身にpingを打ってみましょう。
$ ansible localhost -m ping [WARNING]: Host file not found: /etc/ansible/hosts [WARNING]: provided hosts list is empty, only localhost is available localhost | SUCCESS => { "changed": false, "ping": "pong" }
WARNINGが出ていますが最初は気にしないでください。
今回はSUCCESSの文字が出ているのでlocalhost(自分自身)に対してpingが通っていることが分かります。
次はでたらめなIPに対してpingが通るか確認してみましょう。すると。。。
$ ansible 10.20.30.40 -m ping [WARNING]: Host file not found: /etc/ansible/hosts [WARNING]: provided hosts list is empty, only localhost is available [WARNING]: No hosts matched, nothing to do
とWARNINGが表示され、"ホスト名がマッチしなかったから何もしないよ"と表示されてしまいます。
えーじゃぁ自分以外のところにはどうやったらpingを送信できるんだ!
答えは/etc/ansible/hostsに書きます。
ですが現時点で存在しないので、まずはディレクトリとファイルを作成します。
$ sudo mkdir -p /etc/ansible/ $ sudo vim /etc/ansible/hosts [test] 172.10.1.1
わざと存在しないサーバのIPアドレス(172.10.1.1)にしました。
ではtestに対してpingを送信してみましょう。
$ ansible test -m ping 172.10.1.1 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 172.10.1.1 port 22: Connection timed out\r\n", "unreachable": true }
ちゃんと172.10.1.1にpingが送信されています。ただ、存在しないサーバなので"UNREACHABLE"(未到達)と表示されました。これは想定通りの動作なので問題ありません。
もしも複数サーバにpingを送信したい場合は先ほどのhostファイルにIPアドレスを追加すればOKです。
【例1】 [test] 172.10.1.1 172.10.1.2 【例2】 [test1] 172.10.1.1 172.10.1.2 [test2] 172.10.2.1
Windows10でDocker Toolboxを使って15分でコンテナ(マシン)を準備する
Windowsを使っているとLinux環境が急にほしくなる時があります。そんなとき今までVirtualBoxでVM環境を作ってVMマシンを立ててOSを
インストールして。。。ということを毎回やっていたのですが、すっごい時間がかかるんですよね。。。
CentOS minimumインストールでも短くて1時間くらいかかってました。
これがDockerとDocker ToolBoxの登場で一気に短くなりました。またそれだけではなく公式で公開されているコンテナを利用することで、Webサーバが既にインストール済みのコンテナで作ることができます。
つまり、CentOSのコンテナを作って起動して、ログインしてWebサーバのソフトウェアをインストールして、、、という作業が不要になり、Webサーバインストール済みのコンテナを呼び出し起動するだけで構築ができます。
他にも特徴はいろいろありますが、とにかくVMより今はコンテナが注目されているんだなーくらいに思ってください。
では早速環境を作って触ってみましょう。
目次
前提環境
OS:Windows10 64bit
Windows版Docker Toolboxのインストール
公式サイトからDocker Toolboxをダウンロードします。
今回はWindowsなので右のダウンロードボタンを押してください。
https://www.docker.com/products/docker-toolbox
DockerToolbox-1.12.2.exeをクリックしてダウンロードを開始します。
ダウンロードが完了したら落としたファイルをクリックしてインストールを開始しましょう。
以下のようなWelcome画面が表示されます。Nextを押します。
インストール先を指定します。デフォルトで問題ないのでNextを押します。
コンポーネントを選択します。デフォルトで全部選択されています。そのままでNextを押します。
追加オプションを指定します。これもデフォルトのままでよいです。Nextを押します。
インストール前の確認画面です。Installを押してインストールを開始しましょう。
インストール中です。少々待ちましょう。
インストール完了画面です。そのままFinishを押しましょう。
Docker Quickstart Terminalをクリックしましょう。するとデフォルトのVMを作ってDockerコンテナを1つ自動で作成する処理が開始されます。ちょっと時間がかかります。カップラーメンかコーヒーでも作って飲み食いしながら待ちましょう。
(途中なぜかWaiting for an IP...と表示されたところで止まりましたが、Enterを押したら処理が開始されました。)
完了するとクジラのマークが出現します。
以下コマンドを打つとdefaultコンテナができていることが確認できます。
hoge@DESKTOP-0LCRDL8 MINGW64 ~
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.12.3
またOracleVM VirtualBoxを起動してみましょう。デスクトップにショートカットアイコンがあればそれをクリック。なければWindowsスタートから起動しましょう。
以下のようにDefaultというVMマシンが1つ作成されていることを確認してください。ここでDockerコンテナが動いています。
Dockerが正常に動作するか確認しましょう。以下コマンドを打ってください。
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
上記のように表示されればOKです。
以上です。