kuhudaro.md

進捗ありますように

dockerの仕組みでOS思い出す

今日したこと

インターン

なし

バイト

終了!

その他

今回からはh4タグで分けるようにしてみた

obenkyo

  • 発表なし
  • 以下まとめ
    1. ゆゆ式を巡る冒険
      • ゆゆ式は神話ではない
      • 会話はターン制
    2. フォントヤクザ
      • ゴシックと明朝だけ使えば良い
      • 太さを変えれば印象が変わる
      • 本何冊か買った
    3. ライトセーバー
    4. ギャンブル
      • BJは賭博じゃなさそう
      • 賭け方にも一定のルールをもたせると、損しづらい
  • そろそろ発表したいな

docker教科書

2章読了
コンテナ仮想化技術とdocker

dockerに至るまでの歴史とか仕組みが説明されていた。 dockerに至るまでの苦労を知らないとそのメリットを享受できないと考えたことが、この教科書を買った理由でもあるので、今回は少し多めにメモを残す。

  1. 仮想化技術
    • 物理環境を一々作ると、金銭/保守のコストがやばいよね
      →仮想化しよう!
    • 仮想化にはいくつか種類がある
      1. ホスト型仮想化
        • ホストOSに仮想化ソフトを入れて、その中でゲストOSを動かす
        • 簡単だけど、オーバーヘッド(無駄なリソース)が多くなる
        • virtual boxとか、vmwareとか
      2. ハイパーバイザー型仮想化
        • ホストOSをおかず、ハードウェアに直接仮想化専門のソフトウェアを配置する
        • リソースは効率的だけど、起動のオーバーヘッドは大きい
        • Hyper-V、XenServerなど
      3. コンテナ型仮想化
  2. コンテナ仮想化技術の歴史
    • 2000~ FreeBSDJail
      • プロセス・ネットワーク・ファイルシステムを区画化して、権限を同一のJail(監獄)に閉じ込めた
    • 2005~ Solaris Containers
      • 大域ゾーンの中に非大域ゾーン(コンテナ)を持ち、お互いにアクセス出来ないようにする (Solarisゾーン機能)
      • リソースを優先的に割り当てることが出来る(Solarisリソースマネージャ機能)
  3. Dockerの特徴
  4. Dockerの基本機能
    • イメージを作る
      • プログラム/ライブラリ/ミドルウェア/OS/ネットワークなど、設定をまとめたdockerイメージを作る
      • dockerコマンドを用いる or dockerfileで自動化
      • イメージを重ねて新しいイメージに
    • コンテナを動かす
      • プロセスを作るくらいの速さ ←やばw
    • イメージを共有/公開する
      • DockerHubから公式イメージをダウンロードして使えるよ
      • 人のイメージを使って機能追加とかも出来てすごい
      • githubにアップしたdockerfileをダウンロードして勝手にbuildしたりもできる ←便利そう
    • Dockerコンポーネントっていういろんなツールがある
      1. docker engine
        コア機能
      2. docker kitematic
        GUIツール
      3. docker registry
        共有のためのレジストリを作る
      4. docker compose
        複数のコンテナを一元管理する
        • この前のwantedlyの勉強会で使ったやつ
      5. docker machine
        dockerの実行環境をコマンドで自動生成する
      6. docker swarm
        dockerホストのクラスタ
    • docker 三兄弟はcompose,machine,swarm
      Docker3兄弟について - YAPC::Asia Tokyo 2015
  5. Dockerが動く仕組み
    • 結構踏み込んだ内容で、OSの授業で習ったことが結構出てくる
      • 正直linuxの仕組みについてはあまり分からないので、概念だけ理解するようにする
      • id:Tak_Yaz 君とかが好きそうだなあといった印象
    • 区画化の仕組み
      • linuxカーネルのnamespaceを用いている
      • オブジェクトに名前をつけることで、独立した環境を構築する
      • PID, Network, UID(ユーザID), MOUN, UTS(ホスト名/ドメイン名), IPC(プロセス間通信。セマフォやメッセージキューなど)
      • namespaceを人の名前で例えて理解するなら……
        • 太郎さん持つpid 1のプロセスと花子さんの持つpid 1のプロセスは別
        • 太郎さんのPCのport 80と花子さんのPCのport 80は違う
        • などなど
        • namespaceすごすぎる……
    • リソース管理の仕組み
      • linuxカーネルのcgroupの機能を用いる
      • プロセスとかスレッドをグループ分けして、リソースにグループごとの制限をかける
      • 例えば……
        • デーモングループ(apache,mysql)とアプリグループ(atom,chrome)があったとする。
        • アプリグループよりデーモングループのほうが大事(死んだらヤバい)なので、デーモングループの割当を50%、アプリグループの割当を10%とする。
        • この時、例えばchromeが暴走して20%使おうとしても、上限の10%を超えることがないように制限されるというのがcgroupの機能
    • ネットワーク構成
      • これはすごいなあと思ったけどちょっと難しかった
        時間的な順番で理解したほうが良さそう。
        1. ホストOSの物理NICにeth0が割り当てられる
        2. dockerを起動すると、dockerデーモンにdocker0というアドレスが割り当てられ、仮想ブリッジになる
        3. コンテナを作ると、各コンテナに仮想NICであるvethxxxが作られ、それらが仮想ブリッジdocker0に接続される
        4. vethxxxには各コンテナのプライベートIPアドレスがeth0として割り当てられる
      • dockerコンテナ同士の通信
        • 各コンテナはeth0が割り当てられてるので、サーバーみたいなものと考えて良い
        • dockerコンテナを作るときに、リンク機能を用いると/etc/hostsに[リンク先のコンテナのプライベートIPアドレス エイリアス名]が反映されるので、通信可能になる
      • dockerコンテナと外部ネットワークの通信
        • docker0と物理eth0の変換が必要
        • NAPT(Network Address Port Translation)を用いる
          • 1つのIPアドレス複数のPCで共有し、ポート番号で区別する
          • それぞれのPCは別のIPアドレスを持ってるつもりだが、実際は宛先がIPアドレス:portという外部からのアクセスを、NAPTがプライベートIPアドレスに変換してるだけ
          • 天才かよ
        • dockerでも同様。
          • 例えば、port 80を用いたいコンテナさんが2人いたとする
          • コンテナAは自分のipがa, Bはbだと思ってる
          • dockerはホストOSの8080をコンテナAに、8081をコンテナBに割り当てる
          • dockerはNAPTの機能を用いて、ホストOS:8080へのアクセスをdocker0からaへ、8081へのアクセスをbへと変換する
          • あくまでイメージ
    • Dockerイメージのデータ管理
      • コピーしても使わない時は結局無駄
      • Copy on Write
        • たとえば、同じubuntuを用いるイメージが2つあるとする。
        • それぞれ管理していると、OS 2つ分の容量なのでけっこうでかい
        • そこで、差分だけを管理する
        • 正直ちょっとわかってない

ジェンダー

  • The Problem of Gender Bias in Japanese High School Textbooks を読んだ
    • 2の作家の男女比についてはスキップ
    • 3の『春の日のかげり』の読解について
      1. 旧姓高校生の傍若無人な振る舞いを「青春の若き良き日々」とみなして主人公・作者に寄り添って読む教科書的態度
      2. しかし、冷静になってみてみるとかなり性暴力的
      3. 特に、近年の女子高生は否定的な態度をとることが多い
      4. →「期待の地平」(読者が一定の反応をするように作者に酔って用意されたもの)を共有しないため
      5. 教科書から削除されていった
      6. 教科書的読み方を強要するのではなく、期待の地平のずれについて考察することが教育なのでは?
    • 個人的感想
      • えっいやこれ明らかに性暴力的でしょ
        • 男性目線でもそうなのだから女生徒たちの反応も当然って感じがする
      • 結論が「ジェンダーバイアスのない教科書を作る」ことではなく、「ジェンダーバイアスがある作品を用いていかに教育に活かすか」という視点なのがとても納得がいく

ゴールドマン・サックス

  • ゴールドマン・サックステクノロジー部門のOB/OG訪問があった
  • 正直かなり印象が変わった
    • OSSへの貢献とか対外的な発表とかもしてるらしい
  • 僕は別に行きたいわけではないが、情報系のキャリアとしては十分アリだと思う

サブカルなこと

なにもしてない

雑多なこと

  • 先生にご挨拶メール
  • 批評理論入門をちょっとだけ再読

食べたもの

お昼

  • サトウのごはんゆめぴりか+缶詰
  • ゆめぴりか美味しすぎでしょ

  • 学食で定食
  • 500YEN

今日の出費

  • 500+108=608

明日すること

  • obenkyo
  • docker教科書を3章まで読む
    • 今日2章のまとめに時間をかけすぎた
    • 読みながらまとめていくスタイルのほうがいいかも
  • 研究室ミーティング参加

その他

  • 研究室快適