概要
Docker内のUbuntuにHyperLedger Composer1.1の環境を構築しました。いわゆるDocker in docker環境です。
aufsのファイルシステムの相性があり、かなり苦戦したのでメモです。
ポイントはDockerへのaufsドライバーの導入と、/var/lib/docker/aufsの削除です。
これからはcomposerですね。composer-playgroundとか簡単すぎます。
Docker設定
Dockerにaufsのドライバーが必要なので、ここを参考に"storage-driver" : "aufs"を追加。https://blog.adachin.me/archives/8154

※※※※※※※インスタンス とイメージが消えるのでsaveなどで必要であればバックアップしておくこと。
かなりのディスク容量を使うのでDockerのDISKサイズを100Gなどにリサイズしておく。Dockerのプロセスのアイコンからできます。

Ubuntu環境インストール
  手順
     Ubuntu環境作成
      docker run --privileged=true -d --name hlc -p 10022:22 -p 8080:8080 -p 3000:3000 ubuntu:16.04 /sbin/init
      ログイン
        docker exec -it hlc  /bin/bash
      設定
        $ apt-get update
        $ apt-get install -y openssh-server vim unzip sudo curl software-properties-common
        $ passwd -> rootパスワードを設定する。rootなどに設定。
        $ vim /etc/ssh/sshd_config
        下記のように変更
          #PermitRootLogin prohibit-password
          PermitRootLogin yes
        $  /etc/init.d/ssh restart
HyperLedgerインストール
下記の手順はこのサイトを参考にしています。
   参考:https://qiita.com/kolinz/items/351e1d0accda5b0a723d
Docker環境インストール
        $ sudo apt-get remove docker docker-engine docker.io
        $ sudo apt-get update
        $ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
        $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
        $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
        $ sudo apt-get update
        $ sudo apt-get -y install docker-ce
        $ sudo docker -v
        $ sudo usermod -aG docker $(whoami)
        ログアウトし、再ログインします。
        $ exit
        $ docker exec -it hlc  /bin/bash
Docker Composeを入れる
        $ cd
        $ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
        $ sudo chmod +x /usr/local/bin/docker-compose
Node.jsを入れる
        $ sudo apt-get update -y && sudo apt-get upgrade -y
        $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
        $ sudo apt-get install -y nodejs gcc g++ make
        $ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
        $ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
        $ sudo apt-get update
        $ sudo apt-get install yarn
関連npmパッケージをインストール
        $ sudo npm install -g yo
        $ sudo npm install -g --unsafe-perm composer-cli@0.19.10 composer-rest-server@0.19.10 generator-hyperledger-composer@0.19.10 composer-playground@0.19.10
Hyperledger Composer 1.1を導入。composer-playgroundの起動まで。
        $ cd
        $ vim ~/.bashrc で以下を登録
        export FABRIC_VERSION=hlfv11
        export DOCKER_CLIENT_TIMEOUT=2000
        export COMPOSE_HTTP_TIMEOUT=2000
        export FABRIC_START_TIMEOUT=15
        $ source ~/.bashrc 
        $ sudo rm -rf /var/lib/docker/aufs ※
        $ sudo service docker restart ※
        $ mkdir fabric && cd fabric
        $ curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
        $ tar -xvf fabric-dev-servers.tar.gz
        $ vim ~/fabric/fabric-scripts/hlfv11/composer/docker-compose.yml  でひらいて
          peer0.org1.example.com:
            environment: 
          に下記を追加する。ビジネスネットワークカードをdeployするときにTimeoutになる対策。
            - CORE_CHAINCODE_STARTUPTIMEOUT=1200s
        $ ./downloadFabric.sh
        $ ./startFabric.sh
        $ ./createPeerAdminCard.sh
        $ composer-playground
      ※dockerが起動しないときは下記を実行。dockerdで詳細なエラーが表示される。参考:https://christina04.hatenablog.com/entry/2015/12/25/105242
          $ sudo rm -rf /var/lib/docker/aufs
          $ sudo service docker restart