*概要 [#d314a3a3] -OSの名前空間分けて FreeBSDのjailみたいの作れる仕組みと、それ用のルートファイルシステムイメージを自動でダウンロードして走らせたりする仕組み --名前空間は分けるけどそれぞれにinitが走るわけではない。その点に関してはchrootに近い(jailやOpenVZのようなものを下敷きにして捉えるとDockerの1コンテナ1プロセスというマナーを理解するのに時間がかかるかもしれない) *インストール方法 [#hf281020] sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo vi /etc/apt/sources.list.d/docker.list # docker.listの内容 # deb https://apt.dockerproject.org/repo ubuntu-xenial main - 以下のようにやるとaptでバージョンが選べるらしい。 sudo apt-cache madison docker-engine sudo apt-get install -y docker-engine=1.12.1-0~xenial sudo apt install docker-engine=17.05.0~ce-0~ubuntu-xenial *Docker [#k7be6b6e] **gcr のローカル実行 [#lb0f19f2] gcloud auth login gcloud auth configure-docker gcloud builds submit -t gcr.io/hamko-home/$name # カレントディレクトリをビルドして gcr にアップロード https://cloud.google.com/run/docs/quickstarts/jobs/build-create-shell docker pull gcr.io/hamko-home/$name docker run --rm gcr.io/hamko-home/$name docker run --rm gcr.io/hamko-home/$name # -rmオプションは、コンテナ終了時に自動的にコンテナを削除してくれます。 *Dockerfile [#g7d808b6] -dockerのRUNは毎回コンテナを立ち上げてそれを適用してコンテナを保存するということをしている。 -この時の中間コンテナはキャッシュされているので、Dockerfileに何らかの変更を加える必要がある場合は、重い処理を早いところに入れておけばキャッシュが使われてインストールなどの処理をスキップできる。 -RUNとCMDの違い --RUN - イメージ作成時に実行される(build内部) --CMD - コンテナ実行時に実行される(buildされたものをデプロイしている) -https://qiita.com/gold-kou/items/44860fbda1a34a001fc1 -dockerの入門これよさそうなのでやる --https://blog.codecamp.jp/programming-docker-image-container --dockerfileはリモートレジストリイメージを入力して、それにコマンドを適用して新しいイメージを作るためのもの *トラブルシューティング [#tde8bff6] -host error --at the physical machine levelなのでどうしようもないやつ。コンテナのサイズ上げても無駄 -80 番ポートを開くときに Permission Denied --OS の仕様なのでグループに許可をする $ USER=hamko $ sudo usermod -aG docker $USER $ su - $USER $ sudo systemctl restart docker # Logout |