[O'RILLY]並行コンピューティング技法の読書記録

主題: [O'RILLY]並行コンピューティング技法の読書記録
目標規定文:この文章では「未経験の分野の本でも繰り返し読むことにより理解が深まること」を実際に読んだ感想を記録することにより主張する.

構成法:時系列に沿って記述.「回数」「日付」「読書範囲」をタイトルとして示し,続いて雑感を記す.

1回目 記録なし

2回目 2019-02-27 p65-p181

当初は4-9章のp65-p200の予定だったが1h30mを超えても終わらないので断念.一通り文章に目を通すが,右から左へ抜けていくばかりで呼んだ気がしない.

3回目 2019-02-28 p65-p181

昨日がひどかったので2h30mほど掛けて読んだ.疲れるばかりで,相変わらず右から左へ抜けていくばかりだ.もっと小さめにイテレーションを回すべきだろうか.目を通すだけでも1ページ1分は必要だと思う.

はじめてのDocker

 

Docker 開発環境

参考

C++初心者がDockerで開発環境をつくってみた - Qiita

https://hogehuga.net/linux/264/

主題:開発環境の作成
目標規定文:この文章では「Dockerを用いた,C++コードの記述・ビルド・デバックの一貫した操作が可能な環境を構築し利用する方法」を示す.
構成法:作成の時系列に沿って記述
  1. 前準備,設定ファイルなど

    1. $ ls
      Dockerfile       data-structure     docker-compose.yml

      $ cat Dockerfile
      FROM ubuntu:18.04

      RUN apt-get update && \
        apt-get install -y git build-essential cmake clang libssl-dev gdb vim

      $ cat docker-compose.yml
      version: '3.3'
      services:
      dev:
        build: .
        volumes:
          #hostのsrcとguest(docker)のdst共有
          - type: bind 
            source: ./data-structure/    
            target: /home/data-structure/
          # ファイルの共有もできる
          - ~/.vimrc:/root/.vimrc
        # 開始ディレクト
        working_dir: /home/data-structure/
  2. コンテナの作成

    docker-compose build

  3. コンテナの起動・停止・再開

    1. docker-compose run --name "geeks" dev bash
    2. exit
    3. docker start -i geeks
  4. コンテナの削除

    # 最新のコンテナ以外全部削除 ``とxargsは同じ働き
    docker ps -a -q | grep -v `docker ps -l -q` | xargs docker rm

    #$()によるコマンド展開
    $ sudo docker rm $(sudo docker ps -aq)
    # タグなしのイメージをすべて削除するhttps://qiita.com/curseoff/items/a9e64ad01d673abb6866
    docker rmi $(docker images | grep '<none>' | awk '{print$3}')

    c.f. シェル芸
    https://qiita.com/kiida/items/3beb1bf718cdc2f0798a
    https://qiita.com/Ping/items/57fd75465dfada76e633
  5. その他,諸注意

    1. Dockerではrunとstartというコマンドがあり、runは「イメージからコンテナを作成」、startは「コンテナを起動」となります。

       私がファイルが消えていると勘違いしていたのは、実はdocker runをしていたため、毎回イメージからコンテナが作成されていたのでした。だからdocker ps -aとかすると一回だけしかログインしてないようなコンテナがいっぱいありました。つらい…

      https://www.scriptlife.jp/contents/programming/2016/07/14/post-1628/

    2. alias ds="cd ~/workspace/geeksforgeeks && docker start -i geeks" で起動させると便利

    3. detach-key問題->config.jsonの設定またはdocker runの際に --detach-keyオプション追加 https://qiita.com/Yuki-Inoue/items/60ec916383025160fbb8