SlideShare uma empresa Scribd logo
1 de 111
Baixar para ler offline
そろそろ知っておきたい!!
コンテナ技術と
Dockerのキホン
NTTアドバンステクノロジ株式会社
アプリケーションソリューション事業本部
長住 直樹
自己紹介
 長住 直樹(ながずみ なおき)/ Twitter @nk_ngzm
 NTTアドバンステクノロジ株式会社 アプリケーションソリューション事業本部
 社内で技術者育成活動(通称:CORETECH)を推進しています。
Linux Container
Linuxカーネルが持つ機能を
使って実現するコンテナ。
略して、LXCと表記することもある。
ここで、VMのおさらい
VMは、コンピュータの上で動くOSやVMを実現するためのハイパーバイザの上で、実際
のハードウェアをエミュレートするVMが動きます。つまり実際の物理的なコンピュータ
と同じようなものがソフトウェアによって実現されているので、このVMを使うにはOS
が必要になります。つまり、物理的なコンピュータ上で動くOSの上でさらにOSが動き
ます。
引用: http://gihyo.jp/admin/serial/01/linux_containers/0002
対してコンテナの原理
起動する全てのプロセスはコンピュータ上にインストールされたOS(ホストOS)上で
直接起動します。通常のプロセスの動作と異なるのは、そのプロセスの一部をグループ
化し、他のグループやグループに属していないプロセスから隔離した空間で動作させる
点です。貨物輸送のコンテナのように、隔離された空間にプロセスが入っているので、
この空間を『コンテナ』と呼ぶわけです。実際のコンテナのように、あるコンテナの内
部から他のコンテナの内部を見ることはできません。
引用: http://gihyo.jp/admin/serial/01/linux_containers/0002
コンテナを実現するカーネル機能
名前空間とも呼ばれ、マウント、ホスト・ドメイン名、プロセス空間、ソケットや
メッセージキューの空間、ユーザ・グループ、ネットワークなどの名前空間ごとに
識別・隠蔽できる機能。例えば、マウント名前空間を使うと、名前空間内で行った
マウント操作を他の名前空間には反映させないといったことができる。すなわち,
コンテナ内でマウント操作を行った場合、そのマウントはホストOSや他のコンテ
ナからは見ない。
名前空間の名前 隔離されるリソース
実装されたカーネル
バージョン
マウント名前空間 マウントの集合,操作 2.4.19
UTS名前空間 ホスト名,ドメイン名 2.6.19
PID名前空間 プロセスID(PID) 2.6.24
IPC名前空間 SysV IPCオブジェクト,POSIXメッセージキュー 2.6.19
ユーザ名前空間 UID,GID 3.8
ネットワーク名前空間
ネットワークデバイス,アドレス,ポート,ルーティ
ングテーブル,フィルタなど
2.6.26
コンテナを実現するカーネル機能
「Control Group」の略。プロセスをグループ化して,そのグループ内に存在する
プロセスに対して、たとえば、CPUやメモリなどのリソースに制限を行うなど、グ
ループ単位のリソース管理が行える機能。
サブシステム 機能
blkio ブロックデバイスの入出力アクセスを制御 (Read <= N bytes/sec)
cpu スケジューラにより CPU のアクセスを制御
cpuset マルチコアの場合に利用する CPU, メモリノードを制御
devices デバイスへのアクセス制御
freezer 処理の一時停止, 再開
memory メモリリソースの制御
hugetlb N byteまでとかの制限
net_cls
Linux トラフィックコントローラ (tc) がパケットを識別できるよう, クラス識別子
(classid) によりネットワークパケットにタグをつける
net_prio NIC 別にトラフィックのプライオリティを設定する
コンテナを実現するカーネル機能
ルートディレクトリを、任意の特定のディレクトリに変更できる機能。
chroot 内で起動されるプロセスは、設定された任意の場所をルートディレクトリ
として動作するため、その範囲外のディレクトリやファイルへは一切アクセスでき
なくなる。
/
libbin usr homeetc
bin lib
chroot → /
etc usr
コンテナを実現するカーネル機能
netns(Linux Network Namespace)は、ホストサーバ内に、仮想的ブリッジ
「br0」と、「veth」と呼ばれる直結した仮想NICのペアからなる仮想ネットワー
クを構築する。コンテナ毎に独立した veth が生成され、その片側をコンテナ内部
のイーサネット「eth0」として割り当てる。
引用 : http://www.school.ctc-g.co.jp/columns/nakai/nakai41.html
デモ(その1)
chroot を使ったルートファイルシステムの隔離
chroot
/
libbin usr demoetc
bin lib
chroot → /
etc usr
chroot
 新たな ルートディレクトリの作成
 bashの動作に最低限必要な環境を新たな ルートディレ
クトリ配下にコピー
 新たなルートディレクトリでbashを動かす
$ sudo mkdir -p /demo/chroot
$ sudo cp -pr /bin /lib /lib64 /usr /etc /demo/chroot/
$ sudo chroot /demo/chroot /bin/bash
LXC
Linuxカーネルの機能のみを用いてコンテナの操作
を行うソフトウェアとして、2008年ごろから
linuxcontainers.orgで 開発されている。
Linuxカーネルにパッチを当てたりすることなく、
カーネルに実装されているコンテナに関する機能
を前提にして簡単にコンテナの操作が行える。
Container と LXC
LXCという用語は以下の2つの意味で使われることがある。
I. Linuxカーネルが持つ機能を使って実現するコンテナ
という一般的な意味で使う場合
II. linuxcontainers.org で開発されているコンテナを扱
うためのソフトウェアという狭い意味
本講習会では、前者の意味では「Container/コンテナ」、
後者の意味では「LXC」と区別して説明する。
ちなみに、LXC以外には?
LXC以外の代表的なコンテナ方面のソフトウェア。
Linuxカーネルにコンテナ関連の技術が充分に実装されていない頃から、カーネルにパッチを当
ててコンテナを実現してきた本分野のパイオニア的ソフトウェア。現在Linuxカーネルに実装さ
れているコンテナ機能にはOpenVZ由来のものが数多くある。なお、これをベースとした商用
ソフト「Virtuozzo」は、現在でも、世界中のホスティングサービスで広く使われている。
Cloud Foundry というPaaSを構築できるソフトウェアで、その心臓部といえるコンテナ機能
を提供するコンポーネント。
主に、Linux kvm サーバ仮想化環境を管理するツールであるが、Linuxコンテナにも対応して
いる。
デモ(その2)
LXCを使用したコンテナの利用
LXCの利用条件
LXCのインストールには、ubuntu OSがお勧め、
出来る限り ubuntu14.04 以降のバージョンを使
用すること。
centos など RedHat系OSにもインストールでき
るようであるが、ubunutに比べて環境設定が激し
く面倒くさい。(インストーラでいろいろやってくれない)
LXCは、root ユーザで操作する必要がある。
デモ環境
 ホスト
ubuntu 14.0.4 trusty / 64bit
Kernel 3.13.0-48-generic
 lxc
version 1.0.7-0ubuntu0.1
LXC インストール
 ubuntuの場合、以下のコマンド一発でインストールが
終わる。
 ubuntu01という名前でubuntuベースのコンテナ作成
※ 社内ネットワークを経由する場合は、別途Proxy設定が必要。
$ sudo apt install lxc
$ sudo lxc-create -t ubuntu -n ubuntu01
LXCでコンテナ作成
LXCコンテナは、仮想マシンのようにDVDなどのISOイ
メージからインストールすることはできない。
従って、LXCには、コンテナを作成するためのスクリプト
としてテンプレートが付属しており、テンプレートを使っ
て、コンテナイメージを作成する。
また、 lxc-downloadという名前のテンプレートが付属し
ており、あらかじめ構築されたコンテナイメージをLXCの
サイトからダウンロードしてコンテナを作成することも可
能である。
コンテナ起動と停止
 ubuntu01 という名前のコンテナを起動
 起動したコンテナに接続(その1)
 起動したコンテナに接続(その2)
 起動したコンテナを停止
$ sudo lxc-start -n ubuntu01 -d
$ sudo lxc-attach -n ubuntu01
$ sudo lxc-stop -n ubuntu01
$ sudo lxc-console -n ubuntu01
その他の基本操作
 作成したコンテナの一覧を見る
 ubuntu01 という名前のコンテナの情報を見る
$ sudo lxc-ls
ubuntu01
$ sudo lxc-ls -f
NAME STATE IPV4 IPV6 AUTOSTART
---------------------------------------------
ubuntu01 RUNNING 10.0.3.18 - NO
$ sudo lxc-info -n ubuntu01
Name: ubuntu01
State: RUNNING
PID: 26948
...
...
その他の基本操作
 ubuntu01コンテナをubuntu02という名前でクローン
 ubuntu02 という名前のコンテナを削除
その他、メモリやCPU、ディスクなどのコンテナ・リソー
スを制御するコマンド(lxc-cgroup)などがある。
$ sudo lxc-clone -o ubuntu01 -n ubuntu02
$ sudo lxc-destroy -n ubuntu02
入門編
Docker
「Docker」は、米国 Docker社(旧dotCloud)が開
発するオープンソースのコンテナ管理ソフトウェ
アのひとつ。Go言語で実装されている。
軽量な仮想化環境であるコンテナを提供し、アプ
リケーション実行環境をそのまま Dockerイメー
ジとして保存できる。
Docker
仮想サーバではなくアプリケーションに最適化さ
れているため、原則的に、ひとつのコンテナに、
ひとつのアプリケーションが実行する構成となる。
さらに、Dockerは、ネットワーク、ストレージ、
ロギング、ディストリビューションなどマシン特
有の設定を抽象化しているため、どんなマシンへ
も、どんな構成でも実行でき、ポータブルデプロ
イを実現できる。
LXCとDocker
もともとDockerは、
LXCを経由してLinuxコ
ンテナ機能を利用して
いた。
Docker Ver0.9 より、
libcontainer という独
自のライブラリを経由
するように改良。
現在でもオプションで
LXCを選択することが可
能。
引用 : https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/
AUFS
AUFS(Another Union FS)とは、レイヤ構造の
ファイルシステムである。
親のファイルシステムをリード・オンリーとし、
その上にライタブルなレイヤを重ねていく。
こうして複数のレイヤを積み重ね、レイヤを通じ
て、ひとつのファイルシステムのように扱う。
親コンテナからの差分管理ができるため、コンテ
ナイメージの容量を軽量化できる。
AUFS
親コンテナか
らの差分管理
ができるため、
コンテナイ
メージの容量
を軽量化でき
る。
引用 : http://gesellix.github.io/gradle-summit-2014/
DockerイメージとDockerコンテナ
Dockerイメージとは、Docker コ
ンテナ生成のベースとなるひな形。
代表的な例として ubuntu や
centos 等のディストリビュー
ションがイメージ化されている。
Dockerコンテナとは、ある
Dockerイメージをベースにして
個別アプリケーションの環境を
セットアップして作成するコンテ
ナ実行環境。
Docker
コンテナ
Docker
イメージ
Docker
イメージ
docker run
docker commit
Docker Hub
Docker社は、Docker Hub というクラウド上のリポジトリ
を提供しており、様々な団体や個人が作成した Dockerイ
メージを利用したり、自分で作成したイメージを共有する
ことが可能。
https://hub.docker.com/
Docker
コンテナ
Docker
イメージ
Docker
イメージ
docker run
docker commit
docker pull
docker push
デモ(その3)
Dockerの基礎的な利用方法
Docker の利用条件
Docker をインストールできる環境は、 Red Hat
系 OS もしくは ubuntu系 OS であること、およ
び 64bitマシン+OS であること。
カーネルが古いとうまく動作しないので、インス
トール前に 最新バージョンにアップ・トゥ・デー
トしておくこと
Dockerは、root ユーザ で操作する必要がある。
デモ環境
ホスト
cnetos 6.6 / 64bit
Kernel 2.6.32-504.el6.x86_64
docker
version 1.4.1, build 5bc2ff8/1.4.1
Docker インストール
 centos 6.6 へインストール
 centos 6.6 で自動起動設定(必要に応じて)
※ 社内ネットワークを経由する場合は、別途Proxy設定が必要。
$ sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
$ sudo yum -y install ¥
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum install docker-io
$ sudo chkconfig docker on
Docker インストール
 centos 7系 へインストール
 centos 7系 で自動起動設定(必要に応じて)
※ 社内ネットワークを経由する場合は、別途Proxy設定が必要。
$ sudo yum install docker
$ sudo systemctl enable docker.service
Docker インストール
 ubuntu 14.04 LTS へインストール
 ubuntu 14.04 LTS で自動起動設定(必要に応じて)
※ 社内ネットワークを経由する場合は、別途Proxy設定が必要。
$ sudo apt install docker.io
$ sudo update-rc.d docker.io defaults
Docker イメージ取得
 centos 最新版のDockerイメージをDL
 ubuntu 最新版のDockerイメージをDL
 ubuntu 12.04 DockerイメージをDL
$ sudo docker pull ubuntu:latest
$ sudo docker pull ubuntu:12.04
$ sudo docker pull centos:latest
※社内ネットワークを経由する場合は、別途 DNSサーバの設定と Proxy設定が必要。
Docker イメージ管理
 Dockerイメージの一覧表示
 DLした ubuntu 12.04 イメージを削除
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest 214a4932132a 40 hours ago 229.6 MB
ubuntu latest d0955f21bf24 3 weeks ago 192.7 MB
ubuntu 12.04 9c5e4be642b7 3 weeks ago 132.1 MB
$ sudo docker rmi ubuntu:12.04
$ sudo docker rmi [IMAGE ID で指定することも可能]
Docker コンテナ生成+起動
 centos 最新版イメージから centos01という名
前でコンテナを作成、そして、アプリケーショ
ンに bash を指定して実行する
 Dockerコンテナ centos の bash に入る
 Dockerコンテナの bash を exit するとコンテナ自体も終了する
$ sudo docker run -i -t --name centos01 centos:latest /bin/bash
[コンテナ内のbashでいろいろ操作]
...
...
# exit (bash を exit)
Docker コンテナ生成+起動
 ubuntu 最新版イメージから ubuntu01 という
名前でコンテナを作成、同じくアプリケーショ
ンに bash を指定して実行
 Dockerコンテナ ubuntu の bash に入る
 コンテナの bash を exit するとコンテナも終了する
$ sudo docker run -it --name ubuntu01 ubuntu /bin/bash
Docker コンテナ生成+起動
 docker run コマンド書式
# docker run ¥
[オプション] ¥
[--name コンテナ名] ¥
イメージ名 [:タグ名] ¥
[コンテナで実行するコマンドとその引数]
Docker コンテナ生成+起動
 docker run の主なオプション
option 説 明
-d
コンテナをバックグラウンドで実行する。
WebサーバやDBサーバなど、デーモン系のプロセスを常時実行す
るコンテナの場合に指定する。
-i
コンテナの標準入力を開く。
/bin/bashなどでコンテナを対話で操作する場合に指定する。
-t
端末デバイス(tty)を確保する。-iと同時に使用することが多い。
/bin/bashなどでコンテナを対話で操作する場合に指定する。
-p
"-p ホスト側ポート:コンテナ側ポート" で、Dockerサーバとホス
トサーバ間のポートマッピングを構成する
Docker コンテナ生成+起動
Docker は、仮想サーバではなくアプリケーションに最適化されているため、
原則的に、ひとつのコンテナに、ひとつのアプリケーションが実行する構成と
なる。
すなわち、Dockerは、docker run で作成
したコンテナ内で、同コマンドで指定する
ひとつの アプリケーションを実行する。
指定したアプリケーションが exit すると同
時にそのDockerコンテナも 停止 する。
デタッチ/アタッチ
 centos02コンテナを作成してbashを起動
 Dockerコンテナをデタッチ
 Dockerコンテナにアタッチ
 再び、Dockerコンテナに入る
 bash を exit でコンテナを終了
$ sudo docker run -it --name centos02 centos:latest /bin/bash
コンテナ内で [Ctrl] + [p] → [Ctrl] + [q] キーを押下
$ sudo docker attach centos02
Docker コンテナ管理
 既存コンテナ centos02 を再起動
 docker start コマンド書式
$ sudo docker start –i centos02
# docker start [-i] {コンテナ名|コンテナID}
option 説 明
-i
コンテナの標準入力を開く。
/bin/bashなどでコンテナを対話で操作する場合に指定する。
Docker コンテナ管理
 Docker コンテナ一覧(動いているものだけ)表示
 止まってるものを含め全部の一覧
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e9b0b2759ec centos:latest "/bin/bash" 4 minutes ago Up 50 seconds centos02
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e9b0b2759ec centos:latest "/bin/bash" 6 minutes ago Up 3 minutes centos02
1352f3ef1c8b ubuntu:latest "/bin/bash" 11 minutes ago Exited (0) 11 minutes ago ubuntu01
cc8c0601370d centos:latest "/bin/bash" 13 minutes ago Exited (0) 12 minutes ago centos01
Docker コンテナ管理
 起動中の centos02コンテナを停止
 Docker コンテナの削除
$ sudo docker stop centos02
$ sudo docker stop [container ID で指定することも可能]
$ sudo docker rm centos02
$ sudo docker rm [container ID で指定することも可能]
カスタム Docker イメージ作成
Docker
コンテナ
Docker
イメージ
Docker
イメージ
docker run docker commit
Docker
コンテナ
docker run
httpd install
httpd 起動
with httpd
カスタム Docker イメージ作成
 centos03 コンテナを作成して bashで起動
 Dockerコンテナのシェルに入る
 centos03コンテナに httpd をインストール
 Ctrl+p+q で Dockerコンテナをデタッチ
[コンテナ内のbashで操作]
# yum install -y httpd
$ sudo docker run -it --name centos03 centos:latest /bin/bash
※社内ネットワークを経由する場合は、コンテナ内部のサーバに対する Proxy設定が必要。
カスタム Docker イメージ作成
 centos03 コンテナを停止
 Apache をインストールした centos03 コンテ
ナから「hoge/httpd」という名前の新たな
Dockerイメージを作成
$ sudo docker stop centos03
$ sudo docker commit centos03 hoge/httpd
カスタム Docker イメージ作成
 docker commit コマンド書式
# docker commit ¥
{コンテナ名|コンテナID} ¥
[ユーザ名/]イメージ名
カスタム Docker イメージ作成
 docker imagesで、作成したイメージを確認
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hoge/httpd latest 140390d72115 13 seconds ago 311.2 MB
centos latest 0114405f9ff1 6 hours ago 229.6 MB
ubuntu latest d0955f21bf24 3 weeks ago 192.7 MB
カスタム Docker イメージ作成
 作成した hoge/httpd イメージを元に、web01
というコンテナを作成、バックグラウンドモー
ドで起動する
 docker ps で起動確認
 ホストの8080ポートにアクセスしてテスト!
$ curl localhost:8080
$ sudo docker run -d -p 8080:80 --name web01 ¥
hoge/httpd /usr/sbin/httpd -D FOREGROUND
Docker コンテナ管理
 バックグラウンドで起動中の web01コンテナに接続
 バックグラウンドで起動中の web01コンテナを停止
$ sudo docker exec -it web01 /bin/bash
$ sudo docker stop web01
$ sudo docker stop [container ID で指定することも可能]
Docker Hub でイメージ共有
 Docker Hub のアカウントを作成
 Docker Hubにログイン
 Docker Hub に先ほど作成した「hoge/httpd」
イメージをPUSH
$ sudo docker login
$ sudo docker push hoge/httpd
https://www.docker.com/
実践編
Dockerfile
Dockerには、Dockerコンテナ
の構成情報をテキスト形式で記
述できる「Dockerfile」という
仕様がある。
そして、Dockerfile を解釈し
Dockerイメージを作成する
「docker build」コマンドが用
意されている。
Dockerfile
docker
build
Docker
イメージ
Dockerfile
FROM ubuntu
MAINTAINER hoge<hoge@sample.net>
RUN apt-get install -y httpd
EXPOSE 80
CMD ["httpd", "-D" "FOREGROUND"]
① ubuntu(latest)をベースとする
② 管理者はhoge <hoge@sample.net>
③ httpdをインストール
④ ポート80番をオープン
⑤ httpdサーバをフォアグランドに起動(上書き可能)
以上の手順が実行された Docker イメージを作成
Dockerfile
コマンド 意味
FROM 元となるDockerイメージの指定
MAINTAINER 作成者の情報
RUN コマンドの実行
ADD ファイル/ディレクトリの追加
CMD コンテナーの実行コマンド 1
ENTRYPOINT コンテナーの実行コマンド 2
WORKDIR 作業ディレクトリの指定
ENV 環境変数の指定
USER 実行ユーザーの指定
EXPOSE ポートのエクスポート
VOLUME ボリュームのマウント
Dockerイメージのビルド
 Dockerfile をビルドし hoge/ubu:1.0 という
Dockerイメージを生成
$ cd [Dockerfileがあるディレクトリ]
$ sudo docker build –t hoge/app:1.0 ./
Dockerfile
docker
build
Docker
イメージ
hoge/app:1.0
Dockerイメージのビルド
 docker build 書式
# docker build ¥
[-t ユーザ名/イメージ名[:タグ名]] ¥
Dockerfile格納ディレクトリ
引用 : http://www.slideshare.net/durdn/be-a-better-developer-with-docker
Dockerイメージのビルド
Data Volume
複数のコンテナ間で永続的なデータや共有データ
を扱うための特別なヴォリューム
(ディレクトリ)。
Data Volume に対する変更は直接反映され、イ
メージの変更に含まれない。
Data Volume は参照するコンテナがなくなって
も存続する。
Data Volume
ホストとのヴォリューム共有
引用 : http://www.slideshare.net/durdn/be-a-better-developer-with-docker
Data Volume
 ホストの /opt/test-app/ をコンテナの /app と
してマウントさせる
$ sudo docker run -it -v /opt/test-app:/app ubuntu /bin/bash
ホスト側
マウントされるディレクトリ
コンテナ側
マウントディレクトリ
Data Volume Container
コンテナ間のヴォリューム共有
引用 : http://www.slideshare.net/durdn/be-a-better-developer-with-docker
-v /var/volume1
-v /var/volume2
Data Volume
Container
Data Volume Container
 /var/volume を共有するデータボリュームコン
テナを生成+起動する
 上記コンテナの /var/volume を共有するコン
テナを生成+起動する
$ sudo docker run -it -v /var/volume --name vol1 ubuntu /bin/bash
$ sudo docker run -it --volumes-from vol1 ubuntu /bin/bash
FROM ubuntu
...
...
VOLUME ["/var/volume"]
CMD ["/bin/bash"]
Data Volume Container
ユーザデータなど、壊せない情報の格納場所とし
て Data Volume Container を利用する。
Webサーバ
コンテナ
APサーバ
コンテナ
DBサーバ
コンテナ
Data Volume コンテナ
ログ保存先 Volume
DB データ格納
Volume
ネットワークポートマッピング
コンテナを起動するときに、コンテナ内部で使用
するポートを、任意のホスト側ポート番号
(49152以降推奨)に割り当てることができる。
ホスト側のポート番号は、49000 ~ 49900 の
範囲で自動的にランダムな番号を割り当てたり、
ユーザが任意の番号を指定したりすることが可能。
ホスト
コンテナ
IP :X
PORT:X
IP :Y
PORT:Y
ポート
マッピング
ネットワークポートマッピング
 コンテナ内でオープンしているポートをホスト
側ランダムなポート番号にマッピング
 コンテナのポート22がホストのどのポートに
マッピングされたか知る方法
$ sudo docker run -d -P ubuntu:latest /usr/sbin/sshd -D
$ sudo docker port [コンテナID] 22
$ sudo docker run -d -p 22 ubuntu:latest /usr/sbin/sshd -D
ネットワークポートマッピング
 コンテナのポート22をユーザが指定するホスト
側ポート番号2222にマッピング
$ sudo docker run -d -p 2222:22 ubuntu:latest /usr/sbin/sshd -D
ホスト
コンテナ
IP :X
PORT:2222
IP :Y
PORT:22
ポート
マッピング
ホスト側ポート コンテナ側ポート
コンテナ・リンク
複数のコンテナ間で、専用のネットワークを構築
することができる。
コンテナA
(コンテナBに接続)
コンテナB
(リンク元)
コンテナ・リンク
 リンク元のコンテナA
 コンテナAに接続するコンテナB
$ sudo docker run –d --name pg ubuntu:latest postmaster -D /usr/local/pgsql/data
$ sudo docker run -d --link pg:db ubuntu:latest /someService
コンテナB
環境変数
DB_PORT_5432_TCP_ADDR=172.17.0.2
DB_PORT=tcp://172.17.0.2:5432
DB_5432_TCP=tcp://172.17.0.2:5432
DB_PORT_5432_TCP_PORT=5432
/etc/hosts
172.17.0.2 db
デモ(その4)
Dockerを使用した
書籍管理アプリケーション実行環境構築
デモ環境
ホスト
cnetos 6.6 / 64bit
Kernel 2.6.32-504.el6.x86_64
docker
version 1.4.1, build 5bc2ff8/1.4.1
基本編と
同じ環境
ホストサーバ
Data Volume
完成イメージ
APサーバ
コンテナ
Tomcat
DBサーバ
コンテナ
postgresql
データベース
ファイル
ログ
ファイル
ポート
フォワード
8080:8080
コンテナ
リンク
DB接続
利用者
簡易版書籍管理
アプリケーション
Data Volume
DBサーバ構築
postgreSQL
構築用
Dockerfile
docker
build
PostgreSQL
Dockerイメージ
hoge/postgres:1.0
DB初期化用
コンテナ
データベースファイル
PostgreSQL
実行コンテナ
DBファイル
初期化
 DBサーバのDockerfile
DBサーバ構築
FROM centos:latest
MAINTAINER hoge <hoge@mail.jp>
# postgerSQL セットアップ
RUN yum -y install postgresql-server
# PORT 開放
EXPOSE 5432
# コンテナ実行コマンド
CMD su - postgres -c "postgres -D /var/lib/pgsql/data"
 DBサーバイメージ(hoge/postgres)ビルド
 Data Volume を格納するディレクトリをホスト
に作成
DBサーバ構築
$ sudo docker build -t hoge/postgres:1.0 [dockerfile格納DIR]
$ sudo mkdir -p /docker_mnt/pgsql/data
DBサーバ構築
 Postgresql初期セットアップ用コンテナ起動
 Postgresqlの初期セットアップ
$ sudo docker run -it --rm ¥
-v /docker_mnt/pgsql/data:/var/lib/pgsql/data ¥
hoge/postgres:1.0 /bin/bash
[コンテナ内のbashで操作]
# chown -R postgres:postgres /var/lib/pgsql/data
# su - postgres
$ initdb --encoding=UTF8 --no-locale
$ pg_ctl -D /var/lib/pgsql/data start
$ psql・・ 必要に応じてDBオブジェクトを構築し当該コンテナを終了
PostgreSQL初期セットアップは、Data Volumeに格納されるデータベースファイルを作成するものである。
このため、本作業は最初に一度だけ行えば良い。
DBサーバ構築
 DBサーバコンテナ生成してPostgrrSQLを起動
$ sudo docker run -d ¥
-v /docker_mnt/pgsql/data:/var/lib/pgsql/data ¥
-p 5432:5432 --name db01 hoge/postgres:1.0
実行コマンドの指定がない場合
Dockerfile の CMD で定義した
コマンドが起動する
Data Volume
APサーバ構築
Tomcat
構築用
Dockerfile
docker
build
Tomcat
Dockerイメージ
hoge/tomcat:1.0
ログファイル
Tomat
実行コンテナ
APサーバ構築
 APサーバのDockerfile
FROM centos:latest
MAINTAINER hoge
# Tomcat セットアップ
RUN yum -y install tomcat
RUN echo 'export CATALINA_BASE="/usr/share/tomcat"' >> /root/.bashrc
# Tomcat 起動スクリプトをコピー
ADD tomcat_start.sh /usr/bin/
RUN chmod a+x /usr/bin/tomcat_start.sh
# 書籍管理アプリをデプロイ
ADD bookmgr.war /usr/share/tomcat/webapps/
# PORT 開放
EXPOSE 8080
# コンテナ実行コマンド
ENTRYPOINT ["/usr/bin/tomcat_start.sh"]
APサーバ構築
(参考)tomcat_start.sh
#! /bin/bash
export CATALINA_BASE="/usr/share/tomcat"
/usr/sbin/tomcat start
trap '/usr/sbin/tomcat stop; sleep 2; exit 0' TERM
while :
do
sleep 1
done
APサーバ構築
 APサーバイメージ(hoge/tomcat)ビルド
 Data Volume を格納するディレクトリをホストに作成
$ sudo docker build -t hoge/tomcat:1.0 [dockerfile格納DIR]
$ sudo mkdir -p /docker_mnt/tomcat/logs
$ sudo chmod a+w /docker_mnt/tomcat/logs
APサーバ構築
 APサーバコンテナを生成、Tomcat を起動
$ sudo docker run -d ¥
-v /docker_mnt/tomcat/logs:/usr/share/tomcat/logs ¥
-p 8080:8080 --link db01:db ¥
--name ap01 hoge/tomcat:1.0
Dockerfile の ENTRYPOINTで定義した
起動コマンドは docker run で別のコマン
ドに変更することができない。
活用のススメ
Docker の利点
 コンテナなのでオーバヘッドが少なく、動作が軽い
 コンテナイメージを手軽にやり取りできる
 コンテナは様々な環境で等しく動く
 各コンテナは、いろいろなディストリビューションや
バージョンで構成できる
 コンテナ(インフラ)をコードで表現できる
利点を生かすためには
 コンテナ内で動くアプリケーションは、できる
だけシンプルなものであること。
 複数のコンテナで動く、アプリケーションはで
きるだけ疎結合に連携すること。
 各アプリケーションは、ステートレスな作りで
あること。
 ユーザデータなどの保存先は分離できること。
マイクロ・サービス
ひとつのアプリケーションを、大きな一枚岩の塊ではなく、
複数の軽量なサービスを連携させたアーキテクチャで実現
する。
各サービスはそれぞれのプロセスで動き、サービス間の
メッセージは、HTTP経由でAPI呼び出しされるか、
RabbitMQやZeroMQといった軽量メッセージングシステ
ムによる通信で交換される。
サービスごとに言語やデータベースなどは統一されず、個
別に適切なものが選択される。また、サービスごとにデー
タを持ち、統合されていない。
どんなシステムに使えるか
 すでにWeb関連サービス では主流になりつつある。
2014年5月の段階で『自社のサービスは全てDocker のようなコンテナで動い
ており、旧来の仮想マシンは使用していない』と発表。
 近い将来、科学技術計算、情報通信、製造、流通など
様々な分野での活用が予想されるが、うまく活用するた
めには、シンプルで小さなアプリケーションであること
が重要。
複雑で大きなモジュールの塊から、疎結合で自律的な小
さなアプリケーション群を連携させるマイクロサービス
へ転換できるかどうかが鍵!!
商用として利用できますか?
 Yes! 既にWeb系のサービスはコンテナの活用
が進んでいる。
 しかし、他のオープンソース同様、何か問題が
あった場合は、自分たちで解決する必要がある。
 製品に詳しい技術者の育成が重要。
なにから始めるか
社内
Docker リポジトリ
結合試験環境1系
結合試験環境2系
Docker活用のススメ
開発環境
(開発PC)
アプリケーション
コンテナイメージ
ステージング環境
アプリケーション
コンテナイメージ
アプリケーション
コンテナイメージ
アプリケーション
コンテナイメージ
アプリケーション
コンテナイメージ
社内
git/svn リポジトリ
結合試験環境1系
Docker活用のススメ
開発環境
(開発PC)
アプリケーション
コンテナイメージ
Dockerfile
Dockerfile
結合試験環境N系
アプリケーション
コンテナイメージ
自動テスト環境
社内
git/svn リポジトリ
結合試験環境1系
Docker活用のススメ
開発環境
(開発PC)
アプリケーション
コンテナイメージ
アプリケーション
コンテナイメージ
Dockerfile
Dockerfile
CIサーバ
Jenkins
社内
Docker リポジトリ
アプリケーション
コンテナイメージ
結合試験環境N系
アプリケーション
コンテナイメージ
コンテナとは、 CPUやメモリ、プロセス空
間、ディスク、ネットワークなどを隠蔽す
るOS(Linuxカーネル)が持つ機能を使っ
て実現している。
コンテナを簡単に使えるようにしたツール
のひとつにLXCがある。
Docker は、LXCを拡張してコンテナを更に
簡単に扱えるようにしたツール。
Docker Hubというリポジトリを経由すると、
インターネットを介して、コンテナをポー
タブルにできる。
Dockerfile という形式で、サーバインフラ
をコード化することができる。
Docker をうまく活用するには、それなりの
アーキテクチャを検討する必要がある。
つまり、疎結合で自律的な小さなアプリ
ケーション群を連携させるマイクロサービ
ス型アーキテクチャであることが重要。
Docker は、主要なベンダを巻き込みながら、
非常に影響力の大きなエコシステムを構築
しており、今後ますます発展することが見
込まれる。
まずは、開発業務や検証業務での活用をお
勧め。
ぜひ自分でも Docker を
インストールしてさわっ
て見て下さい!!
これを機会に、複数
の Docker使い が誕
生することを期待し
ています
期待しています
おしまい
ご静聴ありがとう
ございました

Mais conteúdo relacionado

Mais procurados

Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Masahito Zembutsu
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するKohei Tokunaga
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)NTT DATA Technology & Innovation
 
Docker 基本のおさらい
Docker 基本のおさらいDocker 基本のおさらい
Docker 基本のおさらいNaoki Nagazumi
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
DockerクイックツアーEtsuji Nakai
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)NTT DATA Technology & Innovation
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所Hidetoshi Hirokawa
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 

Mais procurados (20)

Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
 
Docker 基本のおさらい
Docker 基本のおさらいDocker 基本のおさらい
Docker 基本のおさらい
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所DevOpsにおけるAnsibleの立ち位置と使い所
DevOpsにおけるAnsibleの立ち位置と使い所
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 

Destaque

コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響Masahito Zembutsu
 
本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン
本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン
本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン雄哉 吉田
 
マイクロサービスとOSSのおいしい関係
マイクロサービスとOSSのおいしい関係マイクロサービスとOSSのおいしい関係
マイクロサービスとOSSのおいしい関係Fumiya Shinozuka
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Etsuji Nakai
 
神奈川Ruby会議の会場係 だけが知る密かな危機の話
神奈川Ruby会議の会場係だけが知る密かな危機の話神奈川Ruby会議の会場係だけが知る密かな危機の話
神奈川Ruby会議の会場係 だけが知る密かな危機の話Naoki Nagazumi
 
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうTakashi Abe
 
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解するEtsuji Nakai
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何かYusuke Suzuki
 
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyKazuhito Miura
 

Destaque (9)

コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響
 
本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン
本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン
本格的にコンテナを利用するために ~ Azureでのコンテナ利用パターン
 
マイクロサービスとOSSのおいしい関係
マイクロサービスとOSSのおいしい関係マイクロサービスとOSSのおいしい関係
マイクロサービスとOSSのおいしい関係
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
神奈川Ruby会議の会場係 だけが知る密かな危機の話
神奈川Ruby会議の会場係だけが知る密かな危機の話神奈川Ruby会議の会場係だけが知る密かな危機の話
神奈川Ruby会議の会場係 だけが知る密かな危機の話
 
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
 
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何か
 
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
 

Semelhante a そろそろ知っておきたい!!コンテナ技術と Dockerのキホン

Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Masahito Zembutsu
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようTakashi Makino
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Microsoft Corporation
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門hiro nemu
 
Dockerことはじめ的なはなし
Dockerことはじめ的なはなしDockerことはじめ的なはなし
Dockerことはじめ的なはなしpinmarch_t Tada
 
ゆるふわなDockerの使い方
ゆるふわなDockerの使い方ゆるふわなDockerの使い方
ゆるふわなDockerの使い方Kento Aoyama
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKon Yuichi
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料teruyaono1
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSnpsg
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker雄哉 吉田
 
Webアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオンWebアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオン虎の穴 開発室
 

Semelhante a そろそろ知っておきたい!!コンテナ技術と Dockerのキホン (20)

Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
Dockerことはじめ的なはなし
Dockerことはじめ的なはなしDockerことはじめ的なはなし
Dockerことはじめ的なはなし
 
20230128.pptx
20230128.pptx20230128.pptx
20230128.pptx
 
ゆるふわなDockerの使い方
ゆるふわなDockerの使い方ゆるふわなDockerの使い方
ゆるふわなDockerの使い方
 
Docker入門
Docker入門Docker入門
Docker入門
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
 
Docker v14
Docker v14Docker v14
Docker v14
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
Webアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオンWebアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオン
 

Último

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Último (9)

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

そろそろ知っておきたい!!コンテナ技術と Dockerのキホン