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

Similar documents
tosh-docker pub

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

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

03_Docker

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

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

Installation Guide for Linux

PowerPoint プレゼンテーション

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

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

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

HeartCoreインストールマニュアル(PHP版)

WebARENA SuiteX V2 EC-CUBE 2.13 インストールマニュアル ( 標準 MySQL+ 非 SSL ) 作成 :2014 年 2 月 Ver.1.1

HeartCore(PHP 版 ) インストール手順について説明いたします なお 本資料は 例として下記内容を前提として説明しております 環境情報 対象 OS: Linux ( ディストリビューション : Red Hat Enterprise Linux Server) APサーバ : Apache

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

2

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

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

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

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

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

Nagios XI - SNMPでのLinux監視

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

HeartCoreインストールマニュアル

目次 1. 改版履歴 概要 WEB 版薬剤在庫管理システムのインストール 事前準備 インストール アプリケーションのセットアップ WEB 版薬剤在庫管理システムの初期設定

提案書

2-3- 基 Linux のシステム管理に関する知識 1 独立行政法人情報処理推進機構

演習に必要な

Cuoreテンプレート

Microsoft Word - WE-InstMan382J sol.doc

CGR1xxx の設定 CGM-SRV IOx モジュール

Microsoft PowerPoint - APM-VE(install).pptx

Evalution of Linux Container(LXC) on Embedded Linux 株式会社富士通コンピュータテクノロジーズ町田裕樹 1201ka01 Copyright 2013 FUJITSU COMPUTER TECHLONOGIES LIMITED

HULFT の通信をよりセキュアに HULFT と SSH Tectia を組み合わせたセキュアで強力なファイル転送 Compatibility Note 2008 年 9 月 株式会社セゾン情報システムズの企業内 企業間通信ミドルウェアである HULFT は ファイル転送のアプリケーションとして

PowerPoint プレゼンテーション

日医特定健康診査システム ORCA PROJECT Linux 対応版インストールマニュアル (Version 対応 ) Ubuntu Trusty 用 版 2017 年 2 月 23 日 Copyright (C) Japan Medical

Microsoft Word - MyWebPortalOffice_Levelup.doc

Microsoft Word - XOOPS インストールマニュアルv12.doc

3 ディストリビューション・パッケージからのインストール

スライド 1

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

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

Microsoft Word - [クラウドモニタリングサービス for Microsoft Azure] Zabbix Agent 導入手順書(Ubuntu).docx

Congress Deep Dive

Microsoft Word - D JP.docx

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

Microsoft Word JA_revH.doc

Docker/Kubernetes実践コンテナ開発入門

SMB スイッチ CLI に SSH を使用してアクセスするか、または Telnet で接続して下さい

4 ソースからのインストール

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

MotionBoard Ver. 5.6 パッチ適用手順書

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

intra-mart ワークフローデザイナ

改訂履歴 初版 2004 年 1 月 23 日 新規作成 2 版 2004 年 2 月 3 日 フォントの設定 を追加 3 版 2004 年 7 月 13 日 リソースファイルのダウンロード を追加 バージョン番号表記を変更 4 版 2005 年 11 月 21 日 リソースファイルのダウンロード

R76/Gaia ブリッジ構成設定ガイド

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

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

Acronis Backup 12.5 Advanced NetAppスナップショット連携

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

IBM Bluemix で WordPress 無料の WordPress 環境を構築する 1

ロードバランサー配下のシボレス IdP 環境設定に関する検証実験 2009 年 12 月 22 日国立情報学研究所学術ネットワーク研究開発センター山地一禎, 中村素典

Microsoft Word - SSL-VPN接続サービスの使い方

Microsoft Word - 楽天㇯ㅩ㇦ㅛIaaSㇵㅼã…fiã‡¹ä»Łæ§Ÿ.doc

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

CLUSTERPRO for Linux MySQL HowTo

AWS Deck Template

VB実用Ⅲ⑩ フリーデータベースⅡ

スライド 1

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

科学技術振興機構 D-RE デモ環境導入ガイド DEOS プロジェクト 目次 1 はじめに 準備 dre ユーザの追加 D-RE の導入 システムコンテナの作成 システムコンテナの起動... 6

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



目次 1. 改版履歴 概要 WEB 版薬剤在庫管理システムのインストール 事前準備 インストール アプリケーションのセットアップ 日レセと連携するための有効化設定 WEB

needlework_update_manual_rev1.4

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

PowerPoint プレゼンテーション

2013 科学技術振興機構 D-RE デモ環境導入ガイド DEOS プロジェクト 目次 1 はじめに 準備 dre ユーザの追加 D-RE の導入 システムコンテナの作成 システムコンテナの起動

Microsoft Word - amp_setup.doc

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

第5回 マインクラフト・プログラミング入門

ATDEインストールガイド

Microsoft Word - SE第15回.doc

日医標準レセプトソフト クラウド版の構築手順

rndc BIND

目次 1. Serverspec とは 1.1. Serverspecとは 1.2. Serverspecで出来る事 2. セットアップ 2.1. 必要なもの 2.2. インストール 3. デモ 3.1. デモ環境について 3.2. テスト対象サーバーの登録 3.3. サンプルテストの中身 3.4.

PRIMERGY TX1320 M3 未サポートOS動作検証確認情報

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

Microsoft Word - ManagerIPChange.doc

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

MC3000一般ユーザ利用手順書

PowerPoint プレゼンテーション

ダイアグファイルの取得方法

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

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

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

ServerView ESXi CIM Provider / ServerView RAID Core Provider VMware vSphere ESXi 6.0 インストールガイド

システムパッケージリリース情報-Version5.0.0pre

FUJITSU Storage ETERNUS BE50 S2 運用ガイド Symantec Backup Exec 2014 修正適用編

仮想化によるサーバの再構成 尾西克之 大阪大学理学研究科技術部. はじめに理学研究科トップの DNS サーバを始め 管理運用を行うサーバの多くはハードウェアの老朽化が進み 更新時期を迎えている しかし全てのハードウェアを購入には費用が掛かり又 作業時間も掛かるため 一度に更新するのは不可能である そ

Transcription:

今日からできるレガシーシステムの段階的コンテナ化 NTT ソフトウェアイノベーションセンタ石井久治 Copyright 2014 NTT corp. All Rights Reserved.

背景 / ねらい Docker/ コンテナ系技術が熱いが 使っているのは ほとんど Web 開発者ばかり 既存システム / レガシーシステムはブラックボックス化していて クラウドにすら乗せられていない 既存システムを一度にクラウド移行するのは無理でも 段階的にコンテナ化していけば 無理なくクラウド化していけるのではないか Copyright 2014 NTT corp. All Rights Reserved. 2

概要 既存システムを部分的 段階的にコンテナ化する手法を学ぶ システム全体を一度にコンテナ化せずとも コンテナ技術の恩恵を受けられる コンテナ技術の恩恵 アプリケーションごとに実行環境 ( ライブラリのバージョン等 ) を分離 固定化できる 本番環境への副作用が無い状態で アップデートの検証が行える アップデート時のダウンタイムを最小化できる 切り戻しできることも保障される 到達目標 Linux コンテナの基本知識を習得 Docker の基本的な使い方を習得 既存システムの一部分を Docker コンテナで置き換える方法を習得 Copyright 2014 NTT corp. All Rights Reserved. 3

概要 既存システムを部分的 段階的にコンテナ化する手法を学ぶ システム全体を一度にコンテナ化せずとも コンテナ技術の恩恵を受けられる コンテナ技術の恩恵 アプリケーションごとに実行環境 ( ライブラリのバージョン等 ) を分離 固定化できる 本番環境への副作用が無い状態で アップデートの検証が行える アップデート時のダウンタイムを最小化できる 切り戻しできることも保障される 到達目標 Linux コンテナの基本知識を習得 Docker の基本的な使い方を習得 既存システムの一部分を Docker コンテナで置き換える方法を習得 Copyright 2014 NTT corp. All Rights Reserved. 4

講義の流れ コンテナ技術の基礎知識 Docker の基本的な使い方 座学 ハンズオン環境の確認 休憩 システム更新演習パート 1 休憩 システム更新演習パート 2 まとめ Copyright 2014 NTT corp. All Rights Reserved. 5

コンテナ技術の基礎知識 コンテナとは? Docker とは? Copyright 2014 NTT corp. All Rights Reserved.

コンテナ docker はコンテナ仮想化技術を使ったソリューション Copyright 2014 NTT corp. All Rights Reserved. 7

chroot FreeBSD Jail LXC docker 1983 2000 2008 2013 Copyright 2014 NTT corp. All Rights Reserved. 8

仮想化技術 一つの物理マシン上に実行環境を作る技術 ゲスト OS OS 物理マシン 仮想マシン ハイパーバイザ 物理マシン コンテナコンテナ OS 物理マシン 仮想なし環境ハイパーバイザ型コンテナ仮想化 OS( の一部 ) を共有する仮想化 Copyright 2014 NTT corp. All Rights Reserved. 9

Linux コンテナ仮想化すこし正確に プロセス プロセス プロセス プロセス プロセス プロセス プロセス ユーザ空間カーネル空間 物理マシン 仮想なし環境 ユーザ空間 カーネル空間 物理マシン コンテナ仮想化 コンテナは Linux カーネルを共有独立したリソースを割り当て, プロセス実行環境を分離 Copyright 2014 NTT corp. All Rights Reserved. 10

コンテナを実現する技術 Linux カーネルが提供する機能 cgroups: プロセスグループのリソース (CPU, メモリ,I/O など ) 利用量を制限する機能 capability: root 権限の一部だけをプロセスに与える機能 namespace: 独立した空間内にリソースを隔離する機能 - ファイルシステム : Mount namespace - ホストネーム : UTS namespace - プロセス間通信 : IPC namespace - ユーザ ID(UID/GID) : User namespace - プロセス ID : PID namespace - ネットワーク : Network namespace Copyright 2014 NTT corp. All Rights Reserved. 11

Docker がやること アプリ実行環境をイメージとして保存し, コンテナ上に展開する例 :Ubuntu イメージでやってること コンテナでリソースを隔離して ubuntu の最低限必要なファイルを持ってきて 設定を書いて (/etc/apt/sources.list など ) /bin/bash を実行 Copyright 2014 NTT corp. All Rights Reserved. 12

Docker の基本的な使い方 Copyright 2014 NTT corp. All Rights Reserved.

Docker コマンド docker image イメージの一覧表示 docker pull イメージをダウンロード docker ps コンテナの一覧表示 docker run コンテナを起動 docker exec コンテナ内でコマンド実行 docker attach コンテナ内の端末に接続 docker kill コンテナを停止 docker rm コンテナを削除 他にもいっぱい http://docs.docker.com/engine/reference/commandline/cli/ Copyright 2014 NTT corp. All Rights Reserved. 14

docker images ローカルマシン上の docker イメージを一覧表示する docker@node:~$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE mysql latest b01706fbc5a4 5 days ago 359.9 MB debian latest 23cb15b0fcec 6 days ago 125.1 MB ubuntu latest e9ae3c220b23 4 weeks ago 187.9 MB busybox latest c51f86c28340 5 weeks ago 1.109 MB Copyright 2014 NTT corp. All Rights Reserved. 15

docker pull DockerHub からイメージをダウンロードする $ docker pull イメージ名 docker@node:~$ docker pull centos Using default tag: latest latest: Pulling from library/centos fa5be2806d4c: Pull complete 0cd86ce0a197: Pull complete e9407f1d4b65: Pull complete c9853740aa05: Pull complete e9fa5d3a0d0e: Pull complete Digest: sha256:c96eeb93f2590858b9e1396e808d817fa0ba4076c68b59395445cb957b52 4408 Status: Downloaded newer image for centos:latest Copyright 2014 NTT corp. All Rights Reserved. 16

docker ps 起動中のコンテナを一覧表示 (-a オプション : 停止中のコンテナも表示 ) docker@node:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c97a5785ac25 debian "/bin/bash" 3 seconds ago Up 2 seconds debian1 917b22d24218 ubuntu "/bin/bash" 31 hours ago Up 31 hours web2 cad482fa6245 ubuntu "/bin/bash" 46 hours ago Up 46 hours web 03299a7e8d40 ubuntu "/bin/bash" 2 days ago Up 2 days app eb06fbba6f56 ubuntu "/bin/bash 2 days ago Up 2 days ubuntu1 Copyright 2014 NTT corp. All Rights Reserved. 17

docker run コンテナを起動 docker run [ オプション ] イメージ名 [ コマンド ] オプション : --name=" コンテナ名 " コンテナ名を設定 -it 擬似端末を作成 -d デタッチ状態で起動 Copyright 2014 NTT corp. All Rights Reserved. 18

docker run docker@node:~$ docker run -itd --name=test centos e0a6c8cdd0cba450b3096c43048d1e6d13cc983fa718a0299e7c8909f370e371 コンテナ起動 docker@node:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e0a6c8cdd0cb centos "/bin/bash" 6 seconds ago Up 4 seconds test docker@node:~$ docker attach test [root@e0a6c8cdd0cb /]# [root@e0a6c8cdd0cb /]# cat /etc/centos-release CentOS Linux release 7.1.1503 (Core) [root@e0a6c8cdd0cb /]# コンテナにアタッチ CTRL+P CTRL+Q でコンテナからデタッチ 起動中を確認 docker@node:~$ docker exec test ps PID TTY TIME CMD 24? 00:00:00 ps docker@node:~$ docker kill test test docker@node:~$ docker rm test test docker exec でコマンド実行 コンテナ停止 コンテナ削除 Copyright 2014 NTT corp. All Rights Reserved. 19

ネームスペースの共有 ネームスペースで各リソースを隔離... しないこともできる docker run のオプションで --ipc= 共有先 IPC 空間を共有 --net= 共有先 ネットワークを共有 --pid= 共有先 PIDを共有 -v [host-dir]:[container-dir] ディレクトリを共有 共有先に host を指定すればホストと共有 コンテナ ID を指定すればコンテナ間で共有 Copyright 2014 NTT corp. All Rights Reserved. 20

--net=host docker@node:~$ ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN ホストのインターフェース確認 mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether 8a:e1:25:43:12:77 brd ff:ff:ff:ff:ff:ff 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 38:63:bb:43:4b:c8 brd ff:ff:ff:ff:ff:ff 4: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 8c:dc:d4:0e:33:68 brd ff:ff:ff:ff:ff:ff docker@node:~$ docker run -it --rm ubuntu 普通にコンテナ起動 root@c081019485ea:/# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 40: eth0@if41: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:ac:11:00:08 brd ff:ff:ff:ff:ff:ff root@c081019485ea:/# exit ホストと異なるコンテナ用のインターフェース Copyright 2014 NTT corp. All Rights Reserved. 21

--net=host docker@node:~$ docker run -it --net=host --rm ubuntu root@node:/# ip link --net=hostでコンテナ起動 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether 8a:e1:25:43:12:77 brd ff:ff:ff:ff:ff:ff 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 38:63:bb:43:4b:c8 brd ff:ff:ff:ff:ff:ff 4: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 8c:dc:d4:0e:33:68 brd ff:ff:ff:ff:ff:ff ホストのインターフェースが見える! ホスト名も共有 Copyright 2014 NTT corp. All Rights Reserved. 22

-v [host-dir]:[container-dir] docker@node:~$ mkdir hoge docker@node:~$ echo "volume test" > hoge/foo docker@node:~$ cat hoge/foo volume test ホスト上の /home/docker/hoge ディレクトをコンテナ上の /hoge ディレクトリに共有 docker@node:~$ docker run -it --rm -v /home/docker/hoge:/hoge ubuntu root@80e7cb43d732:/# cat hoge/foo volume test root@80e7cb43d732:/# echo "container volume" >> hoge/foo root@80e7cb43d732:/# cat hoge/foo volume test container volume root@80e7cb43d732:/# exit docker@node:~$ cat hoge/foo volume test container volume docker@node:~$ コンテナ条の変更がホスト側にも反映されていることを確認 Copyright 2014 NTT corp. All Rights Reserved. 23

ハンズオン環境へのログイン 講師が指示する環境に SSH クライアントでログインして下さい 環境情報 ホスト名 IPアドレス ユーザ名 パスワード ishii:~$ ssh xxxxxxx@xxx.xxx.xxx.xxx xxxxxxx@xxx.xxx.xxx.xxx's password: Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-71-generic x86_64) Last login: Fri Dec 11 04:59:21 2015 from xxx.xxx.xxx.xxx xxxxxxx@xxx-xxxxxxx-x:~$ ブラウザで http://ip アドレス /zabbix/ にアクセスしてログインして下さい Zabbix ユーザ : Admin Zabbix パスワード : zabbix Copyright 2014 NTT corp. All Rights Reserved. 24

システム更新演習パート 1 Copyright 2014 NTT corp. All Rights Reserved.

演習パート 1 の要件 before after MySQL サーバをバージョン 5.6 以降にアップデートしたい zabbix-server 2.4.7 zabbix-server 2.4.7 php5 5.5.9 Apache2 2.4.7 mysql-server 5.5.46 php5 5.5.9 Apache2 2.4.7 mysql-server 5.6.28 Ubuntu 14.04.3 server Ubuntu 14.04.3 server サーバー (VM) サーバー (VM) Copyright 2014 NTT corp. All Rights Reserved. 26

システム更新でよくある悩み 普通にアップデートするなら sudo apt-get install mysql-server=5.6.28 ですが データは無事に引き継がれるだろうか システムの停止時間はどれくらいだろうか もしアップデートが失敗した場合に切り戻せるだろうか 手順検証用に別のサーバを用意する余裕がない Copyright 2014 NTT corp. All Rights Reserved. 27

演習パート 1 の流れ zabbix-server 2.4.7 (1) コンテナ内で MySQL 5.6 を起動 zabbix-server 2.4.7 (3) 現用系を MySQL 5.6 に切り替え zabbix-server 2.4.7 コンテナ コンテナ php5 5.5.9 php5 5.5.9 mysql -server 5.6.28 php5 5.5.9 mysql -server 5.6.28 Apache2 2.4.7 mysql -server 5.5.46 Apache2 2.4.7 mysql -server 5.5.46 Apache2 2.4.7 mysql -server 5.5.46 Ubuntu 14.04.3 server Ubuntu 14.04.3 server (2)5.5から5.6へデータを移行 Ubuntu 14.04.3 server サーバー (VM) サーバー (VM) サーバー (VM) Copyright 2014 NTT corp. All Rights Reserved. 28

(1) コンテナ内で MySQL 5.6 を起動 root ユーザに変更 user@host:~$ su - Password: [ パスワードを入力 ] 最新版の Docker をインストール root@host:~# curl https://get.docker.com/ sh MySQL 5.6.28 のコンテナイメージをダウンロード root@host:~# docker pull mysql:5.6.28 コンテナを起動 root@host:~# docker run -itd --name mysql -v /run/shm/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=handson mysql:5.6.28 Copyright 2014 NTT corp. All Rights Reserved. 29

docker pull が終わらない場合 work around として root@host:~# cd /run/shm root@host:/run/shm# wget http://10.10.2.252/mysql_5.6.28.tar.gz root@host:/run/shm# docker import mysql_5.6.28.tar.gz mysql:5.6.28 Copyright 2014 NTT corp. All Rights Reserved. 30

(2)MySQL5.5 から 5.6 へデータを移行 MySQL 5.5 から Zabbix のデータベースをファイルにダンプ root@host:~# mysqldump -B zabbix-server -r /run/shm/data/dump.sql コンテナの中に入り ダンプファイルを読み込み Zabbix 用のMySQLユーザとパスワードを設定する root@host:~# docker exec -it mysql bash root@container:~# cat /var/lib/mysql/dump.sql mysql -phandson root@container:~# mysql -phandson mysql> GRANT ALL ON `zabbix-server`.* TO "zabbix-server" IDENTIFIED BY "zabbix-server"; mysql> exit root@container:~# exit root@host:~# Copyright 2014 NTT corp. All Rights Reserved. 31

(3)MySQL 5.6 に切り替え いったんコンテナを削除する root@host:~# docker rm -f mysql ホスト OS 上の MySQL 5.5 を停止する root@host:~# service mysql stop ブラウザを再読み込みして DB アクセスエラーが出ることを確認する TCP/3306 番ポートをコンテナに転送する設定で 再度コンテナを起動する root@host:~# docker run -itd --name mysql -v /data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=handson -p 3306:3306 mysql:5.6.28 ブラウザを再読み込みして 正常に動作していることを確認する Copyright 2014 NTT corp. All Rights Reserved. 32

システム更新演習パート 2 Copyright 2014 NTT corp. All Rights Reserved.

演習パート 2 の要件 before zabbix -server 2.4.7 php5 5.5.9 Apache2 2.4.7 phpmyadmin 4.5.0.2 を入れて MySQL を管理したい phpmyadmin には php 5.6.9 が必要 Zabbix で使っている PHP のバージョンは変えたくない!!! phpmy Admin 4.5.0.2 php5 5.6.9 zabbix -server 2.4.7 php5 5.5.9 Apache2 2.4.7 after コンテナ "mysql" mysql -server 5.6.28 コンテナ "mysql" mysql -server 5.6.28 Ubuntu 14.04.3 server サーバー (VM) Ubuntu 14.04.3 server サーバー (VM) Copyright 2014 NTT corp. All Rights Reserved. 34

演習パート 2 の流れ before コンテナ "phpmyadmin" after zabbix -server 2.4.7 php5 5.5.9 phpmyadmin php 5.6.9 nginx のセットをコンテナでインストールする phpmy Admin 4.5.0.2 php5 5.6.9 zabbix -server 2.4.7 php5 5.5.9 Apache2 2.4.7 nginx 1.7.12 Apache2 2.4.7 コンテナ "mysql" mysql -server 5.6.28 コンテナ "mysql" mysql -server 5.6.28 Ubuntu 14.04.3 server サーバー (VM) Ubuntu 14.04.3 server サーバー (VM) Copyright 2014 NTT corp. All Rights Reserved. 35

phpmyadmin をコンテナで起動する phpmyadmin のコンテナイメージをダウンロード root@host:~# docker pull corbinu/docker-phpmyadmin コンテナを起動 root@host:~# docker run -itd --name phpmyadmin --link mysql:mysql -e MYSQL_USERNAME=root -e MYSQL_PASSWORD=handson -p 8080:80 corbinu/docker-phpmyadmin ブラウザで http://ip アドレス :8080/ にアクセスしてユーザ名 : root パスワード : handson でログインできることを確認する Copyright 2014 NTT corp. All Rights Reserved. 36

docker pull が終わらない場合 work around として root@host:~# cd /run/shm root@host:/run/shm# wget http://10.10.2.252/phpmyadmin.tar.gz root@host:/run/shm# docker import phpmyadmin.tar.gz corbinu/dockerphpmyadmin Copyright 2014 NTT corp. All Rights Reserved. 37

まとめ Copyright 2014 NTT corp. All Rights Reserved.

まとめ 既存システムを部分的 段階的にコンテナ化する手法を習得 システム全体を一度にコンテナ化せずとも コンテナ技術の恩恵を受けられる コンテナ技術の恩恵 アプリケーションごとに実行環境 ( ライブラリのバージョン等 ) を分離 固定化できる 本番環境への副作用が無い状態で アップデートの検証が行える アップデート時のダウンタイムを最小化できる 切り戻しできることも保障される Copyright 2014 NTT corp. All Rights Reserved. 39