Dockerイメージ構築 実践テクニック

Emma Haruka Iwao
Emma Haruka IwaoDeveloper Advocate
Dockerイメージ構築
実践テクニック
Haruka Iwao
Storage Solution Architect, Red Hat K.K.
February 12, 2015
自己紹介
•  岩尾 はるか (@Yuryu)
•  所属: レッドハット株式会社
– ストレージソリューションアーキテクト
– 大手家電メーカー、ソーシャルゲーム会社、
Web広告ベンチャーを経て現職
•  大学・大学院で高性能計算(HPC)、分散
ファイルシステムを研究
•  ゲーマーです(主に某国産MMORPG)
Dockerイメージの構造
RHEL
nginx
Webサーバー
OSの基本
ファイル
OSの基本
ファイル
OSの基本
ファイル
nginx
nginx
HTML
ファイル
追加
追加
nginxイメージを元に作成
RHELイメージを元に作成
実体は共有
新規
Dockerイメージの作成手順
•  2ステップで作成できます
•  Dockerfile の作成
•  $ docker build -t <tag> Dockerfileの場所
– 例) $ docker build -t yuryu/test .
Dockerfileとは
•  イメージ作成の手順を書いたもの
•  例)
FROM	
  registry.access.redhat.com/rhel	
  
	
  
RUN	
  yum	
  -­‐y	
  install	
  httpd	
  
ADD	
  index.html	
  /var/www/html/index.html	
  
	
  
EXPOSE	
  80	
  
	
  
CMD	
  ["/usr/sbin/httpd",	
  "-­‐DFOREGROUND"]	
  
Dockerfile 文法
•  FROM - ベースとなるイメージ
•  RUN - イメージ構築で実行するコマンド
•  ADD - イメージ内にファイルを追加
•  EXPOSE - ポートを外に見せる
•  CMD - デフォルトで実行されるコマンド
FROM	
  registry.access.redhat.com/rhel	
  
	
  
RUN	
  yum	
  -­‐y	
  install	
  httpd	
  
ADD	
  index.html	
  /var/www/html/index.html	
  
	
  
EXPOSE	
  80	
  
	
  
CMD	
  ["/usr/sbin/httpd",	
  "-­‐DFOREGROUND"]	
  
Dockerfile 文法(2)
•  MAINTAINER - メンテナを書く
•  USER - コンテナ内で実行するユーザー
•  WORKDIR - 基準ディレクトリの変更
•  COPY - ホストからファイルのコピー
– ADD が大きすぎるので分割
•  その他リファレンスは下記
– https://docs.docker.com/reference/
builder/	
  
作って動かす
•  $ docker run で実行
– -d バックグラウンドで実行
– -P EXPOSE したポートを割り当て
$	
  mkdir	
  demo-­‐apache	
  
$	
  cd	
  demo-­‐apache	
  
$	
  curl	
  -­‐L	
  -­‐o	
  Dockerfile	
  bit.ly/1FA902p	
  
$	
  echo	
  “Hello,	
  Docker!”	
  >	
  index.html	
  
$	
  build	
  -­‐t	
  demo-­‐apache	
  .	
  
	
  
$	
  docker	
  run	
  -­‐dP	
  demo-­‐apache	
  
docker build 実行例
[yuryu@rhel7	
  docker-­‐apache]$	
  docker	
  build	
  -­‐t	
  demo-­‐apache	
  .	
  
Sending	
  build	
  context	
  to	
  Docker	
  daemon	
  3.584	
  kB	
  
Sending	
  build	
  context	
  to	
  Docker	
  daemon	
  	
  
Step	
  0	
  :	
  FROM	
  registry.access.redhat.com/rhel	
  
	
  -­‐-­‐-­‐>	
  e1f5733f050b	
  
Step	
  1	
  :	
  RUN	
  yum	
  -­‐y	
  install	
  httpd	
  
	
  -­‐-­‐-­‐>	
  Using	
  cache	
  
	
  -­‐-­‐-­‐>	
  3679b20fa9ba	
  
Step	
  2	
  :	
  ADD	
  index.html	
  /var/www/html/index.html	
  
	
  -­‐-­‐-­‐>	
  Using	
  cache	
  
	
  -­‐-­‐-­‐>	
  db91c285d5ad	
  
Step	
  3	
  :	
  EXPOSE	
  80	
  
	
  -­‐-­‐-­‐>	
  Using	
  cache	
  
	
  -­‐-­‐-­‐>	
  c9ceb17b169f	
  
Step	
  4	
  :	
  CMD	
  /usr/sbin/httpd	
  -­‐DFOREGROUND	
  
	
  -­‐-­‐-­‐>	
  Using	
  cache	
  
	
  -­‐-­‐-­‐>	
  4e99155706f6	
  
Successfully	
  built	
  4e99155706f6	
  
docker run 実行例
•  ランダムなポートと、コンテナID、コン
テナ名が割り当てられる
[yuryu@rhel7	
  docker-­‐apache]$	
  docker	
  run	
  -­‐dP	
  demo-­‐apache	
  
8d6b20a1e23427ad575bed1aee9cbea5406e5ed648a645e955cd6c6c6a
34ea0a	
  
[yuryu@rhel7	
  docker-­‐apache]$	
  docker	
  ps	
  
CONTAINER	
  ID	
  	
  	
  	
  	
  	
  	
  	
  IMAGE	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  COMMAND	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
CREATED	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  STATUS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  PORTS	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
NAMES	
  
8d6b20a1e234	
  	
  	
  	
  	
  	
  	
  	
  demo-­‐apache:latest	
  	
  	
  "/usr/sbin/httpd	
  
-­‐DF	
  	
  	
  4	
  seconds	
  ago	
  	
  	
  	
  	
  	
  	
  Up	
  4	
  seconds	
  	
  	
  	
  	
  	
  	
  	
  
0.0.0.0:49247-­‐>80/tcp	
  	
  	
  	
  jovial_jones	
  	
  	
  	
  	
  	
  	
  	
  	
  
いくつかの応用パターン
•  固定ポートの割り当て
•  コンテナのリンク
•  コンテナ内のボリュームを共有
•  コンテナ外とボリュームを共有
固定ポートの割り当て
•  $ docker run -p <host port>:<guest port>
•  $ docker port コマンドでもポートの割り
当てを確認できる
[yuryu@rhel7	
  docker-­‐apache]$	
  docker	
  run	
  -­‐dp	
  80:80	
  demo-­‐
apache	
  
b027be3d09ace7c8cac594c14d07d3ddda5c32f15e14f8a28297714a69
723c54	
  
[yuryu@rhel7	
  docker-­‐apache]$	
  docker	
  port	
  b027be3d09ac	
  
80/tcp	
  -­‐>	
  0.0.0.0:80	
  
コンテナのリンク
•  --link <コンテナ名>:alias
•  EXPOSEしたポートを環境変数に入れる
#	
  docker	
  run	
  -­‐d	
  -­‐e	
  MYSQL_ROOT_PASSWORD=root	
  -­‐-­‐name	
  mysql	
  
mysql	
  
#	
  docker	
  run	
  -­‐it	
  -­‐-­‐link	
  mysql:mysql	
  mysql	
  /bin/bash	
  
#	
  env	
  |grep	
  MYSQL_PORT	
  
MYSQL_PORT_3306_TCP_PORT=3306	
  
MYSQL_PORT_3306_TCP=tcp://172.17.0.155:3306	
  
MYSQL_PORT_3306_TCP_PROTO=tcp	
  
MYSQL_PORT_3306_TCP_ADDR=172.17.0.155	
  
MYSQL_PORT=tcp://172.17.0.155:3306	
  
#	
  mysql	
  -­‐-­‐host=$MYSQL_PORT_3306_TCP_ADDR	
  -­‐-­‐port=
$MYSQL_PORT_3306_TCP_PORT	
  -­‐-­‐password=root	
  
ALIAS_PORT_XXX
ALIAS_PORT_XXX_TCP
ALIAS_PORT_XXX_TCP_PROTO
ALIAS_PORT_XXX_TCP_ADDR
ALIAS_PORT_XXX_TCP_PORT
コンテナのリンク(図)
提供コンテナ 使うコンテナ
link
aliasEXPOSE
環境変数
コンテナ内のボリューム共有
•  例: VOLUME /var/lib/mysql
•  --volumes-from <コンテナ名> で利用
•  Data-only コンテナをベースに使うと良い
#	
  docker	
  run	
  -­‐d	
  -­‐-­‐name	
  mysql_volume	
  mysql	
  echo	
  MySQL	
  
Volume	
  Container	
  
#	
  docker	
  run	
  -­‐-­‐volumes-­‐from	
  mysql_volume	
  -­‐d	
  -­‐e	
  
MYSQL_ROOT_PASSWORD=root	
  -­‐-­‐name	
  mysql	
  mysql	
  
Docker 1.4以降は docker run の代わりに docker create を利用する
(ボリューム生成のタイミングが変更されている)
コンテナ外とのボリューム共有
•  -v <host path>:<container path>
•  SELinuxの設定が必要
– # chcon -Rt svirt_sandbox_file_t
$	
  mkdir	
  mysql-­‐volume;	
  cd	
  mysql-­‐volume	
  
$	
  sudo	
  chcon	
  -­‐Rt	
  svirt_sandbox_file_t	
  .	
  
$	
  docker	
  run	
  -­‐v	
  $(pwd):/var/lib/mysql	
  -­‐-­‐name	
  mysql	
  -­‐e	
  
MYSQL_ROOT_PASSWORD=root	
  -­‐d	
  mysql	
  
Data-onlyコンテナのバックアップ
•  ホストでボリュームを共有して、tarで固
める
$	
  mkdir	
  mysql-­‐volume;	
  cd	
  mysql-­‐volume	
  
$	
  sudo	
  chcon	
  -­‐Rt	
  svirt_sandbox_file_t	
  .	
  
$	
  sudo	
  docker	
  run	
  -­‐-­‐volumes-­‐from	
  mysql_volume	
  -­‐v	
  $(pwd):/
backup	
  -­‐-­‐name	
  mysql-­‐backup	
  fedora	
  tar	
  cfz	
  /backup/mysql-­‐
backup.tar.gz	
  /var/lib/mysql	
  
$	
  sudo	
  docker	
  run	
  -­‐-­‐volumes-­‐from	
  mysql_volume	
  -­‐v	
  $(pwd):/
backup	
  -­‐-­‐name	
  mysql-­‐restore	
  fedora	
  tar	
  xf	
  /backup/mysql-­‐
backup.tar.gz	
  -­‐C	
  /	
  	
  
ボリューム共有
Data only
コンテナ
使うコンテナ
volumes-from
VOLUME
ホスト
-v <host>:<container>
Dockerで作るCI
開発者A
開発者B
コンテナの定義を共有
変更を通知
自動テストを実施
コンテナを取得して開発
開発者C
クラウドへデプロイを指示
GitHub
テスト済みコンテナイメージを
クラウドサービスへデプロイ
コンテナイメージを作成
今回のデモの定義
•  GitHubで公開中
•  https://github.com/yuryu/docker-­‐
jenkins-­‐demo	
  
Red Hat Enterprise Linux
テストソースコードを取得
生成
起動
JenkinsのDockerfile
FROM	
  registry.access.redhat.com/rhel	
  
MAINTAINER	
  Haruka	
  Iwao	
  
	
  
RUN	
  yum	
  -­‐y	
  upgrade	
  
	
  
RUN	
  curl	
  -­‐o	
  /etc/yum.repos.d/jenkins.repo	
  http://pkg.jenkins-­‐
ci.org/redhat/jenkins.repo	
  
RUN	
  rpm	
  -­‐-­‐import	
  https://jenkins-­‐ci.org/redhat/jenkins-­‐
ci.org.key	
  
RUN	
  yum	
  -­‐y	
  install	
  jenkins	
  java	
  git	
  docker	
  
	
  
ADD	
  run-­‐jenkins.sh	
  /root/run-­‐jenkins.sh	
  
	
  
EXPOSE	
  8080	
  
	
  
CMD	
  /root/run-­‐jenkins.sh	
  
run-jenkins.sh
#!/bin/sh	
  
	
  
JENKINS_HOME="/var/lib/jenkins"	
  
JENKINS_USER="jenkins"	
  
JENKINS_JAVA_OPTIONS="-­‐Djava.awt.headless=true"	
  
JENKINS_PORT="8080"	
  
JENKINS_HANDLER_MAX="100"	
  
JENKINS_HANDLER_IDLE="20"	
  
	
  
JAVA_CMD="/usr/bin/java	
  $JENKINS_JAVA_OPTIONS	
  -­‐DJENKINS_HOME=$JENKINS_HOME	
  -­‐
jar	
  /usr/lib/jenkins/jenkins.war"	
  
OPTIONS="-­‐-­‐httpPort=$JENKINS_PORT	
  -­‐-­‐handlerCountMax=$JENKINS_HANDLER_MAX	
  -­‐-­‐
handlerCountMaxIdle=$JENKINS_HANDLER_IDLE	
  "	
  
	
  
cd	
  "$JENKINS_HOME"	
  
exec	
  runuser	
  -­‐u	
  $JENKINS_USER	
  -­‐-­‐	
  $JAVA_CMD	
  $OPTIONS
SlaveのDockerfile
FROM	
  registry.access.redhat.com/rhel	
  
MAINTAINER	
  Haruka	
  Iwao	
  
	
  
RUN	
  yum	
  -­‐y	
  upgrade	
  
	
  
RUN	
  yum	
  -­‐y	
  swap	
  -­‐-­‐	
  remove	
  fakesystemd	
  -­‐-­‐	
  install	
  systemd	
  systemd-­‐libs	
  
RUN	
  yum	
  -­‐y	
  install	
  openssh-­‐server	
  java-­‐1.7.0-­‐openjdk	
  
	
  
RUN	
  adduser	
  jenkins	
  
RUN	
  echo	
  "jenkins:jenkins"	
  |	
  chpasswd	
  
RUN	
  ssh-­‐keygen	
  -­‐f	
  /etc/ssh/ssh_host_rsa_key	
  -­‐N	
  ''	
  -­‐t	
  rsa	
  
RUN	
  ssh-­‐keygen	
  -­‐f	
  /etc/ssh/ssh_host_dsa_key	
  -­‐N	
  ''	
  -­‐t	
  dsa	
  
RUN	
  ssh-­‐keygen	
  -­‐f	
  /etc/ssh/ssh_host_ecdsa_key	
  -­‐N	
  ''	
  -­‐t	
  ecdsa	
  
	
  
RUN	
  yum	
  -­‐y	
  install	
  gcc	
  gcc-­‐c++	
  automake	
  autoconf	
  make	
  git	
  libtool	
  
	
  
EXPOSE	
  22	
  
	
  
CMD	
  ["/usr/sbin/sshd",	
  "-­‐D"]	
  
Slaveを作るときの注意点
•  RHEL標準のコンテナイメージには
systemdが入っていません
•  fakesystemdが入っている
•  systemdに依存するパッケージを入れる場
合は、本物のsystemdに置き換える
– yum -y swap -- remove fakesystemd -- install
systemd systemd-libs
•  systemdをinitとして実行する必要は無い
Jenkins Docker Plugin
•  JenkinsスレーブをDockerで実行
•  テストごとにコンテナを生成、削除
DockerにTCPをlistenさせる
•  Jenkinsから制御するために必要
•  /etc/sysconfig/dockerを書き換える
•  このままだと認証なしに誰でもアクセス
可能になるので注意!
OPTIONS=-­‐-­‐selinux-­‐enabled	
  -­‐H	
  tcp://172.17.42.1:5555	
  -­‐H	
  fd://	
  
Jenkins実行手順
•  Data-onlyコンテナを起動してから、
Jenkins本体を起動する
$	
  docker	
  run	
  -­‐d	
  -­‐v	
  /var/lib/jenkins	
  -­‐-­‐name	
  
jenkins-­‐home	
  yuryu/demo-­‐jenkins	
  echo	
  Data-­‐only	
  
container	
  for	
  jenkins	
  
$	
  docker	
  run	
  -­‐-­‐volumes-­‐from	
  jenkins-­‐home	
  -­‐d	
  -­‐p	
  
8080:8080	
  yuryu/demo-­‐jenkins	
  
Jenkins本体の設定
•  Manage Jenkins > Configure System
Dockerの状態を確認
•  Manage Jenkins > Docker
プロジェクトの設定
今回デモで使うプロジェクト
•  簡単なautoconf	
  /	
  gtest	
  を使うCのプロジェ
クトを用意しました	
  
•  https://github.com/yuryu/gtest-­‐demo
テスト実行中の様子
•  コンテナ内で configure が走っている
テスト終了後
•  設定すれば、コンテナをイメージに
commitできる
実際にやってみます
cAdvisor
•  Dockerのための監視ツール
– https://github.com/google/cadvisor
cAdvisorの画面
cAdvisor起動方法
#	
  setenforce	
  Permissive	
  
$	
  docker	
  run	
  	
  
	
  	
  -­‐-­‐volume=/:/rootfs:ro	
  	
  
	
  	
  -­‐-­‐volume=/var/run:/var/run:rw	
  	
  
	
  	
  -­‐-­‐volume=/sys:/sys:ro	
  	
  
	
  	
  -­‐-­‐volume=/var/lib/docker/:/var/lib/docker:ro	
  	
  
	
  	
  -­‐-­‐publish=8080:8080	
  	
  
	
  	
  -­‐-­‐detach=true	
  	
  
	
  	
  -­‐-­‐name=cadvisor	
  	
  
	
  	
  -­‐-­‐volume=/cgroup:/cgroup	
  	
  
	
  	
  google/cadvisor:latest
ご清聴ありがとうございました
1 of 38

Recommended

爆速プレビュープロキシ pool by
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ poolmookjp
12.1K views19 slides
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4 by
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Emma Haruka Iwao
37K views45 slides
DockerをRed Hatはどのように見ているのか by
DockerをRed Hatはどのように見ているのかDockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかEmma Haruka Iwao
9.6K views35 slides
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション by
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションMasahito Zembutsu
12.8K views74 slides
Docker実践入門 by
Docker実践入門Docker実践入門
Docker実践入門hiro nemu
7.4K views55 slides
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月 by
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
13.3K views42 slides

More Related Content

What's hot

Docker社内勉強会 by
Docker社内勉強会Docker社内勉強会
Docker社内勉強会osamu_takezawa
1.1K views25 slides
Docker入門: コンテナ型仮想化技術の仕組みと使い方 by
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
68.7K views63 slides
Docker超入門 by
Docker超入門Docker超入門
Docker超入門Katsunori Kanda
1.1K views21 slides
Docker入門 by
Docker入門Docker入門
Docker入門Keita Midorikawa
315 views30 slides
【社内勉強会】Docker入門 by
【社内勉強会】Docker入門【社内勉強会】Docker入門
【社内勉強会】Docker入門Kazuki Murahama
10.5K views20 slides
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座 by
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
20.3K views130 slides

What's hot(20)

Docker入門: コンテナ型仮想化技術の仕組みと使い方 by Yuichi Ito
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito68.7K views
【社内勉強会】Docker入門 by Kazuki Murahama
【社内勉強会】Docker入門【社内勉強会】Docker入門
【社内勉強会】Docker入門
Kazuki Murahama10.5K views
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座 by Masahito Zembutsu
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
Masahito Zembutsu20.3K views
JAWS-UG コンテナ支部 Docker入門 ハンズオン by Ryo Nakamaru
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
Ryo Nakamaru1.4K views
Docker ComposeでMastodonが必要なものを梱包する話 by Masahito Zembutsu
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu7.2K views
Docker地雷n本勝負 by RyutaKoide
Docker地雷n本勝負Docker地雷n本勝負
Docker地雷n本勝負
RyutaKoide5.5K views
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン by Naoki Nagazumi
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
Naoki Nagazumi18.2K views
Dockerについて by 74th
DockerについてDockerについて
Dockerについて
74th 3.9K views
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編 by Masahito Zembutsu
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu4.6K views
オトナのDocker入門 by Tsukasa Kato
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
Tsukasa Kato2.8K views
Docker with RHEL7 技術勉強会 by Etsuji Nakai
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
Etsuji Nakai6K views
捕鯨!詳解docker by 雄哉 吉田
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田21.7K views
DockerでWordPressサイトを開発してみよう by mookjp
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
mookjp47.1K views
Dockerイメージの理解とコンテナのライフサイクル by Masahito Zembutsu
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu82.4K views
Dockerクイックツアー by Etsuji Nakai
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
Etsuji Nakai53.6K views

Similar to Dockerイメージ構築 実践テクニック

Building production server on docker by
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
53 views24 slides
Building production server on docker by
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
1.2K views24 slides
Dockerのキホンその2 Docker Compose Swarm Machine 利用編 by
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
5.6K views75 slides
Docker handson by
Docker handsonDocker handson
Docker handsonkoda3
427 views118 slides
ラズパイ2で動く Docker PaaSを作ってみたよ by
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
3.6K views28 slides
Dockerハンズオン by
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
2.3K views66 slides

Similar to Dockerイメージ構築 実践テクニック(20)

Building production server on docker by Hiroshi Miura
Building production server on dockerBuilding production server on docker
Building production server on docker
Hiroshi Miura53 views
Building production server on docker by Hiroshi Miura
Building production server on dockerBuilding production server on docker
Building production server on docker
Hiroshi Miura1.2K views
Dockerのキホンその2 Docker Compose Swarm Machine 利用編 by Naoki Nagazumi
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Naoki Nagazumi5.6K views
Docker handson by koda3
Docker handsonDocker handson
Docker handson
koda3427 views
ラズパイ2で動く Docker PaaSを作ってみたよ by npsg
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg3.6K views
Dockerハンズオン by Kazuyuki Mori
DockerハンズオンDockerハンズオン
Dockerハンズオン
Kazuyuki Mori2.3K views
Hadoop on LXC by 俊夫 森
Hadoop on LXCHadoop on LXC
Hadoop on LXC
俊夫 森3.4K views
Circle ci and docker+serverspec by Tsuyoshi Yamada
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
Tsuyoshi Yamada8.1K views
コマンドラインツールとしてのDocker by 74th
コマンドラインツールとしてのDockerコマンドラインツールとしてのDocker
コマンドラインツールとしてのDocker
74th 1.3K views
仮想化した DC を PowerShell で複製する by junichi anno
仮想化した DC を PowerShell で複製する仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
junichi anno3.8K views
Dockerの仕組みとIIJ社内での利用例 by maebashi
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi18K views
Docker Swarm モード にゅうもん by Masahito Zembutsu
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
Masahito Zembutsu7.1K views
WSL2+docker+JupyterとVS Codeリモート環境の構築 by Saito5656
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656 541 views
今さら聞けない人のためのDocker超入門 by Toru Miyahara
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
Toru Miyahara1.3K views

More from Emma Haruka Iwao

Friction Logging and Internal Advocacy, DevRel/Asia 2020 by
Friction Logging and Internal Advocacy, DevRel/Asia 2020Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020Emma Haruka Iwao
363 views20 slides
Woman Tech Terrace 2020 Keynote - 夢を持ち続ける by
Woman Tech Terrace 2020 Keynote - 夢を持ち続けるWoman Tech Terrace 2020 Keynote - 夢を持ち続ける
Woman Tech Terrace 2020 Keynote - 夢を持ち続けるEmma Haruka Iwao
457 views29 slides
Google Cloud 一般公開データセット by
Google Cloud 一般公開データセットGoogle Cloud 一般公開データセット
Google Cloud 一般公開データセットEmma Haruka Iwao
785 views19 slides
Favorite English YouTube Channels by
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube ChannelsEmma Haruka Iwao
1.7K views18 slides
Docker事始めと最新動向 2015年6月 by
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Emma Haruka Iwao
5K views54 slides
CephとGluster次期バージョンでの新機能 by
CephとGluster次期バージョンでの新機能CephとGluster次期バージョンでの新機能
CephとGluster次期バージョンでの新機能Emma Haruka Iwao
7.6K views35 slides

More from Emma Haruka Iwao(20)

Friction Logging and Internal Advocacy, DevRel/Asia 2020 by Emma Haruka Iwao
Friction Logging and Internal Advocacy, DevRel/Asia 2020Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020
Emma Haruka Iwao363 views
Woman Tech Terrace 2020 Keynote - 夢を持ち続ける by Emma Haruka Iwao
Woman Tech Terrace 2020 Keynote - 夢を持ち続けるWoman Tech Terrace 2020 Keynote - 夢を持ち続ける
Woman Tech Terrace 2020 Keynote - 夢を持ち続ける
Emma Haruka Iwao457 views
Google Cloud 一般公開データセット by Emma Haruka Iwao
Google Cloud 一般公開データセットGoogle Cloud 一般公開データセット
Google Cloud 一般公開データセット
Emma Haruka Iwao785 views
Favorite English YouTube Channels by Emma Haruka Iwao
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube Channels
Emma Haruka Iwao1.7K views
Docker事始めと最新動向 2015年6月 by Emma Haruka Iwao
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao5K views
CephとGluster次期バージョンでの新機能 by Emma Haruka Iwao
CephとGluster次期バージョンでの新機能CephとGluster次期バージョンでの新機能
CephとGluster次期バージョンでの新機能
Emma Haruka Iwao7.6K views
Git for Begineers GitHub ハンズオン by Emma Haruka Iwao
Git for Begineers GitHub ハンズオンGit for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
Emma Haruka Iwao12.5K views
Docker向けOSとか[LT] @ #techgirl 2015/01 by Emma Haruka Iwao
Docker向けOSとか[LT] @ #techgirl 2015/01Docker向けOSとか[LT] @ #techgirl 2015/01
Docker向けOSとか[LT] @ #techgirl 2015/01
Emma Haruka Iwao5K views
RHEL, CentOS 7 に移行しよう! LT by Emma Haruka Iwao
RHEL, CentOS 7 に移行しよう! LTRHEL, CentOS 7 に移行しよう! LT
RHEL, CentOS 7 に移行しよう! LT
Emma Haruka Iwao16.3K views
分散ストレージ技術Cephの最新情報 by Emma Haruka Iwao
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
Emma Haruka Iwao16.5K views
初心者が Python で戸惑ったところ by Emma Haruka Iwao
初心者が Python で戸惑ったところ初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
Emma Haruka Iwao4.1K views
Ceph Loves OpenStack: Why and How by Emma Haruka Iwao
Ceph Loves OpenStack: Why and HowCeph Loves OpenStack: Why and How
Ceph Loves OpenStack: Why and How
Emma Haruka Iwao2.3K views
Rails Girls: Not Only for Girls - RubyKaigi 2014 by Emma Haruka Iwao
Rails Girls: Not Only for Girls - RubyKaigi 2014Rails Girls: Not Only for Girls - RubyKaigi 2014
Rails Girls: Not Only for Girls - RubyKaigi 2014
Emma Haruka Iwao20.8K views
AWS VM import / export ハンズオン by Emma Haruka Iwao
AWS VM import / export ハンズオンAWS VM import / export ハンズオン
AWS VM import / export ハンズオン
Emma Haruka Iwao7.7K views
私がCephを好きな7つの理由 by Emma Haruka Iwao
私がCephを好きな7つの理由私がCephを好きな7つの理由
私がCephを好きな7つの理由
Emma Haruka Iwao5.1K views
Ceph アーキテクチャ概説 by Emma Haruka Iwao
Ceph アーキテクチャ概説Ceph アーキテクチャ概説
Ceph アーキテクチャ概説
Emma Haruka Iwao30.4K views
EC2とLinuxディストロ事情 by Emma Haruka Iwao
EC2とLinuxディストロ事情EC2とLinuxディストロ事情
EC2とLinuxディストロ事情
Emma Haruka Iwao28.3K views

Recently uploaded

how query cost affects search behavior translated in JP by
how query cost affects search behavior translated in JPhow query cost affects search behavior translated in JP
how query cost affects search behavior translated in JPTobioka Ken
9 views16 slides
lt.pptx by
lt.pptxlt.pptx
lt.pptxtomochamarika
50 views13 slides
SSH超入門 by
SSH超入門SSH超入門
SSH超入門Toru Miyahara
48 views21 slides
AIで始めるRustプログラミング #SolDevHub by
AIで始めるRustプログラミング #SolDevHubAIで始めるRustプログラミング #SolDevHub
AIで始めるRustプログラミング #SolDevHubK Kinzal
20 views25 slides
robotics42.pptx by
robotics42.pptxrobotics42.pptx
robotics42.pptxNatsutani Minoru
166 views18 slides
図解で理解するvetKD by
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKDryoo toku
84 views22 slides

Recently uploaded(7)

how query cost affects search behavior translated in JP by Tobioka Ken
how query cost affects search behavior translated in JPhow query cost affects search behavior translated in JP
how query cost affects search behavior translated in JP
Tobioka Ken9 views
AIで始めるRustプログラミング #SolDevHub by K Kinzal
AIで始めるRustプログラミング #SolDevHubAIで始めるRustプログラミング #SolDevHub
AIで始めるRustプログラミング #SolDevHub
K Kinzal20 views
図解で理解するvetKD by ryoo toku
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKD
ryoo toku84 views
3Dプリンタでロボット作るよ#1_黎明編 by Yoshihiro Shibata
3Dプリンタでロボット作るよ#1_黎明編3Dプリンタでロボット作るよ#1_黎明編
3Dプリンタでロボット作るよ#1_黎明編

Dockerイメージ構築 実践テクニック