docker

A collection of 7 posts

12月 20, 2019

Docker上で動いているMastodonをkubernetesクラスタに移動した作業メモ

本稿のスコープ外 Kubernetes(以下 k8s)クラスタの構築方法 Mastodonの初期設定 kustomizeのインストール ※ 多少読み替えて頂ければ、dockerではないMastodonも移行できるはず 前提条件 kubectlが実行可能なこと kustomize が使用可能なこと 以降元dockerコンテナのファイルを持ってこれること 作業手順 実は移行自体はそれほど難しくありません。 移行が必要なのは、PostgreSQLのDBだけです。redisのデータも移行した方がよいですが、 移行しなくてもその時点のSidekiqのジョブが失われる程度で、恐らく誰も気づきません。 ※ 管理者的には、Sidekiq画面のジョブ数がリセットされるのが残念かな?程度 kubernetesクラスタ上にPodを生成 Deployment定義をgithubに公開しています。 https://github.com/yakumo-saki/k8s-mastodon-deployment 私のインスタンスは、Glitch

12月 18, 2019

writefreely をdockerで走らせてみた。

まえがき writefreely をdockerで走らせてみた。 docker-compose.ymlと、Dockerfileは以下で公開しています。 https://github.com/yakumo-saki/docker-writefreely ライセンスはオリジナルに従い AGPL 3.0 としています。 なお、本文書は作業を行ってからしばらく立って記憶だけで書いているので 誤りがある可能性が高いです。誤りを見つけたら編集リクエスト等頂けるとありがたいです。 また、writefreelyをproductionで走らせる場合、dockerイメージはまだ出来てないよ的な 記述があるのでご注意ください。 dockerイメージ yakumosaki/writefreely は、 https://hub.docker.com/r/

12月 17, 2019

jetson nano (aarch64) にdockerでzabbixを入れる

tl;dr 成果物はこちらです。試していないのですが、Rock64等、arm64なものであれば動くと思います。 https://github.com/yakumo-saki/docker-zabbix-server-arm64/tree/master https://hub.docker.com/r/yakumosaki/zabbix-server-mysql https://hub.docker.com/r/yakumosaki/zabbix-web-nginx-mysql 本記事について 成果物は上記の通りなので、失敗談等を書いていきます。 はじめに Jetson nano、

12月 14, 2019

docker-compose down時の SIGKILL が送られるまでの待ち時間を変更する

まえがき docker-compose down を実行した際にデフォルトでは SIGTERM が送信され、 10秒以内にプロセスが終了しないと、 SIGKILL を送信するようになっている。 大抵のコンテナは10秒以内に終了できるが、DBMS等のシャットダウンが必要なコンテナは タイムアウトが発生して SIGKILL されてしまう可能性がある。 そこで、このタイムアウトを変更する方法をメモしておく docker-compose.yml での指定 docker-compose.yml に stop_grace_period を追加する。 https://docs.docker.com/compose/compose-file/#stop_

12月 13, 2019

Mastodonの非Docker→Docker化

環境 元サーバー:非Dockerで稼働中のMastodonサーバー 新サーバー:Docker及びdocker-composeインストール済みのサーバー 作業PC:作業を行うPCです。SSHとSCPがあるとよいです。 移行の大枠 考え方としては、DBと .env.production ファイルを移行すればOK。 ただし、Redisのデータを移行しないとSidekiqのジョブのカウントが0に戻って少し悲しい。 移行手順 (元サーバー)から .env.production を取得する そのままなので詳細は割愛。新サーバーにコピーしておく。 (新サーバー)docker-compose.yml の準備 https://github.com/tootsuite/mastodon/

12月 12, 2019

DockerのAPIをTCPで待受させる

動機 家に数台のDockerを走らせるVMが存在している。それをまとめてWebで監視する為に、Portainerを導入した。 Portainerは、リモートのDockerを管理する事ができるが、デフォルトではdockerd はTCP経由のAPIアクセスができない。 これを変更する方法をメモする。 環境 Ubuntu 18.04.2 LTS Docker version 18.09.5, build e8ff056 (docker公式ページのaptリポジトリ使用インストール) 解決方法 解決方法は二つある。 どちらか片方を選択すること(両方やってはいけない) なお、失敗すると、dockerdが起動しなくなる。 方法その1 systemdの定義を変更して、 dockerd

3月 23, 2016

Dockerコンテナのポートをホストにマップすると危険?

お断り 本記事は古いです。 今は --expose と -port を適切に使い分けることで回避できます。 ただし、dockerがiptablesを自動的に設定しているのは変わらないです。 以下の記事がわかりやすかったです。 dockerとufwの設定が独立なせいで無駄にポートが開いてしまう件と、解決するためのdocker runオプションの記法について https://qiita.com/jqtype/items/9574ef74868b73323939 以下、古い記述 具体的に何が危険なのか コンテナのポートをホストにマップした場合( -p 80:80 ) そのポートは、ufw(ファイアウォール)の制限を受けません。 ようするに、そのポートは外からアクセス可能です。 ではどうすれば?