はじめに

本記事では、Docker ComposeでセットアップされたOmeka-S環境を、volumeデータを含めて別のサーバーに移行する手順を解説します。データの整合性を保ちながら、安全に移行作業を進めることができます。

環境

  • 移行元サーバー : Ubuntu 22.04
  • 移行先サーバー : Ubuntu 22.04(新規セットアップ)
  • 構成 : Omeka-S + MariaDB + phpMyAdmin + Traefik + Mailpit

移行の流れ

  1. 移行元サーバーでのバックアップ
  2. ローカルマシンへのダウンロード
  3. 移行先サーバーのDocker環境セットアップ
  4. データの復元と起動

ステップ1: 移行元サーバーでのバックアップ

1.1 現在の環境確認

#d#doocDckokecerkreprsolumels

出力例:

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

1.2 バックアップファイルの作成

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

出力例:

--rrww--rr----rr----11rroooottrroooott15.91MGOOcctt11661177::0024opptt/ommeekkaa--bvaoclkuumpe-s2-02205215011061.6t.atra.rg.zgz

1.3 バックアップファイルの権限変更

ダウンロード用に、現在のユーザーに所有権を変更します:

ssuuddoocchhoowwnn$$UUSSEERR::$$UUSSEERRopptt/ommeekkaa--bvaoclkuumpe-s2-02205215011061.6t.atra.rg.zgz

ステップ2: ローカルマシンへのダウンロード

ローカルマシンのターミナルで実行:

#c#ss#ldccsSpp~C-/PuulDsshoeewrron@@mlsseoookauuadrr-scc*ee.--tssaeerrr.vvgeezrr--iipp::/opptt/ommeekkaa--bvaoclkuumpe-s2-02205215011061.6t.atra.rg.zgz

注意 : 1.1GBのファイルのため、ダウンロードには時間がかかります。


ステップ3: 移行先サーバーのセットアップ

3.1 システムの更新

ssuuddooaappttuuppdgartaede-y

3.2 既存のDockerパッケージの削除(クリーンインストール)

fdoorsnuepdkogaipnt-dgoectkerre.mioovedo$cpkkegr-docdocker-composedocker-compose-v2podman-dockercontainerdrunc;do

3.3 Dockerの公式リポジトリを追加

#sssss#esuuuuucuGdddddh"$sdPooooood(uoGe.daaiccbappnuhpttsrm[ett--tloate-ggadrcegeel-c/ettlfaho/ts+=seui-Sr$-tupnmL(rcpds/de/dat0heplaata7ttkeptel5tcgatel5p/s/saesc-:p-oad/tp&u-/r&rcdkiceeoeneertwytcstcnr-h.i/liaolfaonriipagc"sctdsh$ta/./i{.tkddtUdeeooeB/sycccUdrkktNocieeuTcunrrrUkrg..e_elsca)CrosO.mcsDl/iEilgNsinAtneMudE>x-:/b-/uy$db=Veu/EvneR/ttSnucIu//OlgaNlpp_gtC/OkDeEyN/rAeiMtnEcg}/s"a/)pdtos/ctkkaeebyrlr.eia"nsgc|s]/dhotctkpesr:./a/sdcownload.docker.com/linux/ubuntu\

3.4 Docker Engineのインストール

sudoapt-getinstalldocker-cedocker-ce-clicontainerd.iodocker-buildx-plugindocker-compose-plugin

3.5 インストール確認

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

0

3.6 一般ユーザーでのDocker実行権限設定

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

1


ステップ4: データの転送と復元

4.1 バックアップファイルのアップロード

ローカルマシンから実行:

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

2

4.2 移行先サーバーでの展開

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

3

4.3 Dockerボリュームの復元

まず、コンテナを作成(起動はしない)してボリュームを準備します:

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

4

次に、バックアップからボリュームにデータを復元:

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

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 ボリューム確認

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

6

出力例:

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

7


ステップ5: コンテナの起動

5.1 環境変数の確認

起動前に、.envファイル(または.env.omekaなど)で以下を確認・設定します:

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

8

最低限必要な設定:

DllRooIccVaaEllRVooOmmLeeUkkMaaE--ssN--AddMooEcckkeerr__moamreikaadb

9

5.2 コンテナの起動

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

0

5.3 起動確認

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

1


トラブルシューティング

問題1: Traefikでホスト名が空のエラー

エラーメッセージ

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

2

解決方法
.envファイルでOMEKA_HOSTが設定されているか確認してください。

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

3

問題2: データベース接続エラー

MariaDBの起動に時間がかかる場合があります。以下を確認:

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

4

問題3: 権限エラー

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

5


セキュリティに関する注意事項

公開サーバーでの自動スキャン

サーバーを公開すると、すぐに自動化されたスキャンボットがアクセスを試みます。以下のようなアクセスログが記録されることは正常です:

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

6

これらは脆弱性を探すボットで、すべて404(見つからない)または403(アクセス拒否)であれば問題ありません。

推奨セキュリティ対策

  1. ファイアウォールの設定
#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

7 2. Fail2banのインストール

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

8 3. 定期的な更新

#c#s#s#lduusdDdaooool-pocpltptkdooihtaeommonrrceepekkkto-eaa:tpcr--/atzssbr/fr--a*uddc-.onookctmccuzaekkpfrk-ee.6arrrg0-m__bzMbomaBa\maccerkkkiuuaapp:d/-1/bo$Gd:m(Ba/edtdkaaaat/t-eoavm/o+eml%kauYarm%iem\as%d-db$)(.\dtaatre.g+z%Yo%mme%kda)-.st-adro.cgkzer-/C/data.

9


便利なエイリアス設定

特定のcomposeファイルと環境変数ファイルを使用する場合、エイリアスを設定すると便利です:

--rrww--rr----rr----11rroooottrroooott15.91MGOOcctt11661177::0024opptt/ommeekkaa--bvaoclkuumpe-s2-02205215011061.6t.atra.rg.zgz

0


まとめ

この手順により、Docker環境のOmeka-Sを安全に移行できます。重要なポイント:

  1. バックアップは2つ作成 : 設定ファイル用とボリュームデータ用
  2. ボリューム復元前にコンテナを作成 : up --no-startでボリュームを準備
  3. 環境変数ファイルの確認 : 特にホスト名の設定
  4. セキュリティ対策 : 公開サーバーでは必須

この手順は他のDocker Compose環境の移行にも応用できます。


参考情報


記事の最終更新 : 2025年10月