tosh-docker pub

Similar documents
今日からできる レガシーシステムの段階的コンテナ化

2. Docker の基本的な操作 1 docker hub の参照 2 DockerHub の Explorer リンクからアプリケーションを参照 3 アプリケーション検索 4 tag について 3. docker 基本コマンド 1 docker の

PowerPoint プレゼンテーション

はじめに 1. 概要本書では SuitePRO V3 にて提供している迷惑メールフィルタのバージョンアップ手順について案内しています なお この手順につきましては 迷惑メールフィルタ機能について オンラインマニュアルの内容通りに設定されていることを前提条件とします

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

2013年『STSSスキルコミュニティ』 テーマ別Kickoff資料

Helix Swarm2018.1アップグレード手順

PowerPoint プレゼンテーション

03_Docker

Docker Haruka Iwao Storage Solution Architect, Red Hat K.K. February 12, 2015

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

サーバセキュリティサービスアップグレード手順書 Deep Security 9.6SP1 (Windows) NEC 第 1 版 2017/08/23

XEN 仮想マシンの移植 Islandcenter.jp 2009/04/14 既に作成済みの XEN 仮想マシンを移植する方法を説明します 仮想マシンイメージは 通常 /var/lib/xen/image/myvmachine に作成されていますが このファイルを tar 圧縮してリムーバブルメデ

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

サーバセキュリティサービス 導入手順書 Deep Security 9.5SP1 (Windows) プロキシ経由編

平成22年度「技報」原稿の執筆について

Red Hat OpenShift上でのInterstage Application Serverの動作手順(Java EE 7編)

2

Red Hat OpenShift上でのInterstage Application Serverの動作手順(Java EE 6編)

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

Helix Swarm2018.1インストール手順

スライド 1

bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows ˆ Windows10 64bit Wi

CLUSTERPRO MC RootDiskMonitor CLUSTERPRO MC StorageSaver for BootDisk 仮想環境 ( ゲスト OS) での設定手順 (Linux 版 Windows 版 ) 2017(Apr) NEC Corporation 仮想環境 ( ゲスト

情報処理概論(第二日目)

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

目次 1. はじめに 本書対象者 PALRO のアプリケーションについて Ubuntu 8.04LTS の入手について Linux 上での開発環境の構築 事前準備 Ubuntu のインストール..

PowerPoint Presentation

オフラインメンテナンス説明書-ver5.0.0

別紙 : 検証環境の構築手順 ( 章 ) 1. サーバ設定 1.1 IP アドレス設定 サーバは以下の 6 台を用いる pgpool-ii サーバ 2 台 DB サーバ 3 台 上位サーバ 1 台 OS は全サーバで CentOS 6.4 x86_64 とする pgpool-ii のサー

情報処理概論(第二日目)

ATDEインストールガイド

2. FileZilla のインストール 2.1. ダウンロード 次の URL に接続し 最新版の FileZilla をダウンロードします URL: なお バージョンが異なるとファイル名が

目次 1. はじめに 本文書の目的 前提条件 略語 事前準備 ホスト名の名前解決 Linux 版パッケージ システム要件 ソフトウェア要件 パッケージ構成

CLUSTERPRO MC StorageSaver istorage M シリーズ使用時の設定手順 (HP-UX 版 Linux 版 Windows 版 ) 2013(Apr) NEC Corporation istorage M シリーズを使用する場合の StorageSaver 設定手順 (H

Microsoft Word - SSI_Smart-Trading_QA_ja_ doc

4 自己登録 の画面が表示されたら 送信 をクリックします 5 アクションが完了しました : 成功 が表示されたら 画面を下にスクロールし 画面右下隅の OK をクリックします 6Windows 用または Mac 用のキャンパスクラウドエージェントをクリックしてダウ ンロードしてください 8 ダウン

1. 対象装置 (1) 日立仮想 Fibre Channel アダプタ 適用装置 : EP8000 7xx 2. 仮想 FC アダプタドライバ来歴 この仮想 FC アダプタドライバは 次の機能拡張とバグ修正を含みます バージョン内容 新規追加 AIX ロ

日医特定健康診査システム ORCA PROJECT Linux 対応版インストールマニュアル (Version 対応 ) Debian Etch 用 版 2008 年 10 月 31 日 Copyright (C) 2008 Japan Medical Association

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

DIRECTIONS

CLUSTERPRO MC StorageSaver istorage M シリーズ使用時の設定手順 (HP-UX 版 Linux 版 Windows 版 ) 2013(Sep) NEC Corporation istorage M シリーズを使用する場合の StorageSaver 設定手順 (H

VPS では 通 常 はインスタンスが 1 個 です 停 止 と 再 起 動 を 選 択 できます CloudStack では インスタンスの 追 加 と 破 棄 の 機 能 を 利 用 することにより お 客 様 が 契 約 されているインスタンス 数 分 の 仮 想 サーバを 自 由 に 追 加

rndc BIND

Alibaba Cloud [ ナレッジドキュメント ] AWS EC2 から Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) AWS EC2 から Alibaba Cloud ECS への マイグレーション手順 (Linux 版 ) Ver

X-MON 3.1.0

目次 1 環境 バージョン インストール環境 インストール手順 前提条件 CentOS SSHD の設定 VSFTPD の設定 コンテンツ管理 CGI のイ

共有フォルダ接続手順 1 共有フォルダ接続ツールのダウンロード 展開 CSVEX のトップページから共有フォルダ接続ツールの zip ファイルをダウンロードします ダウンロードした zip ファイルを右クリックして すべて展開 を選択します (Windows 環境では zip ファイルを解凍しなくて

目次 1. 本書の役割 Windows Agent サポート OS とエディション サポート言語 Agent 稼働前提条件 Azure SDK リリース済み Windows Agent のサポート

Linux ドライバのインストール

1. 対象装置 (1) 日立仮想 Fibre Channel アダプタ 適用装置 : EP8000 7xx/S8xx/E8xx/S9xx 2. 仮想 FC アダプタドライバ来歴 この仮想 FC アダプタドライバは 次の機能拡張とバグ修正を含みます バージョン内容 新規追加 7

Microsoft Word - VPN...[.U.K.C.hLinux doc

Microsoft Word - ManagerIPChange.doc

Installation Guide for Linux

ソフトウェアエンジニアリング - 機能 #54

PowerPoint プレゼンテーション

SystemDirector Developer's Studio(V3.2) 適用ガイド

リバースプロキシー (シングル構成) 構築手順

情報処理概論(第二日目)

2. 生田仮想デスクトップ PC の接続方法 生田仮想デスクトップ PC に接続する方法は 次の 2 通りです 1. HTML アクセス Internet Explorer や Safari などのブラウザを用います PC に特別なソフトウェアをインストールす る必要が無いので 管理者権限をもってい

OSSTechドキュメント

Alibaba Cloud [ ナレッジドキュメント ] AWS EC2 から Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) AWS EC2 から Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) Ver SB

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

MF mypresto インストールガイド 目次 新規インストールの手順 (Windows 版 )... 2 MF mypresto の起動 (Windows 版 )... 7 新規インストールの手順 (Mac 版 )... 8 MF mypresto の起動 (Mac 版 ) 新規イン

第 3 回情報基礎演習 UNIX / Linux: ファイルシステム シェルを理解しよう! 谷口貴志 Panda に login し 情報基礎演習クラスの VDI から Ubuntu に接続し Linux に login した後, 左 上の Activity 端末のアイオン をクリック 端末 を立ち

rndc BIND DNS 設定 仕組み

Server Backup Manager 5.0 Debian および Ubuntu システムへの Server Backup Free のインストール 1. APT-GET をしてServer Backup Free をインストールする 2. Server Backup Free のインストール

環境セットアップ


ヒント $basearch はYum であり いえればベースアーキテクチャです(32ビット 64ビットなど) 3. ファイルにがきまれたかをするには のコマンドをします cat /etc/yum.repos.d/r1soft.repo 1.2 パッケージをインストールする 1. インストールされてい

Linux サーバー構築 LINUX サーバー構築目次... 1 第 1 章 LINUX のインストール... 6 第 1 節 CentOS とは... 6 第 1 項 CentOS とは... 6 第 2 節 CentOS インストールの準備... 6 第 1 項 iso ファイルの入手... 6

Microsoft PowerPoint _2.プログラミングの基礎_final

kiso2-01.key

3 パッケージからのインストール

スライド 1

Microsoft Word JA_revH.doc

本文中の記号の意味 本文中で使用している記号の意味について以下に示します システムの操作上または処理の手続き上において 特に注意していただきたい事項を記載しています 記載内容を必ずお読みください システムの操作上または処理の手続き上において 参考にしていただきたい事項を記載しています 必要に応じてお


オフラインメンテナンス説明書

DHCPサーバのクラスタ化

k_seminar_hands_on_for_linux_beginner.pptx

Dockerの商用サービスでの利用事例紹介

インストール手順 2 セットアップの種類 [ 標準インストール (S)] [Thunderbird を既定のメールプログラムとして使用する (U)] にチェックを入れ [ 次へ (N)] をクリックします インストール手順 3 セットアップ設定の確認 [ インストール (I)] をクリックします 2

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

CR-UK1ソフトウェアユーザーズガイド

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

1 ログインとログアウト 1.1 ログイン ログイン画面で [ password ] 欄にパスワードを入力します (図 1) 図 1 ログイン画面 正しくログインができると Ubuntu のデスクトップ画面 図2 が表示されます 図2 Ubuntu デスクトップ画面 2

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

CLUSTERPRO MC StorageSaver 2.2 for Linux リリースメモ 2017(Apr) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

リバースプロキシー(冗長構成)構築手順

zabbix エージェント インストールマニュアル [Windows Server] 第 1.2 版 2018 年 05 月 18 日 青い森クラウドベース株式会社

拠点間 VPN オプション設定手手順書 お客客様環境お客様様宅環境のネットワーク構成を下図図に記入しておきます 接続方法 ( )PPPoE ( )Static ( )DHCP IP アドレス ( グローバル )... 接続の詳細情情報ユーーザ ID パスワード 接続の詳細情情報 IP アドレスネット

Microsoft Word - PC0502_090925_IPアドレスの設定.doc

Rhino6 for Windows ラボラトリーライセンスインストールガイド 株式会社アプリクラフト

Red Hat Enterprise Linux 6 Portable SUSE Linux Enterprise Server 9 Portable SUSE Linux Enterprise Server 10 Portable SUSE Linux Enterprise Server 11 P

はじめに このドキュメントではftServerに関する障害調査を行う際に 必要となるログ データの取得方法を説明しています ログ データの取得には 初期解析用のデータの取得方法と 詳細な調査を行うときのデータ取得方法があります 特別な理由でOS 側のログが必要となった場合には RHELログの取得につ

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

スライド 1

スライド 1

目次 第 1 章はじめに... 3 第 2 章ネットワーク設定 DNS の設定 アウトバウンド HTTPS 接続の許可 アウトバウンド SMTP/POP 接続の許可... 4 第 3 章 JDK への追加ライブラリインストール

Transcription:

仮想化 Linux 環境 Docker について

Docker ってなに? Linux 環境を仮想的に再現するソフトウェア

Docker ってなに? Linux 環境を仮想的に再現するソフトウェア

Docker ってなに? Linux 環境を仮想的に再現するソフトウェア 計算機上に その計算機とは別個 隔離された計算機環境を再現すること

仮想環境? 他にもいっぱいあるじゃん? KVM: https://www.linux-kvm.org/ VMware: http://www.vmware.com/ QEMU: http://www.qemu-project.org/ VirtualBox: https://www.virtualbox.org/ Hyper-V: http://www.microsoft.com/hyper-v LXC: https://linuxcontainers.org/ Xen: https://www.xenproject.org/

Docker の特徴 とても簡単 とても軽い

Docker の特徴 とても簡単 とても軽い

Docker を使ってみよう

Docker をインストールしよう https://store.docker.com/search? type=edition&offering=community 上記ページからダウンロード もしくはインストール手順が確認できます Linux (Ubuntu, Debian, Fedra, CentOS, etc.) 版も macos 版も Windows 版もあります

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release Docker ランタイム

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release Docker ランタイム Docker コマンド

Docker コンテナを実行してみよう コンテナを起動せよ! コンテナ = 仮想環境 % docker run ubuntu cat /etc/lsb-release Docker ランタイム Docker コマンド

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release Docker ランタイム イメージ名 Docker コマンド

Docker コンテナを実行してみよう このイメージを元に起動せよ! % docker run ubuntu cat /etc/lsb-release Docker ランタイム イメージ名 Docker コマンド

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release Docker ランタイム Docker コマンド イメージ名 実行コマンド

Docker コンテナを実行してみよう 起動したコンテナ内でこのコマンドを実行せよ! % docker run ubuntu cat /etc/lsb-release Docker ランタイム Docker コマンド イメージ名 実行コマンド

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release

Docker コンテナを実行してみよう % docker run ubuntu cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

イメージを探してみよう % docker search centos

イメージを探してみよう % docker search centos DNAME DESCRIPTION centos The official b jdeathe/centos-ssh CentOS-6 6.8 x jdeathe/centos-ssh-apache-php CentOS-6 6.8 x consol/centos-xfce-vnc Centos contain nimmis/java-centos This is docker

イメージを探してみよう % docker search centos Docker コマンド

イメージを探してみよう イメージを検索せよ! % docker search centos Docker コマンド

イメージを探してみよう % docker search centos 検索文字列 Docker コマンド

イメージを探してみよう % docker search centos この文字列で検索せよ! 検索文字列 Docker コマンド

イメージを探してみよう % docker search centos

イメージを探してみよう % docker search centos DNAME DESCRIPTION centos The official b jdeathe/centos-ssh CentOS-6 6.8 x jdeathe/centos-ssh-apache-php CentOS-6 6.8 x consol/centos-xfce-vnc Centos contain nimmis/java-centos This is docker

見つかったイメージを実行してみよう % docker run centos cat /etc/redhat-release

見つかったイメージを実行してみよう % docker run centos cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)

裏で何が起きているのか? 検索結果 https://hub.docker.com % docker search centos Cf. apt of Debian/Ubuntu and yum of CentOS/Fedora

裏で何が起きているのか? イメージリクエスト (pull) https://hub.docker.com ダウンロード % docker run centos Cf. apt of Debian/Ubuntu and yum of CentOS/Fedora

Docker Hub: https://hub.docker.com 様々な Docker イメージが登録されているレジストリ 欲しいイメージは大抵すでに存在している ただし 誰でも登録できる レジストリのため オフィシャルイメージや信頼できるイメージ以外は実行しない方がよい

コンテナを実行してみよう ( その 2) イメージをダウンロードする % docker pull nginx

コンテナを実行してみよう ( その 2) イメージをダウンロードする % docker pull nginx Using default tag: latest latest: Pulling from library/nginx 693502eb7dfb: Downloading [====> ] 50.86 MB/ 6decb850d2bc: Download complete c3e19f087ed6: Download complete

コンテナを実行してみよう ( その 2) イメージをダウンロードする % docker pull nginx Using default tag: latest latest: Pulling from library/nginx 693502eb7dfb: Pull complete 6decb850d2bc: Pull complete c3e19f087ed6: Pull complete Digest: sha256:52a189e49c0c797cfc5cbfe578c68 Status: Downloaded newer image for nginx:lat

コンテナを実行してみよう ( その 2) イメージをダウンロードする % docker pull nginx

コンテナを実行してみよう ( その 2) イメージをダウンロードする % docker pull nginx Docker コマンド

コンテナを実行してみよう ( その2) イメージをダウンロードする % docker pull nginx イメージをダウンロードせよ! Docker コマンド

コンテナを実行してみよう ( その 2) イメージをダウンロードする % docker pull nginx Docker コマンド イメージ名

コンテナを実行してみよう ( その2) イメージをダウンロードする % docker pull nginx この名前のイメージをダウンロードせよ! Docker コマンド イメージ名

コンテナを実行してみよう ( その 2) イメージを確認する % docker images

コンテナを実行してみよう ( その 2) イメージを確認する % docker images REPOSITORY TAG IMAGE ID CREATED centos latest 98d35105a391 4 days ago nginx latest 6b914bbcb89e 2 weeks ag ubuntu latest 0ef2e08ed3fa 2 weeks ag

コンテナを実行してみよう ( その 2) イメージを確認する % docker images Docker コマンド

コンテナを実行してみよう ( その2) イメージを確認する % docker images ローカルに存在するイメージを列挙せよ! Docker コマンド

コンテナを実行してみよう ( その 2) イメージを確認する % docker images REPOSITORY TAG IMAGE ID CREATED centos latest 98d35105a391 4 days ago nginx latest 6b914bbcb89e 2 weeks ag ubuntu latest 0ef2e08ed3fa 2 weeks ag

コンテナを実行してみよう ( その2) イメージを確認する イメージには バージョン がある % docker images REPOSITORY TAG IMAGE ID CREATED centos latest 98d35105a391 4 days ago nginx latest 6b914bbcb89e 2 weeks ag ubuntu latest 0ef2e08ed3fa 2 weeks ag

コンテナを実行してみよう ( その 2) ちょっと脱線 バージョンを指定してみよう % docker run ubuntu:17.04 cat /etc/lsb-release

コンテナを実行してみよう ( その 2) ちょっと脱線 バージョンを指定してみよう % docker run ubuntu:17.04 cat /etc/lsb-release バージョン (tag) を指定している

コンテナを実行してみよう ( その 2) ちょっと脱線 バージョンを指定してみよう % docker run ubuntu:17.04 cat /etc/lsb-release

コンテナを実行してみよう ( その 2) ちょっと脱線 バージョンを指定してみよう % docker run ubuntu:17.04 cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=17.04 DISTRIB_CODENAME=zesty DISTRIB_DESCRIPTION="Ubuntu Zesty Zapus (develo

コンテナを実行してみよう ( その 2) サーバを起動してみる % docker run d p ( 好きな番号 ):80 nginx

コンテナを実行してみよう ( その 2) サーバを起動してみる % docker run d p ( 好きな番号 ):80 nginx ddc41a326fc28951546e3959d7dd552e03be8e82e1a9

コンテナを実行してみよう ( その 2) サーバを起動してみる % docker run d p ( 好きな番号 ):80 nginx バックグラウンド実行を指定

コンテナを実行してみよう ( その 2) サーバを起動してみる % docker run d p ( 好きな番号 ):80 nginx バックグラウンド実行を指定 TCP のポート番号を指定

コンテナを実行してみよう ( その 2) サーバを起動してみる ホスト側の ( 好きな番号 ) 番ポートをコンテナの 80 番ポートに接続する % docker run d p ( 好きな番号 ):80 nginx バックグラウンド実行を指定 TCP のポート番号を指定

コンテナを実行してみよう ( その 2) サーバを起動してみる % docker run d p ( 好きな番号 ):80 nginx 19ecb956ab5d1e5362fe57701ec3a7667cdf1a9e9ba2 実行されたコンテナの ID

コンテナを実行してみよう ( その 2) サーバが起動しているか確認する % docker ps

コンテナを実行してみよう ( その 2) サーバが起動しているか確認する % docker ps CONTAINER ID IMAGE COMMAND 19ecb956ab5d nginx nginx -g daemon...

コンテナを実行してみよう ( その 2) サーバが起動しているか確認する % docker ps

コンテナを実行してみよう ( その 2) サーバが起動しているか確認する % docker ps Docker コマンド

コンテナを実行してみよう ( その2) サーバが起動しているか確認する % docker ps 実行中のコンテナを列挙せよ! Docker コマンド

コンテナを実行してみよう ( その 2) サーバが起動しているか確認する % docker ps

コンテナを実行してみよう ( その 2) サーバが起動しているか確認する % docker ps CONTAINER ID IMAGE COMMAND 19ecb956ab5d nginx nginx -g daemon...

コンテナを実行してみよう ( その 2) サーバを停止してみる % docker stop 19ecb

コンテナを実行してみよう ( その 2) サーバを停止してみる % docker stop 19ecb 19ecb

コンテナを実行してみよう ( その 2) サーバを停止してみる % docker stop 19ecb

コンテナを実行してみよう ( その2) サーバを停止してみる % docker stop 19ecb コンテナを停止せよ! Docker コマンド

コンテナを実行してみよう ( その 2) サーバを停止してみる % docker stop 19ecb Docker コマンド コンテナ ID

コンテナを実行してみよう ( その2) サーバを停止してみる % docker stop 19ecb このコンテナを停止せよ! Docker コマンド コンテナ ID

コンテナを実行してみよう ( その2) サーバを停止してみる % docker stop 19ecb このコンテナを停止せよ! Docker コマンド コンテナ ID コンテナ ID は全部入力する必要はない

コンテナを実行してみよう ( その 2) サーバを停止してみる % docker stop 19ecb

コンテナを実行してみよう ( その 2) サーバを停止してみる % docker stop 19ecb 19ecb

コンテナを実行してみよう ( その 2) サーバが停止したか確認する % docker ps

コンテナを実行してみよう ( その 2) サーバが停止したか確認する % docker ps CONTAINER ID IMAGE COMMAND

コンテナを実行してみよう ( その 2) 停止したコンテナを確認する % docker ps -a

コンテナを実行してみよう ( その 2) 停止したコンテナを確認する % docker ps -a CONTAINER ID IMAGE COMMAND 19ecb956ab5d nginx "nginx -g 'daemo a844e44f4790 ubuntu:17.04 "cat /etc/lsb-re 533c0f506a00 centos "cat /etc/redhat 6b73015537c0 ubuntu "cat /etc/lsb-re

コンテナを実行してみよう ( その 2) 停止したコンテナを確認する % docker ps -a

コンテナを実行してみよう ( その 2) 停止したコンテナを確認する % docker ps -a 停止しているものも含めて全てのコンテナを表示せよ!

コンテナを実行してみよう ( その 2) 停止したコンテナを確認する % docker ps -a

コンテナを実行してみよう ( その 2) 停止したコンテナを確認する % docker ps -a CONTAINER ID IMAGE COMMAND 19ecb956ab5d nginx "nginx -g 'daemo a844e44f4790 ubuntu:17.04 "cat /etc/lsb-re 533c0f506a00 centos "cat /etc/redhat 6b73015537c0 ubuntu "cat /etc/lsb-re

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう % docker rm 19ec a844 533c 6b73

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう % docker rm 19ec a844 533c 6b73 19ec a844 533c 6b73

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう % docker rm 19ec a844 533c 6b73

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう % docker rm 19ec a844 533c 6b73 Docker コマンド

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう コンテナを削除せよ! % docker rm 19ec a844 533c 6b73 Docker コマンド

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう % docker rm 19ec a844 533c 6b73 Docker コマンド 削除するコンテナの ID

コンテナを実行してみよう ( その2) 不要なコンテナを削除しよう これらのコンテナを削除せよ! % docker rm 19ec a844 533c 6b73 Docker コマンド 削除するコンテナの ID

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう % docker rm 19ec a844 533c 6b73

コンテナを実行してみよう ( その 2) 不要なコンテナを削除しよう % docker rm 19ec a844 533c 6b73 19ec a844 533c 6b73

コンテナを実行してみよう ( その 2) コンテナを削除できたか確認する % docker ps -a

コンテナを実行してみよう ( その 2) コンテナを削除できたか確認する % docker ps -a CONTAINER ID IMAGE COMMAND

コンテナ内でシェルを起動してみる % docker run i t ubuntu /bin/bash

コンテナ内でシェルを起動してみる % docker run i t ubuntu /bin/bash root@d2db426e0aa9:/#

コンテナ内でシェルを起動してみる % docker run i t ubuntu /bin/bash

コンテナ内でシェルを起動してみる % docker run i t ubuntu /bin/bash TTY を割り当てる インタラクティブ : 標準入力を閉じない

コンテナ内でシェルを起動してみる シェルが入力を受付けられるようにする % docker run i t ubuntu /bin/bash TTY を割り当てる インタラクティブ : 標準入力を閉じない

コンテナ内でシェルを起動してみる % docker run i t ubuntu /bin/bash

コンテナ内でシェルを起動してみる % docker run i t ubuntu /bin/bash root@d2db426e0aa9:/#

コンテナ内でシェルを終了する % docker run i t ubuntu /bin/bash root@d2db426e0aa9:/# exit

停止したコンテナを再起動する % docker restart d2db4

停止したコンテナを再起動する % docker restart d2db4 d2db4

停止したコンテナを再起動する % docker restart d2db4

停止したコンテナを再起動する % docker restart d2db4 コンテナを再起動せよ! Docker コマンド

停止したコンテナを再起動する % docker restart d2db4 Docker コマンド コンテナ ID

停止したコンテナを再起動する % docker restart d2db4 このコンテナを再起動せよ! Docker コマンド コンテナ ID

停止したコンテナを再起動する % docker restart d2db4

停止したコンテナを再起動する % docker restart d2db4 d2db4

再起動したコンテナに接続する % docker attach d2db4

再起動したコンテナに接続する % docker attach d2db4 root@d2db426e0aa9:/#

再起動したコンテナに接続する % docker attach d2db4

再起動したコンテナに接続する % docker attach d2db4 Docker コマンド

再起動したコンテナに接続する % docker attach d2db4 コンテナに接続せよ! Docker コマンド

再起動したコンテナに接続する % docker attach d2db4 Docker コマンド コンテナ ID

再起動したコンテナに接続する % docker attach d2db4 このコンテナに接続せよ! Docker コマンド コンテナ ID

再起動したコンテナに接続する % docker attach d2db4

再起動したコンテナに接続する % docker attach d2db4 root@d2db426e0aa9:/#

実行中のコンテナ内でシェルを起動する % docker run d p ( 好きな番号 ):80 nginx

実行中のコンテナ内でシェルを起動する % docker run d p ( 好きな番号 ):80 nginx 30d198bf0ad3c03535f2d292153a9f7ae003b71ca0ec

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash root@30d198bf0ad3:/#

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash Docker コマンド

実行中のコンテナ内でシェルを起動する コンテナ内でコマンドを実行せよ! % docker exec i t 30d19 /bin/bash Docker コマンド

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash Docker コマンド コンテナ ID

実行中のコンテナ内でシェルを起動する このコンテナ内でコマンドを実行せよ! % docker exec i t 30d19 /bin/bash Docker コマンド コンテナ ID

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash Docker コマンドコンテナ ID コマンド

実行中のコンテナ内でシェルを起動する このコマンドを実行せよ! % docker exec i t 30d19 /bin/bash Docker コマンド コンテナ ID コマンド

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash

実行中のコンテナ内でシェルを起動する % docker exec i t 30d19 /bin/bash root@30d198bf0ad3:/#

コンテナからイメージを作成する % docker stop 30d19

コンテナからイメージを作成する % docker stop 30d19 30d19

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 )

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 ) sha256:96475fbbe6901fcf946502eebb317869d791a

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 )

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 ) Docker コマンド

コンテナからイメージを作成する コンテナからイメージを作成せよ! % docker commit 30d19 ( 好きな名前 ) Docker コマンド

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 ) Docker コマンド コンテナ ID

コンテナからイメージを作成する このコンテナからイメージを作成せよ! % docker commit 30d19 ( 好きな名前 ) Docker コマンド コンテナ ID

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 ) コンテナ ID イメージ名 Docker コマンド

コンテナからイメージを作成する このイメージ名でイメージを作成せよ! % docker commit 30d19 ( 好きな名前 ) コンテナ ID イメージ名 Docker コマンド

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 )

コンテナからイメージを作成する % docker commit 30d19 ( 好きな名前 ) sha256:96475fbbe6901fcf946502eebb317869d791a

作成したイメージを確認する % docker images

作成したイメージを確認する % docker images REPOSITORY TAG IMAGE ID CREATED ( 好きな名前 ) latest 96475fbbe690 32 seconds centos latest 98d35105a391 4 days ago nginx latest 6b914bbcb89e 2 weeks ag ubuntu latest 0ef2e08ed3fa 2 weeks ag

作成したイメージでコンテナを実行する % docker run -d -p ( 好きな番号 ):80 ( 好きな名前 )

作成したイメージでコンテナを実行する % docker run -d -p ( 好きな番号 ):80 ( 好きな名前 ) 172e159d9e814d15a7c579a06eabfc050106811b6bfcad1

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 )

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 ) 87ee8e79f2139f658cbdbdd77667b64b0b5d0dae2cff

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 )

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 ) ホスト上のディレクトリ

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 ) ホスト上のディレクトリ コンテナ内のディレクトリ

ホストとコンテナでファイルを共有する ホストのこの ディレクトリを % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 ) ホスト上のディレクトリ コンテナ内のディレクトリ

ホストとコンテナでファイルを共有する ホストのこの ディレクトリを コンテナのこのディレクトリに マウントする % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 ) ホスト上のディレクトリ コンテナ内のディレクトリ

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 ) このように共有されたディレクトリを ボリュームと呼ぶ

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 )

ホストとコンテナでファイルを共有する % mkdir nginx-files % docker run -d -p ( 好きな番号 ):80 v $PWD/nginx-files:/usr/share/nginx/html ( 好きな名前 ) 87ee8e79f2139f658cbdbdd77667b64b0b5d0dae2cff

ホストとコンテナでファイルを共有する : ホストからファイルを編集する % vi nginx-files/index.html

ホストとコンテナでファイルを共有する : コンテナからファイルを編集する % docker exec i t 87ee8 /bin/bash root@87ee8e79f213:/# vim.tiny /usr/share/nginx/html/index.html

ホストとコンテナでファイルを共有する : コンテナからファイルを編集する % docker exec i t 87ee8 /bin/bash root@87ee8e79f213:/# vim.tiny /usr/share/nginx/html/index.html 待った!

コンテナからボリューム上のファイルを さわるときは注意が必要 root@87ee8e79f213:/# cd /usr/share/nginx/html root@87ee8e79f213:/# touch index2.html root@87ee8e79f213:/# exit % ls l nginx-files

コンテナからボリューム上のファイルを さわるときは注意が必要 root@87ee8e79f213:/# cd /usr/share/nginx/html root@87ee8e79f213:/# touch index2.html root@87ee8e79f213:/# exit % ls l nginx-files total 0 -rw-r--r-- 1 ubuntu ubuntu 51 Mar 22 02:55 index.html -rw-rw-r-- 1 root root 0 Mar 22 03:00 index2.html

コンテナからボリューム上のファイルを さわるときは注意が必要 root@87ee8e79f213:/# cd /usr/share/nginx/html root@87ee8e79f213:/# touch index2.html root@87ee8e79f213:/# exit % ls l nginx-files total 0 -rw-r--r-- 1 ubuntu ubuntu 51 Mar 22 02:55 index.html -rw-rw-r-- 1 root root 0 Mar 22 03:00 index2.html

コンテナからボリューム上のファイルを root 権限で さわるときは注意が必要 ファイルが 作れてしまった! root@87ee8e79f213:/# cd /usr/share/nginx/html root@87ee8e79f213:/# touch index2.html root@87ee8e79f213:/# exit % ls l nginx-files total 0 -rw-r--r-- 1 ubuntu ubuntu 51 Mar 22 02:55 index.html -rw-rw-r-- 1 root root 0 Mar 22 03:00 index2.html

コンテナからボリューム上のファイルを さわるときは注意が必要 root@680e0e43f517:/# cd /usr/share/nginx/html root@680e0e43f517:/# touch index2.html root@680e0e43f517:/# exit % ls l nginx-files total 8 -rw-r--r-- 1 tosh staff 51 3 22 14:30 index.html -rw-rw-r-- 1 tosh staff 0 3 22 14:35 index2.html そうならない環境もあります (e.g., macos)

イメージをファイルに保存する % docker save ( 好きな名前 ) > ( 好きなファイル名 ).tar

イメージをファイルに保存する % docker save ( 好きな名前 ) > ( 好きなファイル名 ).tar Docker コマンド

イメージをファイルに保存する イメージを 標準出力に書き出せ! % docker save ( 好きな名前 ) > ( 好きなファイル名 ).tar Docker コマンド

イメージをファイルに保存する % docker save ( 好きな名前 ) > ( 好きなファイル名 ).tar Docker コマンド イメージ名

イメージをファイルに保存する このイメージを 標準出力に書き出せ! % docker save ( 好きな名前 ) > ( 好きなファイル名 ).tar Docker コマンド イメージ名

イメージをファイルに保存する % docker save ( 好きな名前 ) > ( 好きなファイル名 ).tar Docker コマンド イメージ名 docker save の出力は基本的に tar アーカイブ

イメージをファイルに保存する % docker save ( 好きな名前 ) > ( 好きなファイル名 ).tar

不要なイメージを削除する % docker rmi ( 好きな名前 )

不要なイメージを削除する % docker rmi ( 好きな名前 ) Deleted: sha256:96475fbbe6901fcf946502eebb31786 Deleted: sha256:be5c26bf4ce7314097263ed9f418939

不要なイメージを削除する % docker rmi ( 好きな名前 )

不要なイメージを削除する % docker rmi ( 好きな名前 ) Docker コマンド

不要なイメージを削除する イメージを削除せよ! % docker rmi ( 好きな名前 ) Docker コマンド

不要なイメージを削除する % docker rmi ( 好きな名前 ) Docker コマンド イメージ名

不要なイメージを削除する このイメージ名の イメージを削除せよ! % docker rmi ( 好きな名前 ) Docker コマンド イメージ名

不要なイメージを削除する % docker rmi ( 好きな名前 )

不要なイメージを削除する エラーが出ますか? % docker rmi ( 好きな名前 )

不要なイメージを削除する エラーが出ますか? % docker rmi ( 好きな名前 ) そのイメージを使ったコンテナが存在していないか docker ps a で確認して docker stop からの docker rm で削除してください

不要なイメージを削除する % docker rmi ( 好きな名前 ) Deleted: sha256:96475fbbe6901fcf946502eebb31786 Deleted: sha256:be5c26bf4ce7314097263ed9f418939

ファイルからイメージをロードする % docker load < ( 好きなファイル名 ).tar

ファイルからイメージをロードする % docker load < ( 好きなファイル名 ).tar d17d48b2382a: Loading layer [===========>] 128. cf0d2468e726: Loading layer [===========>] 60. e3a86ffb1c45: Loading layer [===========>] 3.58 Loaded image ( 好きな名前 ):latest

ファイルからイメージをロードする % docker load < ( 好きなファイル名 ).tar

ファイルからイメージをロードする % docker load < ( 好きなファイル名 ).tar Docker コマンド

ファイルからイメージをロードする 標準入力から イメージを読込め! % docker load < ( 好きなファイル名 ).tar Docker コマンド

ファイルからイメージをロードする % docker load < ( 好きなファイル名 ).tar

ファイルからイメージをロードする % docker load < ( 好きなファイル名 ).tar d17d48b2382a: Loading layer [===========>] 128. cf0d2468e726: Loading layer [===========>] 60. e3a86ffb1c45: Loading layer [===========>] 3.58 Loaded image ( 好きな名前 ):latest

出てきたコマンドの一覧 Docker run: コンテナを実行する Docker run -i -t シェルが標準入力を取れるように実行する Docker run -d バックグラウンドで実行する Docker run -p ポート番号をマップする Docker run -v ボリュームをマウントする Docker stop コンテナを停止する Docker restart コンテナを再起動する Docker search イメージを検索する Docker pull イメージをダウンロードする Docker images イメージの一覧を得る Docker ps 実行中のコンテナの一覧を得る Docker ps a ( 停止中のものも含め ) 全てのコンテナの一覧を得る Docker rm コンテナを削除する Docker rmi イメージを削除する Docker attach 実行中のコンテナに接続する Docker exec 実行中のコンテナ内でコマンドを実行する Docker commit コンテナからイメージを作成する Docker save イメージを標準出力へ書き出す Docker load 標準入力からイメージをロードする

Docker の特徴 とても簡単 とても軽い

Docker の特徴 とても簡単 とても軽い

Docker の性能は? Linux 版は何もしないで実行してもほとんどネイティブ実行と変わらないか 少し悪いくらい CPU: ほとんど変わらない ファイル I/O: ほとんど変わらないか若干悪化 ネットワーク : 若干悪化 デフォルトの設定だと NAT 処理がはさまるため (?) macos 版や Windows 版は xhyve や Hyper-V のオーバーヘッドのため (?) 若干性能が落ちる xhyve: macos の仮想化ハイパーバイザ Hyper-V: Windows の仮想化ハイパーバイザ

Docker の性能は? ちょっと工夫するとネイティブ実行と区別つかないくらいになる ファイル I/O: ボリュームを使ってしまえばよい (i.e., -v オプションを使う ) à ネイティブとほぼ同性能が出る ネットワーク I/O: ホスト側のネットワークをそのまま使ってしまえばよい à ネイティブとほぼ同性能がでる コンテナ起動時に --net=host オプションを指定するとコンテナがホストのネットワークスタックを直接叩くようになる

Docker の性能は? ちょっと特殊なデバイスも使える デバイスファイルを --device オプションでコンテナ内にマウントできる NVDIA: https://github.com/nvidia/nvidia-docker Infiniband: /dev/infiniband 下のデバイスファイルをコンテナ内にマウントすれば OK ( らしい )

Docker のセキュリティは?

Docker のセキュリティは?

Docker のセキュリティは? 事実上 docker コマンドを叩ける == root 権限を持っている 率直に言えば 現時点では生の Docker を一般ユーザにそのまま使わせるのは管理者の視点からは危険すぎる

Docker のセキュリティ ここがやばい ( その 1) ボリューム機能がセキュリティについて何も考えてなさすぎ % docker run v /:/foo i t ubuntu /bin/bash root@9ab5647d7695:/# cat /foo/etc/shadow root@9ab5647d7695:/# cp /bin/sh /foo/ root@9ab5647d7695:/# chown root:root /foo/sh root@9ab5647d7695:/# chmod a+s /foo/sh 真面目に解決するには SELinux などの設定が必要

Docker のセキュリティ ここがやばい ( その 2) ユーザ間の区別がないに等しい 誰のイメージでもアクセス 実行 削除等が可能 誰のコンテナでもアクセス 実行 削除等が可能

現在よく取られている現実的な解決策 Docker とは別にユーザ隔離できる仮想環境をユーザごとに用意してその中で Docker を使わせる 例 : Amazon ECS, Google Container Engine,

Docker にはまだまだ いろいろな機能 ツールがいっぱい 今日の内容は基礎中の基礎だけ

Docker にはまだまだ いろいろな機能 ツールがいっぱい Dockerfile Makefile の Docker 版と考えればよい イメージをビルドする手順を指定する docker-compose 複数のコンテナを組み合わせた環境を構築 実行するのに便利 docker-machine AWS や GCE や SoftLayer 等の上でコンテナを実行させるのに便利 docker swarm Docker が動作する複数のホストをまとめて管理するのに便利 docker network 仮想的なネットワークを構築する 物理的に異なる複数ホスト間で仮想的なネットワークを構築することもできる