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

Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

Dockerイメージを作る

とみたまさひろNSEG#54

2014/08/31

Page 2: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

自己紹介

とみた まさひろ

プログラマー (Ruby & C)

http://tmtms.hatenablog.com

http://twitter.com/tmtms

https://github.com/tmtm

Page 3: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

自分用のまとめみたいな感じで目新しい話はありません

Page 4: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

イメージ

Page 5: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

コンテナの元になるもの

Page 6: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

一覧を見る

# docker images

Page 7: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

公式レジストリから持ってくる

# docker pull ubuntu

Page 8: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

コンテナから作る

# docker run ubuntu ...

...コンテナ内のファイルを変更...

# docker ps -aCONTAINER ID IMAGE COMMAND ...17012e82eff3 ubuntu:14.04 /bin/bash ...

# docker commit 17012e82eff3 hoge

Page 9: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

イメージから作る

# lsDockerfile

# cat DockerfileFROM ubuntuRUN apt-get updateRUN apt-get install ruby

# docker build -t hoge .

Page 10: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

ベースイメージを作る

tar を元に作る

# cat /tmp/hoge.tar | docker import - hoge

Page 11: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

Ubuntuのベースイメージ

# debootstrap trusty ./hoge http://ftp.riken.go.jp/Linux/ubuntu/# cd hoge# tar -c . | docker import - hoge

Page 12: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

作ったイメージを管理

Page 13: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

公開する

Docker Hub Registry

https://registry.hub.docker.com/

Page 14: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

諸事情によりプライベートで管理

Page 15: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

レジストリサーバを立てる

https://github.com/docker/docker-registry

# docker pull registry:latest# docker run -d -e STORAGE_PATH=/registry -v /dokka:/registry -p 5000:5000 registry

Page 16: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

プライベートレジストリに登録

# docker tag hoge 192.168.1.1:5000/hoge:1.0# docker push 192.168.1.1:5000/hoge:1.0

Page 17: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

プライベートレジストリから取出

# docker pull 192.168.1.1:5000/hoge

Page 18: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

レジストリ内のイメージ一覧

Page 19: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

準備

レジストリサーバー起動時に SEARCH_BACKEND を指定

# docker run -d -e STORAGE_PATH=/registry -e SEARCH_BACKEND=sqlalchemy -v /dokka:/registry -p 5000:5000 registry

Page 20: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

取り出し

結果はJSON

% GET http://192.168.1.1:5000/v1/search{"num_results": 1, "query": "", "results": [{"description": null, "name": "library/hoge"}]}

Page 21: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

おまけ

Page 22: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

コンテナ環境に入るには?

Page 23: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

ssh は sshd が動いてないといけないしカーネル同じなのに無駄っぽい

Page 24: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

nsinit が便利

Page 25: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

nsinit

Ubuntu の場合

# go get github.com/docker/libcontainer/nsinit

# cd /var/lib/docker/execdriver/native/コンテナID# nsinit exec bash

Page 26: Dockerイメージを作る - Rabbit Slide Show · 2020. 6. 13. · RUN apt-get install ruby # docker build -t hoge . Dockerイメージを作る Powered by Rabbit 2.1.3

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

おわり