36
コココココココ ココココ @tabimoba CodeIgniter Night (2016/11/04)

コンテナで作る開発環境 (20161104 CodeIgniter Night)

  • Upload
    -

  • View
    454

  • Download
    2

Embed Size (px)

Citation preview

Page 1: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナで作る開発環境

@tabimoba

CodeIgniter Night (2016/11/04)

Page 2: コンテナで作る開発環境 (20161104 CodeIgniter Night)

大野 智之@tabimoba

• コミュニティ• IDCFクラウドユーザー会• NetCommons(コモンズネット )など

• 好きなフレームワーク• CodeIgniter

• 本内容は発表者個人の見解であり、所属組織の見解を表すものではありません。

自己紹介

Page 3: コンテナで作る開発環境 (20161104 CodeIgniter Night)

今回は

Page 4: コンテナで作る開発環境 (20161104 CodeIgniter Night)
Page 5: コンテナで作る開発環境 (20161104 CodeIgniter Night)

ではなく

Page 6: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナの話をします

Page 7: コンテナで作る開発環境 (20161104 CodeIgniter Night)

みなさまにお聞きします

Page 8: コンテナで作る開発環境 (20161104 CodeIgniter Night)

VirtualBox 使っていますか?

Page 9: コンテナで作る開発環境 (20161104 CodeIgniter Night)

Vagrant 使っていますか?

Page 10: コンテナで作る開発環境 (20161104 CodeIgniter Night)

IaaS や VPS 使っていますか?

Page 11: コンテナで作る開発環境 (20161104 CodeIgniter Night)

IaaS や VPS をケチケチと効率的に使いたいと思ったことありませんか?

Page 12: コンテナで作る開発環境 (20161104 CodeIgniter Night)

メモリが足りなくて仮想マシン( VM )が追加出来なくて

辛いと思ったことありませんか?

Page 13: コンテナで作る開発環境 (20161104 CodeIgniter Night)

メモリ 4GB の MacBookAir を買って失敗したと思ったことありませんか?

Page 14: コンテナで作る開発環境 (20161104 CodeIgniter Night)

Atom な Windows タブレットを開発環境にしたいと思ったことありませんか?

Page 15: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナを使いましょう

Page 16: コンテナで作る開発環境 (20161104 CodeIgniter Night)

• コンテナなのでコンテナの作成、起動が早い• メモリやストレージが無駄なく利用できる

コンテナのメリット

VM1 VM2 VM3

Container1

Container2Container3

仮想マシン( VM)の場合 コンテナの場合VMごとにメモリ、ストレージを事前に割り当てて専有しておく必要がある割り当てたメモリやストレージが全て消費されるとは限らない起動可能な VM数はメモリ、ストレージの容量に依存する(物理メモリ以上のメモリ容量を VMに割り当てられない)

全てのコンテナでメモリ、ストレージを共有する実質無制限でコンテナ、ストレージを起動可能メモリの少ない環境でも複数のコンテナを起動することができる

Page 17: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナといえば

Page 18: コンテナで作る開発環境 (20161104 CodeIgniter Night)
Page 19: コンテナで作る開発環境 (20161104 CodeIgniter Night)
Page 20: コンテナで作る開発環境 (20161104 CodeIgniter Night)

LXD

Page 21: コンテナで作る開発環境 (20161104 CodeIgniter Night)

LXD で作る開発環境

@tabimoba

CodeIgniter Night (2016/11/04)

Page 22: コンテナで作る開発環境 (20161104 CodeIgniter Night)

• コンテナハイパーバイザー( LXC のラッパー)• Ubuntu 14.04LTS 以降で利用可能• Docker と共存可能

LXD とは

Page 23: コンテナで作る開発環境 (20161104 CodeIgniter Night)

• init(upstart) や systemd,rc スクリプトがそのまま( VM と同様に)動く• いつもの VM と同じ勝手でコンテナが扱える

• Dockerfile のような仕組みは持たない• システムの起動処理は systemd,rc スクリプトに任せれば良い• 構成管理的なものは、 Ansible 等を利用すれば良い

• モジュールあります

Docker との違い

Page 24: コンテナで作る開発環境 (20161104 CodeIgniter Night)

LXD を利用するには

Page 25: コンテナで作る開発環境 (20161104 CodeIgniter Night)

Ubuntu をインストール

Page 26: コンテナで作る開発環境 (20161104 CodeIgniter Night)

パッケージのインストール

# apt install lxd bridge-utils

Page 27: コンテナで作る開発環境 (20161104 CodeIgniter Night)

LXD 初期設定

#lxd init

Page 28: コンテナで作る開発環境 (20161104 CodeIgniter Night)

これだけで使い始められます

Page 29: コンテナで作る開発環境 (20161104 CodeIgniter Night)

これだけ覚えればすぐ使える LXD

Page 30: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナの作成

▽ CentOS 7$ lxc launch images:centos/7/amd64 -c security.privileged=true

▽ CentOS 6$ lxc launch images:centos/6/amd64

▽ Ubuntu 14.04$ lxc launch ubuntu:14.04

▽ Ubuntu 16.04$ lxc launch ubuntu:16.04

Page 31: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナ一覧表示

# lxc list+---------------+---------+---------------------+------+------------+-----------+| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |+---------------+---------+---------------------+------+------------+-----------+| fast-ghoul | RUNNING | 10.238.76.9 (eth0) | | PERSISTENT | 0 |+---------------+---------+---------------------+------+------------+-----------+| hogecontainer | RUNNING | 10.238.76.42 (eth0) | | PERSISTENT | 0 |+---------------+---------+---------------------+------+------------+-----------+

Page 32: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナの起動・停止

■ コンテナの起動$ lxc start <Container name>

■ コンテナの停止$ lxc stop <Container name>

Page 33: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナのシェルを利用する

# lxc exec hogecontainer /bin/bash

[root@hogecontainer ~]# uname -aLinux hogecontainer 4.2.0-36-generic #42~14.04.1-Ubuntu SMP Fri May 13 17:27:22 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

[root@hogecontainer ~]# cat /etc/redhat-releaseCentOS release 6.8 (Final)

Page 34: コンテナで作る開発環境 (20161104 CodeIgniter Night)

簡単ですね!

Page 35: コンテナで作る開発環境 (20161104 CodeIgniter Night)

コンテナいかがでしょうか?

Page 36: コンテナで作る開発環境 (20161104 CodeIgniter Night)

LXD で素晴らしいコンテナライフを!