Docker学習中に躓いたキーワード

f:id:ryoutaku_jo:20190302190943p:plain

【問い】
・デーモンとは何か?
・ポートフォワーディングとは何か?
※答えは最下部

【目次】

【本題】

初心者あるある「専門用語が分からない」

前回の記事でも取り上げた通り、最近 Dockerの勉強をしています。

ryoutaku-jo.hatenablog.com
ryoutaku-jo.hatenablog.com

Qiitaなどインターネットの情報と合わせて
「 Docker/Kubernetes 実践コンテナ開発入門」という本も読んで、
実際にコマンドを実行させながら使っているうちに、大体の概要は理解できました。

ただ、そこに行き着くまでの過程で苦しめられた事があります。
それは、WEB技術に関する専門用語です。

デプロイの時にも苦しめられましたが、 Dockerでも同じく苦しめられました・・・

そこで今回は、 Dockerの解説で出てきた専門用語の中で、
意味が理解できなかったキーワード二つの解説を行います。

デーモンとは

メモリ上で待機している常駐プログラムの事です。

Dockerにおいては、 Dockerデーモンと呼ばれる常駐プログラムがあり、
それが Dockerコマンドによる命令を認識・実行する事で、
コンテナの起動・停止・再起動などの管理を担っています。

ポートフォワーディング

特定のポートへの通信を、指定した機器に向かって送り出す機能です。
「ポート開放」とも呼ばれています。

そもそもポートとは、データの通信を行う為の通り道の様な役割を担っています。
どの通り道を使うかは、「ポート番号」と呼ばれるもので管理されています。

一方で、誰でも簡単に通信が出来てしまわない様に、
初めはポートが閉じられているケースが多いです。

例えば、AWSでEC2のインスタンスを立ち上げた当初も、
他の接続は一切繋がらない様になっています。

そこで必要な処理が「ポートフォワーディング」です。

「ポートフォワーディング」によって、通信を行う為の
通り道を開けてあげる事で、初めて外部との通信が可能になります。

なお、 Dockerに関しても、同様な処理が必要になります。

理由は、 Dockerコンテナが仮想マシンとして動作しているからです。

仮想化によって、 Dockerコンテナは外部からは独立したマシンとして扱えるのですが、
独立してるがゆえに、外部からの通信を受け入れるには、
通信の通り道を作ってあげる必要があります。

なので、ポートフォワーディングによって、ホストマシンのポートと
コンテナのポートを紐付ける事によって、外部から来た通信をコンテナへ転送させて
処理を行う事が可能になっています。

《今日の学習進捗(3年以内に10000時間に向けて)》

就活と Dockerの勉強。

学習開始からの期間 :85日
今日までの合計時間:850h
一日あたりの平均学習時間:10h
今日までに到達すべき目標時間:776h
目標との解離:74h
「10,000時間」まで、

残り・・・「9150時間!」

【答え】
・デーモンとは、メモリ上で待機している常駐プログラム
・ポートフォワーディングとは、特定のポートへの通信を、指定した機器に向かって送り出す機能