*概要 [#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS