概要
Azureで仮想マシンを作成しCentOSをインストールします。その後、CentOSにDocker CEをインストールしDockerコンテナを作成します。
0.前提条件
- Azureのアカウントを作成していること
(Azureのアカウントはhttps://azure.microsoft.com/ja-jp/ に移動し、「無料ではじめる」をクリックして作成します) - ターミナルソフト(Teratermなど)をインストールしていること
1.Azure-CLIのインストール
-
https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli?view=azure-cli-latest からOSに対応したOSのAzure-CLIをインストールする。
(本記事ではWindows10を使用して記載致します) -
「I accept the terms in the License Agreement」にチェックを入れて「Install」をクリックする。
-
Azure-CLIのバージョン情報を表示し、インストールされたことを確認する。
> az --version
azure-cli 2.0.70
command-modules-nspkg 2.0.3
core 2.0.70
nspkg 3.0.4
telemetry 1.0.3
Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe'
Extensions directory 'C:\Users\xxxx\.azure\cliextensions'
Python (Windows) 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)]
Legal docs and information: aka.ms/AzureCliLegal
Your CLI is up-to-date.
2.CentOSの仮想マシンを作成する
a.ブラウザ(GUI)から作成する
-
https://azure.microsoft.com/ja-jp/ に移動し「ポータル」をクリックする。
-
「プロジェクトの詳細」にて「サブスクリプション」と「リソースグループ」を選択する。
リソースグループを作成していない場合は下部にある「新規作成」をクリックする。
-
「インスタンスの詳細」にて下記の情報を入力する。
-
「管理者アカウント」にて「認証の種類」を選択し、必須項目を入力する。
-
「受信ポートの規則」にて下記の情報を選択する。
-
「認証に成功しました」と表示されたことを確認する。
その後、下にスクロールして設定した情報が正しければ「作成」をクリックする。
-
端末にインストールされているターミナルソフトを起動する。
-
ターミナルソフトにコピーした「パブリックIPアドレス」を入力する。
(ターミナルソフトの種類によって設定方法が異なります)
-
「ユーザ名」「パスワード」(SSH公開キーで作成した場合は公開鍵認証を実施)を入力してSSH接続を実施する。
(ターミナルソフトの種類によって設定異なります)
-
CentOSのバージョン確認を実施する。
$ uname -a Linux CentOS-Docker 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
b.コマンドで作成する
-
Aureにログインする。
> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
-
Power Shell(またはコマンドプロンプト)に戻り、ログイン情報が表示されたことを確認する。
You have logged in. Now let us find all the subscriptions to which you have access... [ { "cloudName": "AzureCloud", "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "isDefault": true, "name": "無料試用版", "state": "Enabled", "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "user": { "name": "xxxx@xxxx.com", "type": "user" } } ]
-
リソースグループを確認する。
> az group list [ { "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx", "location": "japaneast", "managedBy": null, "name": "xxxx", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": null }, { "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx", "location": "japaneast", "managedBy": null, "name": "xxxx", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": null } ]
-
リソースグループが存在しない場合は下記のコマンドを実行してリソースグループを作成する。
az group create --name <リソースグループ名> --location <地域>
> az group create --name Azure-CLI-Group --location japaneast { "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/Azure-CLI-Group", "location": "japaneast", "managedBy": null, "name": "Azure-CLI-Group", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": null }
-
下記のコマンドを実行して仮想マシンを作成する。
az vm create --resource-group <リソースグループ名> --name <作成する仮想マシン名> --image <OSの種類> --admin-username <ユーザ名> --generate-ssh-keys
> az vm create --resource-group Azure-CLI-Group --name cli-docker-centos --image CentOS --admin-username centoscliuser --generate-ssh-keys
-
コマンド実行後、「- Runnning ...」と表示されるので待機する。
-
仮想マシンが作成されたことを確認する。
SSH key files 'C:\Users\xxxx\.ssh\id_rsa' and 'C:\Users\xxxx\.ssh\id_rsa.pub' have been generated under ~/.ssh to allow SSH access to the VM. If using machines without permanent storage, back up your keys to a safe location. { "fqdns": "", "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/Azure-CLI-Group/providers/Microsoft.Compute/virtualMachines/cli-docker-centos", "location": "japaneast", "macAddress": "xx-xx-xx-xx-xx-xx", "powerState": "VM running", "privateIpAddress": "xxx.xxx.xxx.xxx", "publicIpAddress": "xxx.xxx.xxx.xxx", "resourceGroup": "Azure-CLI-Group", "zones": "" }
-
ターミナルソフトにコピーした「パブリックIPアドレス」を入力する。
(ターミナルソフトの種類によって設定方法が異なります) -
公開鍵認証を実施してSSH接続を実施する。
(ターミナルソフトの種類によって設定異なります) -
ログインできたことを確認する。
-
CentOSのバージョン確認を実施する。
$ uname -a Linux cli-docker-centos 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
3.Docker-CEのインストール
-
依存関係のモジュールをインストールする。
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
Docker-CEがインストールできるようにDocker-CEのリポジトリを追加する。
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
Docker-CEをインストールする。(自動的にDockerの最新版がインストールされる)
$ sudo yum install -y docker-ce
-
Docker-CEがインストールされていることを確認する。
$ docker --version Docker version 19.03.1, build 74b1e89
4.Docker-CEの起動
-
Docker-CEを起動する。
$ sudo systemctl start docker
-
Docker-CEが起動したことを確認する。
$ 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 Sun 2019-08-04 15:53:39 UTC; 1min 16s ago Docs: https://docs.docker.com Main PID: 46620 (dockerd) Tasks: 10 Memory: 40.0M CGroup: /system.slice/docker.service mq46620 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd....
5.Docker-CEでCentOSのコンテナを作成する
-
CentOSのDockerイメージをダウンロードする。
$ sudo docker pull centos Using default tag: latest latest: Pulling from library/centos 8ba884070f61: Pull complete Digest: sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c Status: Downloaded newer image for centos:latest docker.io/library/centos:latest
-
CentOSのDockerイメージがダウンロードされたことを確認する。
$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 9f38484d220f 4 months ago 202MB
-
CentOSのDockerコンテナを作成する。
$ sudo docker run -d --privileged -h centos_test --name centos_container centos /sbin/init 4245d260886b6ba3bbd6f41e3bb7e8fe50fcf73696d2523f2fd03ff89c47fcbf
-
Dockerコンテナ内にあるCentOSのコンソール画面に入る。
$ sudo docker exec -it centos_container /bin/bash [root@centos_test /]#
-
Dockerコンテナ内にあるCentOSに入ったことを確認する。
[root@centos_test /]# uname -a Linux centos_test 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@centos_test /]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@centos_test /]# hostname centos_test [root@centos_test /]# whoami root
最後に
Azureで仮想マシンを作成し、仮想マシン上でDockerを稼働させることができます。これによりAzureの課金が発生してしまいますが、クラウド上で常にDockerを起動させ続けることができます。