ふくだ学習録とは?
ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。
読了した本
データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning
PHPフレームワーク CakePHP 3入門
SQLアンチパターン
今読んでいる本
Docker入門
docker run -it
コンテナ内でシェルを稼働させてコマンド操作するときのお決まりのコマンド。-iオプションと-tオプションの組み合わせ。
-iオプションは、コンテナ内で実行するプロセスの標準入力をオープンし続けるオプション。
-tオプションは、コンテナに仮想コンソールを割り当てて、それをコンテナ内で実行するプロセスの標準入力に接続するオプション。
docker exac -it と docker run -it の違い
exacはあくまで起動中のコンテナに対しての操作なので、停止中のコンテナにコマンドしてもエラーになる。
runは起動するコマンドなので、停止中のコンテナに対して指定して起動&シェル操作することができるようになる。
コンテナの「一時停止」と「稼働停止」の違い
コンテナは稼働が止まってしまうと、ボリュームなどに格納していない情報は揮発してしまう。
一時停止の場合は、あくまで稼働状態のまま、プロセスを停止することになるので、情報が揮発しない。
一時停止させるためのサブコマンドはpause
。
stopサブコマンドとkillサブコマンドの違い
stopサブコマンドは、稼働中のコンテナ内で最初に起動したプロセスに停止信号を送り、一定時間待つコマンド。一定時間(デフォルトでは10秒)待ったのちに、それでもプロセスが終了しなかった場合に、KILLシグナル(強制終了信号)を送信してプロセスを停止させる。
一方killサブコマンドは、初っ端からKILLシグナルを送る。
initサーバーとは?
Linux(Unix)において、システムの初期設定やプロセス管理などを担当するサーバ。
主な種類としては、SvsV init,Upstart,systemdの3つがある。
Dockerサーバーの制御方法は、これらのどのinitサーバーを使用しているかでコマンドなどが変わってくる。
自分のLinux環境がどの環境で動いているのかを把握すべし!
Dockerサーバー環境の初期化
Dockerサーバーは、取得したイメージや稼働したコンテナ関連のデータを、既定設定で/var/lib/docker
ディレクトリ以下に配置している。このディレクトリ以下の内容を削除することにより、インストール直後の状態に戻すことができる。
インストール前の状態にしたいときは、/var/lib/docker
ディレクトリごと決してしまえばいい。
docker -H を使用する場面
docekrサーバーとdockerクライアントを、別々のホスト上で稼働させたいときに使用する。
通常の運用(同一ホスト内で稼働させるとき)では、オーバーヘッドが少なく効率的に通信できるUNIXドメインソケットを使用した方がいいため、既定では特定のUNIXドメインソケットからのコマンドやデータを待ち受けるようになっている。
そのため、別々のホスト上で稼働させるとき、つまりTCP通信ポートを使用して通信する必要があるときは。docker -H
で使用するTCPポートを指定する必要がある。
DockerクライアントがTCP通信ポートを使用するようにする方法
DOCKER_HOST
という環境変数に、使用したいDockerサーバーのIPアドレスやポート番号などを指定の形式で保存しておく。
Dockerのストレージドライバ
ストレージドライバとは、コンテナのファイルシステムやイメージの差分管理のための手段を提供するドライバ。
Linuxで稼働するDockerサーバーは**「aufs」「btrfs」「zfs」「devicemapper」「overlay」「vfs」**の6種類のストレージドライバを切り替えて使用できる。(バージョン1.9時点)
現在使用中のストレージドライバは、次のコマンドで確認できる。
$ docker info | grep "Storage Driver"
各ストレージドライバの特徴は下記サイトを参考にする。
ストレージ・ドライバの選択
Dockerのストレージドライバを理解する
今日の一言
以前にインフラ周りの本を読んでたおかげか、わからない単語とか知らない概念が少なくて、メモ書き減ってきた!
そして読むスピードも上がってきた!ええ兆候。寿司食いたい。