Dockerトレーニングコース-docker,chef,puppet,ansible,salt stack延長について


Dockerトレーニングコース-docker,chef,puppet,ansible,salt stack延長について
Docker training course-Discuss docker,chef,puppet,ansible,salt stack Hangouthttp://www.slideshare.net/Flux7Labs/docker-training-course-discuss-docker-chef-puppet-ansible-salt-stack-hangout
注意:saltstackはPuppet Chefと同様に、ソフトウェアのインストールと構成を含む複数のサーバで同時にコマンドを実行できます.
 
基本概念
DockerはLinux Containerの代替品ではありません
 
ネームスペースNamespaces:
●隔離された第1段階●1つのコンテナプロセスで実行してもコンテナ外で実行できない他のプロセスに影響を与える
 
コントロールグループControl Group:
●LXCの主要コンポーネント●リソースの計算と制限は重要な機能である.●重要なマルチテナントプラットフォーム:一貫した正常運行時間と性能を保証する
 
LXCs
 
LXCsは軽量級です.
同じホスト上で実行される複数のインスタンス分離
単一のカーネルを共有しますが、消費できる数のリソースの定義のセットです.
インスタンス間の干渉は許可されません.
 
Docker用語
 
DockerレジストリRegistry:管理ライブラリとミラーを支援し、提供するDockerレジストリサーバです.
Layerレイヤ:Dockerがルートファイルシステムのスタック各ファイルシステムにロードされると
Imageミラー:読み取り専用レイヤであり、永遠に変更されません.
Containerコンテナ:1つ以上のミラー自足環境を使用して構築されます.ミラーは、コミットされたcontainerに基づいて作成できます.
Repositoryウェアハウス:ローカルDockerまたはレジストリサーバ上のミラーの設定
 
Dockerファイル
 
Dockerfilesでは、構築手順を記述し、ソースコードからコンテナを自動的に生成できます.これはミラーの表現と見なすことができます.
ヘルプ
●ミラーの簡単な構築●ミラーの自動化とスクリプト作成
 
Docker labs実験室
 
インストールDocker(Ubuntuの13.10)Dockerライブラリローカルキー:sudo apt-key adv--keyserver keyserver.ubuntu.com--recv-keys 36 A 1 D 78245 C 8950 F 966 E 92 D 8576 A 8 BA 88 D 21 E 9
Docker repoをaptソースリストに追加し、LCX-Dockerパッケージsudo sh-c"echo debを更新してインストールします.http://get.docker.io/ubuntu docker main >/etc/apt/sources.list.d/docker.list"sudo apt-get updatesudo apt-get install lxc-docker
sudo docker run-i-t ubuntu/bin/bashのインストールを確認
 
docker pull ubuntu:正確
コマンド:docker pull ubuntu:12.04用途:UbuntuのLTS 12.04正確なベース映像を引く
 
Docker run
Dockerコンテナを実行するモードを選択
運転背景/分離
1.容器は傍受しない2.IOはネットや共有でやっています
 
実行の見通し
1.デフォルトモード2.プロセスに接続されたコンソールの標準入力、標準出力、標準エラー
 
対話型の実行
1.永続的な標準入力が必要
 
Docker運転ssh
 
Dockerfileは1つの容器でsshdサービス#sshd##VERSION 0.0を確立する.1 FROM ubuntu MAINTAINER Thatcher R. Peskens "[email protected]"# make sure the package repository is up to date RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe">/etc/apt/sources.list RUN apt-get update RUN apt-get install -y openssh-server RUN mkdir/var/run/sshd RUN echo 'root:screencast' |chpasswd EXPOSE 22CMD/usr/sbin/sshd -D
Docker run(ポート転送)
 
露出したすべてのポートをホストに自動的にマッピングする:コマンド:docker run-P
ポートをホストインタフェースにバインドするコマンド:docker run-p[(:[host_port])|():[/udp]
 
docker run(ボリューム共有)
 
コンテナ用2ボリュームの作成
コマンド:docker run-v/var/volume 1-v/var/volume 2 DATA busybox true
Mountデータボリュームアプリケーションコンテナコマンド:docker run-t-i-rm-volumes-from DATA-name client 1 ubuntu bash
 
Docker diff
コマンド:docker diff CONTAINER用途:コンテナ内のファイルシステムの変化、ファイル、ディレクトリのリスト
 
Docker開発ワークフロー
 
アプリケーション:VyScale--python flask+MySQLflux 7.com -- php +MySQLclient1 -- python + Cassandra (multi-tenant)client2 -- Ruby on Rails + MySQL + Redis
  Docker培训课程 - 谈docker,chef,puppet,ansible,salt stack延伸_第1张图片
アプリケーションアーキテクチャ図
 
新入社員/新しいノートパソコン
Install Vagrantgit pull devenv setupdevenv start
舞台裏:1.VBOX画像をダウンロードする.VM共有フォルダ+露出ポート+静的IP 3を実行する.コンテナ4を生成する.コンテナを正しい順序で起動し、正しいポート(DB?)を露出する5./vagrant/logフォルダでログボリュームをコピーする6.設定/etc/hostsがVM 7を指すURLを印刷してアプリケーションにアクセスする
 
デバッグプロセス
 
コードの編集(選択したエディタで、すべての別名とコマンドを使用できます)
//サーバーの再起動(キリンで自動化可能)devenvの負荷
//ログが上部/logsフォルダにあることを確認する
コードコミット
devenv commit-t←デバッグ後git push
舞台裏:1.すべてのDockerコンテナ2をコミットします.将来の使用のためにバージョンを保存
 
QA
 
Jenkins polls the repo for pushes同じスクリプトを使用してコンテナテストを実行
コード配信
既存の容器は廃棄され(より良い)新しい容器が完成し、開始される.
Chef recipe更新
devenv rebuilddevenv push
舞台裏:1.chef recipeを実行して新しいコンテナを作成します.プライマリレジストリへのコンテナのコミット
サービス/レイヤ変更devenvのスクリプトの追加/削除