はじめに#
本記事では、Docker ComposeでセットアップされたOmeka-S環境を、volumeデータを含めて別のサーバーに移行する手順を解説します。データの整合性を保ちながら、安全に移行作業を進めることができます。
- 移行元サーバー : Ubuntu 22.04
- 移行先サーバー : Ubuntu 22.04(新規セットアップ)
- 構成 : Omeka-S + MariaDB + phpMyAdmin + Traefik + Mailpit
移行の流れ#
- 移行元サーバーでのバックアップ
- ローカルマシンへのダウンロード
- 移行先サーバーのDocker環境セットアップ
- データの復元と起動
ステップ1: 移行元サーバーでのバックアップ#
1.1 現在の環境確認#
出力例:
1.2 バックアップファイルの作成#
出力例:
1.3 バックアップファイルの権限変更#
ダウンロード用に、現在のユーザーに所有権を変更します:
ステップ2: ローカルマシンへのダウンロード#
ローカルマシンのターミナルで実行:
注意 : 1.1GBのファイルのため、ダウンロードには時間がかかります。
ステップ3: 移行先サーバーのセットアップ#
3.1 システムの更新#
3.2 既存のDockerパッケージの削除(クリーンインストール)#
3.3 Dockerの公式リポジトリを追加#
3.4 Docker Engineのインストール#
3.5 インストール確認#
0
3.6 一般ユーザーでのDocker実行権限設定#
1
ステップ4: データの転送と復元#
4.1 バックアップファイルのアップロード#
ローカルマシンから実行:
2
4.2 移行先サーバーでの展開#
3
4.3 Dockerボリュームの復元#
まず、コンテナを作成(起動はしない)してボリュームを準備します:
4
次に、バックアップからボリュームにデータを復元:
5
このコマンドの意味 :
-v omeka-s-docker_omeka:/data/omeka: Omekaのボリュームをマウント-v omeka-s-docker_mariadb:/data/mariadb: MariaDBのボリュームをマウント-v /opt:/backup: バックアップファイルのあるディレクトリをマウントalpine tar -xzf ...: Alpine Linuxイメージでtarコマンドを実行してデータを展開
4.4 ボリューム確認#
6
出力例:
7
ステップ5: コンテナの起動#
5.1 環境変数の確認#
起動前に、.envファイル(または.env.omekaなど)で以下を確認・設定します:
8
最低限必要な設定:
9
5.2 コンテナの起動#
0
5.3 起動確認#
1
トラブルシューティング#
問題1: Traefikでホスト名が空のエラー#
エラーメッセージ :
2
解決方法 :
.envファイルでOMEKA_HOSTが設定されているか確認してください。
3
問題2: データベース接続エラー#
MariaDBの起動に時間がかかる場合があります。以下を確認:
4
問題3: 権限エラー#
5
セキュリティに関する注意事項#
公開サーバーでの自動スキャン#
サーバーを公開すると、すぐに自動化されたスキャンボットがアクセスを試みます。以下のようなアクセスログが記録されることは正常です:
6
これらは脆弱性を探すボットで、すべて404(見つからない)または403(アクセス拒否)であれば問題ありません。
推奨セキュリティ対策#
- ファイアウォールの設定
7
2. Fail2banのインストール
8
3. 定期的な更新
9
便利なエイリアス設定#
特定のcomposeファイルと環境変数ファイルを使用する場合、エイリアスを設定すると便利です:
0
まとめ#
この手順により、Docker環境のOmeka-Sを安全に移行できます。重要なポイント:
- ✅ バックアップは2つ作成 : 設定ファイル用とボリュームデータ用
- ✅ ボリューム復元前にコンテナを作成 :
up --no-startでボリュームを準備 - ✅ 環境変数ファイルの確認 : 特にホスト名の設定
- ✅ セキュリティ対策 : 公開サーバーでは必須
この手順は他のDocker Compose環境の移行にも応用できます。
参考情報#
記事の最終更新 : 2025年10月