はじめに
Dockerコンテナの起動、変更、削除を行うソフト勉強がてらを書きました。
Farmingとは
自身もDocker上で実行するコンテナ管理。
リモートからコンテナ設定情報を取得しコンテナを構成します
- 設定情報にないコンテナ→停止&削除(停止のみの設定も可)
- 設定上にあり実行していないコンテナ→実行(イメージが無い場合はPullして実行)
- バージョン違い→イメージが無い場合はPullして実行
が機能です。
開発経緯
Edgeデバイス上のDockerでWeb開発する必要があり、デプロイそしてアップデートをどのように
簡略化できるかを考えていました。
当初HashiCorop社のNomadがフィットすると思い試していましたが、日本語のチュートリアルが少なく、
サーバ→クライアントと別PCでの構成に悩む。
やりたい事はシンプルで
- docker run
- docker start
- docker stop
- docker pull
- docker rm
このコマンドをリモートから実行
DockerAPIを実行すれば実現できることが分かりソフトに仕立てました
いづれはEdgePCが複数台になることからjsonファイルをEdgePCが参照しコンテナをオーケストレーションを目指しました
課題
EdgePCのログ収集、構成ファイルダウンロード時の認証やEdgePCのグルーピングなどを組み込みたいと思っています
リポジトリ
DockerHub