「docker/kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · docker...

49
「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参加者として 2019/11/08 Kansai Open Forum

Upload: others

Post on 27-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

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

学習のポイント 参加者として

2019/11/08 Kansai Open Forum

Page 2: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

•小川 剛

•業務用音響機器メーカーのソフトウェア開発者

Page 3: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

話すこと

•動作確認環境について •サンプルコードについて

Page 4: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

話すこと

•動作確認環境について •サンプルコードについて

Page 5: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

執筆時の動作環境

• 「本書をお読みになる前に」での記述

• ソフトウェアに関する記述は特に断りのない限り、2018年7月現在のもの

• Windows10ProとmacOSHighSierraで検証実施

• 古いバージョンやHomeなどの一部エディションでは動作しない箇所がある

Page 6: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

参加者のOS

• macOS High Sierra

• macOS Mojave

• Windows10 Pro

• Windows 10 Home

• Linux (CentOS,Debian)

Page 7: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

参加者のdocker動作環境•Docker Desktop for Mac

• macOS High Sierra

• macOS Mojave

• Docker Desktop for Windows

• Windows10 Pro

• Docker Toolbox

• Windows 10 Home

• 公式ガイドによるインストール

• Linux (CentOS,Debian)

• https://docs.docker.com/install/

Page 8: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

動作環境の違い

•環境により、設定や動作が異なる場合があった

Page 9: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

勉強会形式ですすめた効果

周りの人が同じ操作をしている

•動作や表示を比較 •どうしたらいいか相談

Page 10: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

dockerの動作環境の違いよる影響

•publish(-p)でポートフォワーディングした時の接続先

• volume(-v)によるディレクトリマウント

Page 11: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

dockerの動作環境の違いよる影響

•publish(-p)でポートフォワーディングした時の接続先

Page 12: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

publish(-p) した時の接続先

• 2.1.1 DockerイメージとDockerコンテナの基本

• ポートフォワーディングをしたコンテナを実行

• curlを利用してコンテナにアクセス

Page 13: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

publish(-p) した時の接続先

• 次の問題が発生

• curlで接続してもレスポンスが返ってこない

• 発生環境

• Docker Toolbox:Windows10 home

Page 14: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

publish(-p) した時の接続先

• Docker Toolbox (コラムで紹介されている)

• VirtualBoxでゲストOSを構築し、その上にDockerを構築

• curlの接続先

• VirtualBoxで動作しているゲストOSにする必要がある

Page 15: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

publish(-p) した時の接続先• VirtualBoxで動作しているゲストOSのIPアドレス

• 以下のコマンドで確認可能

• docker-machine ip

• 以下のコマンドで接続確認

• curl http://192.168.99.100:9000

Page 16: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

publish(-p) した時の接続先• 「Docker Quickstart Terminal」を起動した時に表示されている

Page 17: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

publish(-p) した時の接続先• サポートページに記載がありました。

• https://gihyo.jp/book/2018/978-4-297-10033-9/support

Page 18: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

dockerの動作環境の違いよる影響

•volume(-v)によるディレクトリマウント

Page 19: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

volume(-v)によるディレクトリマウント

• 2.6.1Jenkinsコンテナを実行する

• 以下のような設定ファイルを作成

• docker-compose で実行

Page 20: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

volume(-v)によるディレクトリマウント

• 次の問題が発生

• マウントでエラーとなり実行できない

• 発生環境

• Docker:CentOS

• Docker Toolbox:Windows10 home

Page 21: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

CentOSでの動作状況

• 動作状況

Page 22: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

CentOSでの動作状況

• jenkinsのオフィシャルイメージのREADMEに以下の記述 • https://github.com/jenkinsci/docker/blob/master/README.md

• 以下の方法で対応

• jenkins_homeフォルダを事前に作成

• フォルダの所有者を1000としてデータを書き込みできるようにする

Page 23: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

CentOSでの動作状況

• 対応後の動作確認

Page 24: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

Docker Toolbox(Windows10 home) での動作状況

• 動作状況

Page 25: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

Docker Toolbox(Windows10 home) での動作状況

• Docker Toolboxでのディレクトリのマウント

• 「VirtualBox」の「共有フォルダ」の機能を利用してしている

• デフォルトでは「C/Users (C:¥Users)」がマウントされれている

•マウントするディレクトリが「C/Users (C:¥Users)」に存在する必要がある

Page 26: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

Docker Toolbox(Windows10 home) での動作状況

• 対応後の動作確認

Page 27: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

Docker Desktop for Mac での ディレクトリマウント

• メニューから「Preferance…」ダイアログを開く

• 「File Shareng」タブで設定

Page 28: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

Docker Desktop for Windows での ディレクトリマウント

• メニューから「Setting」ダイアログを開き

• 「Share Drives」メニューで設定

Page 29: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

情報• Docker docsより

• Manage application data

• Volumes

• https://docs.docker.com/storage/volumes/

• Bind mount

• https://docs.docker.com/storage/bind-mounts/

• Docker Desktop for Mac

• File system sharing (osxfs)

• https://docs.docker.com/docker-for-mac/osxfs/

Page 30: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

話すこと

•動作確認環境について •サンプルコードについて

Page 31: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

サンプルコードについて•サンプルコードが提供されている

• サポートページ

• https://gihyo.jp/book/2018/978-4-297-10033-9/support

• サンプルファイル

• 補足情報

• 正誤表

• 参照しているデータの更新により記載のままでは動作しなくなったものの修正

• GitHub

• https://github.com/yoskeoka/gihyo-docker-kuberbetes

Page 32: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

サポートページ

Page 33: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

GitHub

Page 34: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

どちらのコードを利用するか?• 「サポートページ」のサンプルコードを利用

• 補足情報の修正が適用されている

• 修正済みファイル/フォルダ

• ch02/ch02_6_1/docker-compose.yml

• ch04/ch04_5_4/todo-frontend.yml

• ch06/ch06_4/todo-api.yaml

• ch08/ch08_1_5/

Page 35: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

Githubは参考情報として利用

•参考例

• 「3.5.3 Stack」実行時に利用するyamlファイルが「ch03/ch03_5_1/stack」に保存されている

• サンプルコードでは該当ファイルをコピーして利用できる

• コピー元

• ch03/ch03_5_3/

• ch03-webapi.yml

• visualizer.yml

• ch03/ch03_5_4/

• ch03-ingress.yml

• コピー先

• ch03/ch03_5_1/stack/

Page 36: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

書籍のように動作しなかったもの

• 「10.3 負荷テスト」

• 「10.3.1実験環境のセットアップ」

• 「ch10/locust:latest」のビルド

Page 37: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ch10/ch10_3_1/Dockerfile

Page 38: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ビルドエラー結果 1/3

Page 39: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ビルドエラー結果 2/3

Page 40: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ビルドエラー結果 3/3

Page 41: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ここでは何をしたいのか?

• 負荷テストツール「Locust」を動作させたい

• そのためのコンテナイメージを作成したい

• Dockerfileを変更してイメージが作成できるようにする

Page 42: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

Dockerfileの変更内容

• ベースイメージを「python:3.5-stretch」に変更

• オリジナルは「python:3.5-alpine3.4」

• それに合わせてツールのインストール手順を変更

Page 43: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

変更したDockerfile

Page 44: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

オリジナルのDockerfile

Page 45: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ビルド結果 1/2

Page 46: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ビルド結果 2/2

Page 47: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

結果

• 作成したイメージを利用して「Locust」の動作ができた

Page 48: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

ダッシュボード利用のすすめ• Portainer

• https://github.com/portainer/portainer

• Portainer is a lightweight management UI which allows you to easily manage your different Docker

• Rancher

• https://rancher.com/

• One Platform for Kubernetes Management

Page 49: 「Docker/Kubernetes 実践コンテナ開発入門」 学習のポイント 参 … · Docker Toolbox(Windows10 home) での動作状況 •Docker Toolboxでのディレクトリのマウント

以上