【ふくだ学習録】Docker入門 part5【24日目】

# ふくだ学習録とは？
ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。

### 読了した本
[データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]](https://www.amazon.co.jp/dp/4774158062/ref=cm_sw_r_tw_dp_U_x_FPphEbQFPPQRM )
[ゼロから作るDeepLearning](https://www.amazon.co.jp/dp/4873117585/ref=cm_sw_r_tw_dp_U_x_y3UiEbF3P6EG7)
[PHPフレームワーク CakePHP 3入門](https://www.amazon.co.jp/dp/4798048577/ref=cm_sw_r_tw_dp_U_x_.YIjEbS1K4JY2)
[SQLアンチパターン](https://www.amazon.co.jp/dp/4873115892/ref=cm_sw_r_tw_dp_U_x_XlokEbJQK2N7P )

### 今読んでいる本

[Docker入門](https://www.amazon.co.jp/dp/480071091X/ref=cm_sw_r_tw_dp_U_x_xVlmEbN8ZTHZK)

# Docker入門

### pullサブコマンド
Dockerイメージをレジストリから取得するコマンド。
レジストリを指定しない場合はDockerHubが、スキームとレジストリのポート番号を指定しない場合はTCP４４３番がデフォルトで指定される。

### 信頼性の高いイメージを探すには？
searchサブコマンドの-sオプションを使用すると、指定した星数以上のものでソートできる。

### AUTOMATEDとは？
GitHubと連携したリポジトリかどうかを示しているもの、searchコマンドでイメージを検索しているときに表示される。

### ブロックI/Oとは？
入出力をやっている最中は他の処理を進めないで入出力が終わるのを待ってるI/Oのこと。
ここら辺を理解するために、ちょっとLinux（Unix）においてのファイルI/Oについて勉強する。
[Linux におけるファイル I/O の基礎](https://itkq.jp/blog/2017/05/10/linux-file-and-io/)

#### スペシャルファイルとは？
ファイルとして表現されたカーネルオブジェクト。
Linuxでは、スペシャルファイルとしてデバイスノード・名前付きパイプ・ソケットに対応している。

#### デバイスノードとは？
≒デバイスのこと。ただし必ずしも物理的なデバイスだけを指す訳ではなく、ソフトウェアのことなども示すことがある。

#### 名前付きパイプ
FIFO とも呼ばれ、プロセス間通信 (IPC) に使われるファイル。

#### Unixにおけるディレクトリ
単にファイル名と対応する inode 番号のリストを保持するもの。
ディレクトリが保持するファイル名をディレクトリエントリ、またファイル名と inode の対応をリンクと呼ぶ。

**ハードリンク**
複数のリンクが同じinode番号を指すことも可能である。複数リンク間で、どのリンクが「主」や「元」という概念はなく、すべてのリンクは平等に扱われる。このようなリンクをハードリンクという。

**シンボリックリンク**
シンボリックリンクは、ファイルシステムがマッピングするものではなく、実行時に解釈される、より上位で処理されるポインタ。 実際には、ディレクトリエントリ追加ではなく、特殊な型を持つ専用ファイルである。 この専用ファイルは、他のファイルのパス名を格納するもので、これをシンボリックリンクのターゲットという。シンボリックリンクのパス名は、実行時にカーネルにより参照先へ置換される

#### キャラクタデバイス,ブロックデバイスとは？
Unixのデバイスノードの主な分類。

**キャラクタデバイス**
キャラクタデバイスは文字通り1文字ごとのやりとりを行います。キャラクタデバイスは少量のやりとりに向いており，キーボードなどがキャラクタデバイス。

**ブロックデバイス**
ブロックデバイスはデータをある一定の塊(ブロック)としてやりとりを行います。ブロックデバイスは大量のやりとりを行うのに向いています。例えば，ハードディスクのような機器はブロックデバイス。

[デバイスとは？](https://begi.net/read/base/17.html)

#### 

### シークとは？
物理的な駆動部分のあるコンピュータの記憶装置（FDD、MOやHDD、CD・DVDなどの光ディスク）において、ヘッドまたはピックアップレンズが、書き込み・読み取りの目標位置まで移動すること。

[シーク (コンピュータ)](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%BC%E3%82%AF_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF))

### プラッタとは？
ハードディスクドライブやフロッピーディスクと呼ばれる磁気ディスク装置の、平滑な円盤状の記録用部品のこと。

[プラッタ](https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%A9%E3%83%83%E3%82%BF)

### NUMAとは？
NUMA (Non-Uniform Memory Access) は、共有メモリ型マルチプロセッサコンピュータシステムのアーキテクチャのひとつ。

[CPUを複数持つアーキテクチャNUMAとnumactlの説明](https://qiita.com/tomo0/items/5352b8ceb6ccb70390c8)
[メモリバスという単語について](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11196643576)

### TTYとは？
標準出力の接続先デバイス事。または標準入出力となっている端末デバイス(制御端末、controlling terminal)の名前を表示するUnix系のコマンド。元来ttyとはteletypewriter（テレタイプライター）のことを指す。

[ttyとかptsとかについて確認してみる](https://qiita.com/toshihirock/items/22de12f99b5c40365369)
[ttyについて ttyやptsってなんぞ？](https://takuya-1st.hatenablog.jp/entry/20101024/1287947368)

### Dockerのボリュームについて詳しく
データを永続化させるための場所のこと。
コンテナは破棄するとデータが消えてしまうので、永続化させるためにはコンテナ外にデータを保持しておく必要がある。その場所のことをボリュームと呼ぶ。

[Docker、ボリューム(Volume)について真面目に調べた](https://qiita.com/gounx2/items/23b0dc8b8b95cc629f32)

# 今日の一言
Dockerについて勉強してると、やっぱり色んな知らない概念とか単語が出てくる！
「これってなんなん？」ってのを繰り返していくと、結局はインフラ周りの話に行き着く。
自分は「なんで？なんで？」ってなるタイプやから、この学習方法は仕方ないとはいえ、スピード感が落ちちゃうのは事実。

「実際に使用する知識」と「知らなくてもいい知識（需要のない知識）」を知るために、やっぱり実践の時間を設けなくてはなとしみじみ感じてる。土日はまじで本の学習絶対せんようにしよ！非効率や！エライザかわい！