最初に
掲題の通り。
コンテナの勉強をしていた時に、ふと気になったので調べてみた。
あくまで構想なので実際に試してはいないです。
ぱっと目に付いたのがGitlabだったので、今回はコンテナで立てたGitlabのバックアップを取る想定で考えてみます。
このメモを読むにあたって欲しいもの
- GitlabとDockerについての知識
- コンテナについての知識
- ディレクトリのmountとかについても知識があると嬉しい
前提条件
- 想定している構造
VMの中にGitlabの公式イメージを用いてコンテナを作成。
GitlabのCIを用いてバックアップコマンドを定期実行するためには、Runnerも作る必要がある?(ちょっとよく分からないので一応記載)
本題
構想
ぱっと思いつく方法としては以下3つ。
- VMをバックアップ
- コンテナをバックアップ
- 中身(Gitlab)をバックアップ
一番よさそうだと思ったのは2だが、デイリーで回す場合ものすごく容量を食べてしまいそうな気が…
1はリストアが大変そうなので却下。
よって、いったんは3で調べてみる。
調査
まず、以下の情報が見つかった。
- Gitlabはバックアップ用のコマンドがあり、それを実行するとバックアップをアーカイブとしてまとめてくれる。(便利!)
- GitlabにはCIもあるので、定期実行も可能。
ただし実行環境は別途必要になる。(Gitlab runnerというらしい)
それなら、
- コンテナ内でGitlab CIを実行
- バックアップコマンドを定期実行
- 2で作成したアーカイブを、マウントしたディレクトリに配置orCIでコピーコマンドを実行してコンテナ外に保持
- 同じコンテナ環境を作成して、3をリストア
でいけるのでは?
自宅のPCで試そうとしたら、PCがおんぼろすぎて動かなかった。
閉廷。
参考にさせていただいた記事