DockerCon 2017 報告 @toricls さん
LINUX KIT
- Dockerエンジンをどの環境でも動作する為のLinuxサブシステムを集めたツール
- DOCKER.YMLで定義する(ymlで定義)
- 全てのサブシステムはコンテナ
- ポータブルなlinuxサブシステム
- 動作にはMobyが必要
MOBY PROJECT
- ビルドツール(makeみたいなもの)。
- アプリケーションエンジニア、インフラエンジニアには必要ない。
- 将来的にはDockerバイナリをビルドできるようになる。
- 従来のDockerはDocker社のものになった。
MULTI STAGE BUILDS
- build用のコンテナを用意する必要なくなった。
- Dockerfileでビルドを2つ書く
『Dockerで構成するWebサービス~EmotionTechの場合・増補版~』株式会社Emotion Tech 子安 輝さん
- EmotionTechのDocker導入から運用までの話
- ElasticBeanstallkを使用
- phusionのDockerImageを使用(イメージサイズは大きい)。
- フロント(angular.js)とバックエンド(Rails)とワーカー(SQS)の3つのコンテナ。テスト環境と本番環境は同じ構成。ローカル環境もだいたい同じ構成。
- 構築する時に気をつけた事
- ポリシーを持って構築。
- 各環境(ローカル、CI)で使えるDockerバージョン
- Dockerfileのお手本参照するべし(https://github.com/docker-library)
- ローカル環境を本番環境に近づける
- 使ってみたら起きたこと
- rails cで30秒待った
- CIで使いたいコマンドが使えなかった
- db:migrateする仕組みがない
- 環境変数でコンテナの挙動を変えたかった
- 本稼働してから
- ビルドがだんだん遅くなる
- 監視は普通にやれた
- 内部監視はホストのmackerelエージェント。
- cronで監視ログをマウントしたVolumeに出力して、ホストのmackerelエージェントが監視している。これでうまくいっている。
- インスタンスをあえて入れ替えた
- Tips
- ローカル環境はdocker-composeで。
- ローカル環境の初期化/更新のスクリプトを用意。
- ローカル環境の実行環境はDocker for xxxが主流。
- GithubTag、Dockerイメージタグ、デプロイバージョン、全て同じ値を使用する。
- 環境変数は設定出来る箇所は複数可能なのでどこで設定するかを整理しておく。
- ステージング環境で検証したイメージをそのまま本番環境へデプロイする=ステージング環境から本番まで同じイメージを使用する事。
- Railsを動作しているRails.envはProductionで動作してて、DBの接続先の変更は環境変数で切替している。
LT kenjiszk さん
- FiNCでのコンテナの管理方法
- マイクロサービス化しててAmazonECSで解決
- Dockerビルド&テストはJenkins
- ECSのクラスターはDeployTask、Web、Batchの3つで運用
- jenkinsfileをDirectoryTopに用意しておく
LT hokkai7go さん
- SanSan(Eight)でのDocker活用事例
- AWSのサービスを代用してローカル環境のコンテナ化
LT kuntaroIshiyama さん
LT gavinzhm さん
- DockerHubの脆弱性について
- DockerHubのイメージで80%以上は少なくても重大な脆弱性がある
- CommunityImageが更新されていない(1800+)
- オフィシャルイメージでも(392)
- ScanningToolを使用するべき(Clairオススメ)
- yum update apt-get updateする
- AplineLinux使う
- ScanTool使う
- GolangならFROM scrachがある
LT wata727 さん
-
drunker
- AWS CodeBuildのCLI