Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PortainerとDocker Swarmで遊べる環境を作った話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yamato
August 24, 2020
Programming
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PortainerとDocker Swarmで遊べる環境を作った話
Yamato
August 24, 2020
More Decks by Yamato
See All by Yamato
続く障害からの脱却 オブザーバビリティで立て直すサービス開発
yamato_sorariku
0
1.7k
#phpconkagawa レガシーコードにもオブザーバビリティを 〜少しずつ始めるサービス監視〜
yamato_sorariku
0
1.5k
わたしがインシデント対応のときに意識していることたち in PHPカンファレンス小田原2024 #phpcon_odawara
yamato_sorariku
0
1.2k
PHPerKaigi_2024_アンカンファレンス_-_完成度低いの歓迎LT大会
yamato_sorariku
1
120
一年目の君へ、人に頼れるようになろう
yamato_sorariku
2
770
Cloud Runを最速で体験する方法
yamato_sorariku
0
480
クローズドなサービスをIdentity-Aware Proxyを使って安全に公開する
yamato_sorariku
0
1.1k
WEBサービスを支えるインフラたち + 自己流の学び方
yamato_sorariku
0
280
GCP PubSub Emulatorの WEB UIツール作った話(未完)
yamato_sorariku
0
500
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
120
Agents on Rails - Rails at Scale 2026
irinanazarova
0
540
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
420
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
110
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
170
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
270
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
R8 の設定見直しでアプリサイズ削減
andpad
0
220
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.4k
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Agile that works and the tools we love
rasmusluckow
331
22k
How to Ace a Technical Interview
jacobian
280
24k
Deep Space Network (abreviated)
tonyrice
0
370
Optimizing for Happiness
mojombo
378
71k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Embracing the Ebb and Flow
colly
88
5.2k
Prompt Engineering for Job Search
mfonobong
0
510
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Transcript
PortainerとDocker Swarmで 遊べる環境を作った話 ゆるWeb勉強会@札幌 OnLine #8
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 お話したいこと • なぜ自前で作ったのか • Docker Swarm
/ Portainer とは • 作った環境の構成/デプロイまでのフロー • 感想 ※ 具体的な構築手順などは今回ありません。
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 なぜ自前で環境を作ろうと思った? • 趣味で使ういい感じのDockerインフラを安い維持費で用意したかった ◦ AWSやGCPの無料枠使うことも考えたが、趣味で使うには従量課金がチョット怖い •
趣味でやることなので、あえて苦労もしてみたかった ◦ AWS ECSとか使ったら瞬殺なところ、あえて自前構築
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Docker Swarmとは? Docker Swarm • Dockerに含まれているクラスタリングツール
• 複数のDockerホストを束ねて1つの仮想Dockerホストとして利用できる • 複数のサービス(コンテナ)をまとめたStackと呼ばれる単位で管理もできる • docker-compose.ymlとほぼ同じ書き方で構築することができる。
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerとは? Portainer • Go製の軽量なWebGUI Docker管理ツール •
Docker Imageが公式で用意されており、デプロイするだけで簡単に構築可能 • WebAPIが用意されており、Webhookを利用したCD環境構築なども可能 • 有料で使える機能(Single Sign Onなど)もあるが、個人で使う分には不要
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 なぜPortainer/Docker Swarmを選んだのか? • 色々アプリ作ってデプロイしていたが、 docker-compose x
CLI だけでやるの疲れた ◦ WebGUIでサクサクやりたかった • 軽量で簡単に構築できるうえに APIが用意されていて、CD環境構築までできる ◦ 個人でやるときでも、 CI/CDは大切だと思う • k8sも考えたが、個人でやるにはオーバースペックすぎると感じた ◦ あくまでお安めの VPSでサクサク動いてほしかった
構成について
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成 さくらVPSを3台使って構築しています • リバースプロキシ&SSL終端 • Docker
Swarm & Portainer マネージャ • Docker Swarm & Portainer エージェント 6台写ってますが、3台は別用途のサーバです。
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成図 Docker Swarm クラスタ Webサーバ
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成図 Docker Swarm クラスタ Webサーバ Dockerクラスタをインターネット上に直で
晒さないためのリバースプロキシ & SSL終端も兼務
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 構成図 Docker Swarm クラスタ Webサーバ Docker
Swarmで構築されたクラスタ マネージャノードには Portainerをデプロイ エージェントノードには Portainer Agentをデプロイ (どちらもDockerでデプロイ) いずれもSSH以外のインバウンドアクセスは Webサーバからの接続しか許可していない。 (Firewalldで管理)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Portainerの画面 (公式のデモ環境)
デプロイについて
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ Git
push
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ Gitlab
CIが起動 Docker imageをビルドして、 Gitlab Docker Registry にプッシュ
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ イメージのプッシュ後、
Gitlab CI で Portainerの Webhook URLにアクセス
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 デプロイの流れ Docker Swarm クラスタ Webサーバ Gitlab
Docker Registry から 最新のイメージを取得し、起動する
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 Git push するだけでデプロイできる環境の完成!
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 自分で作ってみた感想 • Web GUIで操作できるのが楽 ◦ CLIで入って作業することがなくなった
• 気軽に起動しっぱなしのコンテナを建てれて楽しい ◦ 例えば、Herokuの無料枠は 1000時間/月 なので、2, 3つ建てると無料枠では足りなくなる • AWS ECS に対する感謝 ◦ あんなに簡単に構築できるって素晴らしい …… • データの永続化って難しい ◦ ホストのボリュームにデータが保存されるので、ホスト切り替えが大変。 今後の課題 などなど書いていますが ……
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 自分で作ったインフラで遊ぶのが楽しい
ゆるWeb勉強会@札幌 OnLine #8 #ゆるWeb札幌 興味があるかたはぜひ、使ってみてください! Dockerで起動するので、手元の環境で簡単に試すこともできます (Docker Swarmモードである必要はないです)
ありがとうございました!