VPS + Docker で トレンド技術を使いこなす 【全4回】 |
---|
VPS + Docker で トレンド技術を使いこなす【 第1回: コマンド1行でアプリが動く Docker 】 |
VPS + Docker で トレンド技術を使いこなす【 第2回: 今日から始めるサーバー運用 / Docker 環境の構築 】 |
VPS + Docker で トレンド技術を使いこなす【 第3回: Docker で複数のアプリケーションを起動して使ってみる 】 |
VPS + Docker で トレンド技術を使いこなす【 第4回: サービス単位でコンテナ環境を管理する 】 |
連載第1回となる前回の記事では、昨今のトレンド技術である Docker がどんなもので、どのような使い方ができるかを簡単にご紹介しました。第2回となる今回は、Docker を自分専用の環境で稼働させることができるよう、「サーバーの構築」→「基本設定」→「Docker 導入」という順番でご紹介します。今回の連載を読み進めることで、普段使用しているクラウドサービスがどのような環境で動いているのか、といったイメージをより具体的にお持ちいただけると思います。
目次
今回のステップの概要
STEP1
サーバー環境としてVPSを利用します。今回はカゴヤ提供のVPSを使い、月額660円で利用できる自分専用サーバーを構築していきます。
STEP2
契約したサーバーに接続し、初期設定などを行います。サーバーを構築した経験のある方は、読み飛ばしていただいても構いません。
STEP3
Docker を導入します。公式ドキュメントに沿って docker コマンドが使用できる状態に設定します。
STEP4
最後に docker コマンドを実行し、動作するかどうかの確認をします。
それでは始めていきましょう。
カゴヤ提供のVPSの利用(1日24円!検証におすすめ)
-
こちらのリンクからKAGOYA CLOUD VPS サービスサイトに飛び、下部に表示されている「お申し込みはこちら」をクリックします。
-
オンラインでのお申し込み の「お申し込み」をクリックします。
-
サービスの利用規約への同意や、サービス利用に必要な個人情報、お支払い情報などの入力を入力します。
(利用規約などをご確認いただき、問題なければ契約手続きを進めてください。こちらはサービス利用の契約なので、契約が完了してもサーバーを作成するまで料金は発生しません。) -
必要情報の入力が完了すると、下記の画面が表示されます。
同時に本登録の手続きのためのメールが届きますので、メールに記載のURLをクリックして本登録を進めます。 -
本登録では「SMS」もしくは「音声電話」の認証を選択できます。
※以下の手順では SMS を利用して認証を進めます。 -
SMS で届いた認証コードを入力します。
-
以上で本登録が完了しました。
(よろしければ簡単なアンケートにもご協力ください。) -
本登録まで順調に完了していれば、登録したメールアドレスにコントロールパネルへのリンクURLと、アカウント名が記載されたメールが届きます。
メールのリンクをクリックすると下記のページが表示されますので、ログイン情報を入力し、コントロールパネルにログインしましょう。
アカウント メールに記載されているアカウント名です。
特に指定していな場合、「vps + 数字 (vps12345) 」のように表記されています。パスワード 契約情報の入力時に設定したパスワードです。 -
ログインに成功すると下記のページが表示されます。
これでサーバーを作成できる準備が整いましたので、次の手順からいよいよサーバーを起動させていきます。
サーバーの起動と接続・初期設定
ログイン用認証キー の作成
以下の手順で「ログイン用認証キー」のペアを作成します。これにより、安全性を確保してサーバーへ接続できるようになります。
-
セキュリティ タブの「ログイン用認証キー」をクリックします。
-
「+ログイン用認証キー追加」をクリックします。
-
ポップアップが表示されるので、認証キーの名前を入力し、「登録」をクリックします。
認証キーの名前はデフォルトで入力されていますが、わかりやすい名前に変更しておいた方が便利です。
また、「備考」の欄は必須入力ではありませんが、認証キーをどんな用途で使うかなど後から確認しやすいメモを残しておくとよいでしょう。「登録」をクリックすると、キーペアの片方のダウンロードが始まります。わかりやすいフォルダを指定して、ダウンロードを完了しましょう。
サーバーの設定内容
-
次にサーバーを起動していきます。
インスタンス タブに移動し、「+インスタンス作成」をクリックしてください。「サーバー」や「インスタンス」という言葉が出てきますが、同じものとして考えてください。違いとしては、「インスタンス」は自分専用に作成された仮想マシンのことで、「サーバー」は仮想マシンやコンピューターの役割を指しています(振る舞いによっては「クライアント」と呼ばれる)。ここでは区別せず、どちらも自分専用の仮想マシンを指すものとします。
-
今回は以下のような設定でサーバーを起動させます。
スペック 1コア/1GB, 20GB OSテンプレート Ubuntu18.0.4 ログイン用認証キー 前段で作成したキーを選択 コンソールのログインパスワード 予測しづらい複雑なものを設定 インスタンス名 用途がわかりやすい名前 最後に料金が「24円/日 660円/月」になっていることを確認し、「インスタンス作成」をクリックします。
-
しばらくすると、コントロールパネルのトップページ「インスタンス一覧」に作成されたサーバーが表示されます。
サーバーへ接続
作成したサーバーへ接続し、初期設定を行います。
カゴヤのVPSサポートサイトににあるSSH接続の項目に詳細な手順の記載があります。
今回はこのページに記載されている「Tera Term」で接続しますが、普段使用されているツールがある場合はそちらをご利用ください(Tera Term のインストールについてはサポートサイトを参考に、あらかじめ完了しておきましょう)。
-
Tera Term を起動し、接続先のサーバー情報を入力します。
「ホスト」の欄に、作成したサーバーのIPアドレスを入力します(○○.○○.○○.○○ のようにIP.v4 の形式で表示されています)。
その他の部分はデフォルトのまま「OK」をクリックします。 -
セキュリティ警告が表示され、接続しようとしているサーバーが安全かどうかを確認されるので、そのまま「続行」をクリックします。
-
ログインのための情報を入力します。
ユーザ名 管理者権限でログインしますので「root」と入力します。 秘密鍵 ログイン用認証キーを作成した際にダウンロードしたファイルを指定します。 赤枠の「…」をクリックすると、参照ファイルを選択できます。
ここでデフォルトでは特定の拡張子のファイルしか選択できない状態になっているので、ファイルが表示されない場合は「すべてのファイル」を選択してみてください。「OK」をクリックします。
-
接続に成功しログインが完了すると、サーバーを操作するための黒い画面が表示されます。(赤枠部分は root でログインしているので「root@v○○.○○.○○.○○」と表示されているはずです。)
以降はこの画面にコマンドを打ち込んで操作を行っていきます。
手始めにサーバーの状態を最新の状態にしておきましょう。
下記コマンドを入力し、Enter を押してください。
# apt update
パッケージが最新の状態に更新されます。
下記コマンドを入力し、Enter を押してください。
# apt upgrade
途中でこのまま続けてもOKか?と聞かれます
[ Y/n ] Y …yesのYを入力して続けてください
少し時間がかかりますが、終了するとコマンド実行前と同様のコマンド受け付けの状態に戻ります。
補足メモ
通常サーバーを管理する際は、 root 権限のまま作業を行うことはありません。管理者権限ではすべてのファイルへのアクセスや書き換えなどが可能であるため、重要なファイルを変更・削除してしまう可能性があります。また、root で直接ログインできる状態も望ましくありません。万が一悪意のある攻撃を受けログインを許してしまった場合、先ほどと同様の理由で完全にサーバーの権限を渡してしまう可能性もあります。
今回の連載では権限やユーザー周りの管理を含めると複雑になってしまうため root 権限で進めていきますが、実運用を検討される際は以下のような sudoユーザーを作成し、ログインを限定するなどの対策を検討しましょう。
ユーザーの追加と sudo 権限の割り当て
# adduser kagoyasudo
kagoyasudo の部分は任意のユーザー名を入力
Enter new UNIX password :
ユーザーのパスワードを設定します。入力した文字は表示されませんが反映されています。
Retype new UNIX password :
パスワード確認のため再入力を要求されます。
…
Full Name [ ] :
Room Number [ ] :
Work Phone [ ] :
Home Phone [ ] :
Other [ ] :
任意でユーザー情報を設定できます。特に必要なければ、空白のまま Enterを押してください。
Is the information correct ? [ Y/n ] Y …問題なければYを入力
これでユーザーを新しく作成できました。
次に作成したユーザーに sudo 権限を割り当てるため、下記のコマンドで sudo グループに所属させます。
# usermod -aG sudo kagoyasudo
sudo で実行できるか試します。まず作成したユーザーでログインするため下記を実行します。
# su kagoyasudo
先ほどまで root と表示されていた部分が ユーザー名に変わります。ここで所属グループを確認します。
(kagoyasudo@v○○.○○.○○.○○ : ~$ groups
所属しているグループ一覧の中に sudo があればOKです。実行できるか下記のコマンドで試しましょう。
$ sudo apt update …実行時にユーザーパスワードが確認されます。
コマンドが実行されれば確認終了です。(先ほど実行したコマンドなので、末尾には “ALL packages are up to date.”と表示されるかと思います。)
最後に root でのログインを禁止します。root権限でログインしなくとも、 sudo によりファイルの書き換えが可能です。
# sudo vi /etc/ssh/sshd_config
vim で設定ファイルが開かれるので該当箇所を変更します。(vim について詳しく学習されたい方は、インターネット上にナレッジが大量にありますので、そちらをご覧ください。)
“i” で Insert(編集)、”Esc” 押下後 :wq と入力すれば上書き保存ができます。
PermitRootLogin no …デフォルトは prohibit-password となっています。
変更後に ssh サービスを再起動します。
# sudo systemctl restart sshd
一度 exit でログアウトし、 root での接続ができない状態になっているか。ユーザー名でログインできるかを確認してみてください。
Docker の導入
続いて今回の目標である Docker の導入を進めていきましょう。Docker 公式が公開しているインストール手順(https://docs.docker.com/engine/install/ubuntu/)に従い進めていきます。インストール後に Docker コマンドが動くことを確認して第2回の連載を終了します。
リンク先のページの Instll using the repository の欄を参考にインストールを開始します。
apt update コマンドはすでに実行しているので、それ以降から入力していきます。基本的にコピー&ペーストでコマンドを実行していけばOKです。
※ 公式ドキュメントではパッケージ管理のコマンドが apt-get であったり、管理者でない場合を想定して sudo が頭に記載されていますが、特に変更せずそのまま実行してかまいません。
# sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common
続けて以下を実行します。
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
“OK” と表示されます。続けて以下を実行します。
# sudo apt-key fingerprint 0EBFCD88
公式ドキュメントと同内容の fingerprint が表示されることを確認し、以下を実行します。
# sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"
Reading package lists . . . Done
と表示されたら、最後のパッケージを更新しインストールを完了します。
# sudo apt-get update
# sudo apt-get install docker-ce docker-ce-cli containerd.io
以上で Docker の導入が完了しました。
公式ドキュメントに従い、初めての Dokcerイメージ “hello-world”からコンテナを起動してみましょう。
※イメージ や コンテナ などの Docker に関する用語は次回の連載で詳しく説明していきます。
# sudo docker run hello-world
何行かの英文が表示されると思いますが、真ん中あたりに “Hello from Docker!” と表示されていればOKです。
今回の docker run コマンドを使うのは初めてのはずなので、初回のイメージを実行をする際は、まずイメージのダウンロードから始まります。ダウンロードしたイメージをもとにコンテナを立ち上げているわけですが、この辺りも次回説明していきたいと思います。
補足メモ
上記の補足メモでは、 root 権限ではなくユーザー権限で管理するのが実用的と説明していますが、割り当てた権限は sudo の実行権限のみです。ユーザー権限でdocker コマンドを実行するためには同様にして docker グループに参加させてあげる必要があります。
docker コマンド実行権限の割り当て
# usermod -aG docker kagoyasudo
上記実行後、再ログインをすることで docker コマンドが実行できるはずです。
次回予告
第3回: Docker で複数のアプリケーションを起動して使ってみる
手順が多かったので、少し大変だったと思います。お疲れさまでした。
次回は Docker の環境は揃ったけど、実際にどう使えば便利なのか?という視点をメインに、Docker の各用語の理解を深めつつ、WEBサーバーやデータベースサーバーなど様々な環境を構築していきます。
仮想環境の便利なところは、他のサービスに干渉しにくいため作っては壊してを繰り返し行えるところです。失敗を恐れる必要が無いので、いろいろなコマンドをとりあえず実行しながら覚えていきましょう。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。
VPS + Docker で トレンド技術を使いこなす 【全4回】 |
---|
VPS + Docker で トレンド技術を使いこなす【 第1回: コマンド1行でアプリが動く Docker 】 |
VPS + Docker で トレンド技術を使いこなす【 第2回: 今日から始めるサーバー運用 / Docker 環境の構築 】 |
VPS + Docker で トレンド技術を使いこなす【 第3回: Docker で複数のアプリケーションを起動して使ってみる 】 |
VPS + Docker で トレンド技術を使いこなす【 第4回: サービス単位でコンテナ環境を管理する 】 |