Rabbit Slide Show

Dockerイメージを作る

Description

Dockerイメージを作る

Text

Page: 1

Dockerイメージを作る
とみたまさひろ
NSEG#54
2014/08/31
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 2

自己紹介
とみた まさひろ
プログラマー (Ruby & C)
http://tmtms.hatenablog.com
http://twitter.com/tmtms
https://github.com/tmtm
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 3

自分用のまとめみたいな感じで目
新しい話はありません
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 4

イメージ
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 5

コンテナの元になるもの
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 6

一覧を見る
# docker images
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 7

公式レジストリから持ってくる
# docker pull ubuntu
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 8

コンテナから作る
# docker run ubuntu ...
...コンテナ内のファイルを変更...
# docker ps -a
CONTAINER ID
17012e82eff3
IMAGE
ubuntu:14.04
COMMAND
...
/bin/bash ...
# docker commit 17012e82eff3 hoge
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 9

イメージから作る
# ls
Dockerfile
# cat Dockerfile
FROM ubuntu
RUN apt-get update
RUN apt-get install ruby
# docker build -t hoge .
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 10

ベースイメージを作る
tar を元に作る
# cat /tmp/hoge.tar | docker import - hoge
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 11

Ubuntuのベースイメージ
# debootstrap trusty ./hoge
http://ftp.riken.go.jp/Linux/ubuntu/
# cd hoge
# tar -c . | docker import - hoge
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 12

作ったイメージを管理
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 13

公開する
Docker Hub Registry
https://registry.hub.docker.com/
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 14

諸事情によりプライベートで管理
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 15

レジストリサーバを立てる
https://github.com/docker/docker-registry
# docker pull registry:latest
# docker run -d -e STORAGE_PATH=/registry
-v /dokka:/registry -p 5000:5000 registry
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 16

プライベートレジストリに登録
# docker tag hoge 192.168.1.1:5000/hoge:1.0
# docker push 192.168.1.1:5000/hoge:1.0
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 17

プライベートレジストリから取出
# docker pull 192.168.1.1:5000/hoge
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 18

レジストリ内のイメージ一覧
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 19

準備
レジストリサーバー起動時に SEARCH_BACKEND
を指定
# docker run -d -e STORAGE_PATH=/registry
-e SEARCH_BACKEND=sqlalchemy
-v /dokka:/registry -p 5000:5000 registry
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 20

取り出し
結果はJSON
% GET http://192.168.1.1:5000/v1/search
{"num_results": 1, "query": "", "results":
[{"description": null, "name": "library/hoge"}]}
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 21

おまけ
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 22

コンテナ環境に入るには?
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 23

ssh は sshd が動いてないといけな
いしカーネル同じなのに無駄っぽい
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 24

nsinit が便利
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 25

nsinit
Ubuntu の場合
# go get github.com/docker/libcontainer/nsinit
# cd /var/lib/docker/execdriver/native/コンテナID
# nsinit exec bash
Dockerイメージを作る
Powered by Rabbit 2.1.3

Page: 26

おわり
Dockerイメージを作る
Powered by Rabbit 2.1.3

Other slides