きなこもち.net

.NET Framework × UiPath,Orchestrator × Azure × AWS × Angularなどの忘備録

Docker × Ubuntu(on Azure) × Dockerの学習環境を構築してみた

この記事の目的

この記事では、
Dockerの学習環境を構築する準備作業の忘備録
を目的としています。

ゆくゆくは、kubernetesに入門したいと考えての記事になります!
参考)kubernetes実践入門
(Azure Antenna)AKSでコンテナアプリ DockerからKubernetesまで実践入門 - Speaker Deck


本題

Ubuntu端末の入手

Kubernetes、dockerともに初心者の自分が環境を構築するまでの道のりは長い。
まずは、Dockerを動かす環境となるUbuntu端末を設定していきます。
参考の実践入門に従い、AzureにUbuntuの仮想端末を用意します。
AzureでLinux仮想マシンを作成する手順は、公式のクイックスタートを参考にしました。

docs.microsoft.com


f:id:kinakomotitti:20180730235530p:plain
クイックスタートに従い、無事に構築完了。
あらかじめインストールしておいた「Bash on Ubuntu on Windows」を使い、ssh仮想マシンへ接続します。接続方法も、クイックスタートに書かれています。
Bash on Ubuntu on Windowssshコマンドを実行し、作成した仮想マシンにログインできるところまでできたら、マシンの準備は完了です。

★dockerの環境構築

いよいよDockerの準備です。
Dockerのインストール手順は、公式ドキュメントを参考に進めていきます。
docs.docker.com


apt-getをアップデートしたり、HTTPSを使ってリポジトリへの参照を許可する設定を入れたりといろいろしていきます。(Windowsインストーラーだと、ダブルクリック→次へ次へでいけるので、若干不便に感じます。。。)

メモ;わからなかったコマンド
curl -fsSL
・apt-key fingerprint

ドキュメントに書かれているリポジトリの設定が終わり、

	sudo apt-get install docker-ce

コマンドが正常に終了すると、dockerコマンドが使えるようになります。

	docker --version

で、インストールしたDockerのバージョンを確認することができるようになります。また、

	sudo docker run hello-world

とすることで、HelloWorldイメージを実行することができます。

runコマンドを実行することで、Dockerが以下の処理を行ってくれます。
1.Docker HubからイメージをPull(取得)
2.イメージをもとにコンテナを起動

賢いですね(´▽`)


せっかくなので、DockerコンテナでHelloWorld以外のことも試してみました。
参考にさせていただいたサイトです。
とても分かりやすいです!
weblabo.oscasierra.net

apachehttpdを実行し、ブラウザでアクセスできるところまでやってみようと思います。

	sudo docker pull httpd //httpdのイメージを取得
	sudo docker run -d -p 8080:80 httpd

二行目は、httpdのイメージを実行するときに、
(-d)バックグランドで実行する。
(-p)ホストマシンの8080ポートと、コンテナの80番ポートを紐づける。
というオプションを指定しています。

これで、AzureのUbuntu仮想マシンのdockerにhttpdが起動したコンテナが作成されました。
このhttpdにアクセスするためには、AzureのUbuntu仮想マシンの8080ポートにアクセスする必要があります。
デフォルトでは、AzureのUbuntu仮想マシンの8080ポートは閉じているので、Azureポータルの「ネットワーク」設定から、受信ポートの規則に、8080を許可する規則を追加します。

仮想マシンの8080ポートを許可して、http://仮想マシンのIP:8080/でアクセスすることで、「It Works!」がブラウザに表示されます!
わかりやすいドキュメントと、ツールのおかげでするすると進めることができます( *´艸`)

まとめ(というか感想?)

WindowsでDockerを始めようとしたこともありましたが、
Windows10Pro以上のエディションが必要なこと
SSDの容量が心配なこと
がネックとなりDockerを敬遠していました。
しかし、AzureにUbuntu仮想マシンを立てて実行することでそれらが解決できました。
もう少しDcockerでのやれることを知ったうえで、Kubernetesへ入門していこうと思います!