第22章:圧縮と暗号化:持ち出すなら最低限ここまで🔒
この章は「バックアップファイルを外に持ち出す(USB・NAS・クラウド・別PCにコピー)ときに、サイズと漏洩リスクを一気に下げる」ための実戦回です💪✨ やることはシンプル👇
- 🗜️ 圧縮:小さくして転送・保管をラクにする
- 🔐 暗号化:盗まれても読めないようにする
- ✅ 検証:復号できる/壊れてない、を確認する
1) まず結論:迷ったらこの2択でOK😇
A案(いちばん簡単&強い):7-Zipで暗号化アーカイブ📦🔐
- ✅ Windowsで扱いやすい
- ✅ AES-256 で暗号化できる
- ✅ ファイル名も隠せる(重要)✨(
-mhe=on)
※ -mhe=on は 7z形式で有効、っていうのがポイントです。(Ask Ubuntu)
B案(クロスOSで堅い):**GPGで対称暗号(AES256)**🗝️🐧🪟
- ✅ Linux/WSLでも強い
- ✅ “1ファイル暗号化”の運用がしやすい
- ✅ AES256 指定ができる (nas.nasa.gov)
2) 圧縮って何が嬉しいの?🗜️✨
- 💾 保存容量が減る(世代管理がラク)
- 🚀 転送が速くなる(NAS/クラウド/別PCへ)
- 🧾 バックアップが1ファイルにまとまる(事故率が下がる)
Dockerのボリュームは「バックアップしやすい」設計なので、固めて運ぶのと相性がいいです📦(Docker Documentation)
3) “圧縮”の基本パターン🧳🗜️
パターン1:tar → gzip(いちばん無難)✅
- 互換性が高い
- どこでも扱える
パターン2:tar → 7z(圧縮+暗号化まで一気)🔥
- 圧縮率が良いことが多い
- 暗号化もまとめてできて運用がラク
4) “暗号化”で気をつけるポイント(超重要)🚫🔑
- 🔥 暗号化しても、パスワードが弱いと終わり → 長めのランダム推奨(パスワード管理アプリに保存が最強)🧠
- 🕵️ ファイル名が見えると情報漏れ
→ 7zなら
-mhe=onでファイル名(ヘッダ)も暗号化できる(Ask Ubuntu) - 🧾 コマンドにパスワード直書きしない → 履歴・ログ・スクショに残る事故が起きがち😇
5) 実践:Dockerボリューム → 圧縮 → 暗号化(王道手順)🏗️🔐
ここでは「まず backup.tar を作る」公式の型を使って進めます。(Docker Documentation)
(すでに前章で backup.tar.gz を作れてる人は、暗号化の手順だけやればOK👌)
5-1) backup.tar を作る(公式の型)📦
Docker公式ドキュメントの例はこういう形です👇(Docker Documentation)
## 例:dbstore というコンテナの /dbdata ボリュームを tar で固める
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
5-2) 圧縮する(gzip)🗜️
WSL(またはGit Bash等)で gzip を使う例👇
gzip -9 backup.tar
## => backup.tar.gz ができる
「gzipが面倒!」なら、次の 7-Zip 案に行っちゃうのが早いです😄
5-3) 暗号化する(A案:7-Zip)📦🔐
ポイントはこれ👇
-p:パスワード(未指定なら入力プロンプトにできる)-mhe=on:ファイル名も暗号化(これ大事)(Stack Overflow)
## backup.tar.gz を 7z で暗号化アーカイブ化(パスワードは対話で入力)
7z a -t7z -mx=9 -mhe=on -p backup.tar.gz.7z backup.tar.gz
✅ これで「外に持ち出すファイル」は backup.tar.gz.7z だけにできます🎉
5-4) 暗号化する(B案:GPG)🗝️🔒
GPGでAES256の対称暗号を使う例👇(暗号化→.gpg ができます)(tutonics.com)
gpg --symmetric --cipher-algo AES256 backup.tar.gz
## => backup.tar.gz.gpg ができる(パスフレーズ入力あり)
6) 仕上げの“検証”セット:復号できる?壊れてない?✅🧪
6-1) 7-Zip の復号(展開)📦
7z x backup.tar.gz.7z
## => backup.tar.gz が戻る
6-2) GPG の復号🔓
gpg -d -o backup.tar.gz backup.tar.gz.gpg
7) “壊れてないチェック”もやろう(ハッシュ)🧾✅
暗号化してても、転送ミスで壊れてると詰みます😇 なので SHA-256 を一緒に保存するのが強いです💪
PowerShell(手軽)🪟
Get-FileHash .\backup.tar.gz.7z -Algorithm SHA256
出てきた値を
backup.tar.gz.7z.sha256.txtにコピペ保存しておくと、未来の自分が助かります🫶
8) よくある事故と回避テク😇🧯
❌ 事故1:パスワードをコマンドに直書きして履歴に残る
- ✅ 回避:
-pは値を付けずにプロンプト入力(7z) or 対話入力(gpg)
❌ 事故2:暗号化したのに“ファイル名が丸見え”
- ✅ 回避:7z は
-mhe=on(ヘッダ暗号化)(Stack Overflow)
❌ 事故3:Docker Desktopが起動しなくて慌てる
- ✅ 回避:最悪でも「Docker Desktopのデータ(VMディスク等)を退避する」手順が公式にあります(緊急用)(Docker Documentation) ※ ただしそれは“環境丸ごと”寄りなので、この章では「プロジェクトのバックアップ」をまず固めよう、が基本方針です🧠
9) 成果物:バックアップ保管フロー🧊(テンプレ)📌
あなたのプロジェクト用に、これを README.md に貼るだけで運用品質が跳ねます✨
-
🧰 作るもの
backup.tar.gz.7z(暗号化済み本体)backup.tar.gz.7z.sha256.txt(整合性チェック用)
-
🗂️ 命名ルール(例)
backup_YYYYMMDD_HHMM.tar.gz.7zbackup_YYYYMMDD_HHMM.tar.gz.7z.sha256.txt
-
🔐 パスワード運用
- パスワード管理アプリに保存(コピーで入力)
- 口頭共有しない/チャットに貼らない/リポジトリに置かない😇
-
✅ 月1の儀式(最短でOK)
- 1個選んで復号できるか確認
- SHA-256一致チェック
- (できれば)別ボリュームに復元して起動確認まで🎭
10) ちょい小ワザ:AIに手伝わせるならここだけ🤖🛡️
- ✅ 「このフォルダ構成で、バックアップ命名ルール考えて」
- ✅ 「7zコマンドのオプション意味を短く説明して」
- ❌ バックアップファイル本体・パスワード・鍵素材は貼らない🔒
次の第23章では、「ログもデータ」問題(保存期間どうする?)を、同じノリで“迷わない判断基準”に落としていきます🪵✨