Gluesyncは評価用に事前構成されたdocker-compose.ymlを提供しています。

そのため、これをDocker composeが使用できる環境に配置してdocker compose up -d
を実行すれば下記のように自動的にインターネット上のリポジトリからイメージをpull(ダウンロード)してきます。

しかし、当然ことながらこれはオフライン環境では下記のようにエラーで失敗します。
climb@offlinetest:~/gluesync-docker$ docker compose up -d
[+] Running 7/7
! grafana Interrupted 0.0s
✘ prometheus Error Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:40746->[::1]:53: read: connection refused 0.0s
! gluesync-chronos Interrupted 0.0s
! gluesync-core-hub Interrupted 0.0s
! reverse-proxy Interrupted 0.0s
! gluesync-postgresql-cdc-target Interrupted 0.0s
! gluesync-ibm-iseries-source Interrupted 0.0s
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:40746->[::1]:53: read: connection refused
このため、オフライン環境で使用する場合、事前にコンテナのイメージを配置しておく必要があります。今回はdocker saveとdocker loadコマンドを使用してこれを実施する方法を紹介します。
オンライン環境でのイメージ取得
オンライン環境のDockerにて評価キットから展開したgluesync-dockerディレクトリへ移動し、docker compose pull
を実行し、イメージを取得します。
climb@step:~$ cd gluesync-docker/
climb@step:~/gluesync-docker$ docker compose pull
[+] Pulling 57/57
✔ gluesync-ibm-iseries-source Pulled 28.4s
✔ gluesync-chronos Pulled 31.4s
✔ gluesync-postgresql-cdc-target Pulled 37.1s
✔ prometheus Pulled 1.9s
✔ grafana Pulled 1.9s
✔ reverse-proxy Pulled 22.3s
✔ gluesync-core-hub Pulled 1.9s
問題なく取得できていればdocker image ls
でイメージを確認できます。
climb@step:~/gluesync-docker$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
molo17/gluesync-core-hub latest d75160f6137f 31 hours ago 499MB
molo17/gluesync-ibm-iseries latest a683d17a7de0 31 hours ago 488MB
molo17/gluesync-postgresql-cdc latest 60addcb8cba6 31 hours ago 483MB
molo17/gluesync-chronos latest cf964252e130 38 hours ago 633MB
grafana/grafana latest 75006c93b887 5 days ago 722MB
prom/prometheus latest a3bc50fcb50f 9 days ago 313MB
traefik v3.3 ff8877338069 2 months ago 224MB
イメージはdocker saveコマンドで保存できますが、複数あるため、今回は下記のbulksave.shスクリプトでsavesフォルダにまとめて保存するようにします。
#!/bin/sh
set -e
mkdir -p saves
docker images --format "{{.Repository}}:{{.Tag}} {{.Repository}}_{{.Tag}}" | while read image
do
image_id=`echo $image | cut -d ' ' -f1`
image_name=`echo $image | cut -d ' ' -f2 | tr -d "/"`
docker save $image_id > ./saves/${image_name}.tar
done
スクリプトを実行するとsavesフォルダにまとめて保存されています。このスクリプトでは存在しているすべてのイメージを保存しますので、必要に応じてdocker imagesコマンドに–filterオプションを追加し、不要なイメージは除外するように変更してください。
climb@step:~/gluesync-docker$ chmod 755 bulksave.sh
climb@step:~/gluesync-docker$ ./bulksave.sh
climb@step:~/gluesync-docker$ ls saves
grafanagrafana_latest.tar molo17gluesync-chronos_latest.tar molo17gluesync-core-hub_latest.tar molo17gluesync-ibm-iseries_latest.tar molo17gluesync-postgresql-cdc_latest.tar promprometheus_latest.tar traefik_v3.3.tar
この保存したイメージも含めてオフライン環境にgluesync-dockerディレクトリごとコピーします。
climb@step:~/gluesync-docker$ scp -r ../gluesync-docker climb@192.168.77.77:/home/climb/
climb@192.168.77.77's password:
core-hub-metrics.json 100% 38KB 13.2MB/s 00:00
dashboard.yml 100% 291 383.3KB/s 00:00
datasource.yml 100% 180 321.3KB/s 00:00
gluesync.com.jks 100% 3068 3.5MB/s 00:00
gs-license.dat 100% 868 953.1KB/s 00:00
bootstrap-core-hub.json 100% 76 111.3KB/s 00:00
prometheus.yml 100% 401 646.5KB/s 00:00
molo17gluesync-core-hub_latest.tar 100% 481MB 186.1MB/s 00:02
molo17gluesync-postgresql-cdc_latest.tar 100% 466MB 186.4MB/s 00:02
traefik_v3.3.tar 100% 214MB 149.5MB/s 00:01
promprometheus_latest.tar 100% 300MB 225.8MB/s 00:01
grafanagrafana_latest.tar 100% 698MB 176.2MB/s 00:03
molo17gluesync-chronos_latest.tar 100% 617MB 229.2MB/s 00:02
molo17gluesync-ibm-iseries_latest.tar 100% 471MB 155.6MB/s 00:03
certs.yml 100% 151 96.1KB/s 00:00
traefik.yml 100% 342 177.1KB/s 00:00
logback.xml 100% 1267 757.4KB/s 00:00
gluesync-cert.pem 100% 1974 1.5MB/s 00:00
grafanagrafana_latest.tar 100% 698MB 166.9MB/s 00:04
security-config.json 100% 293 244.0KB/s 00:00
docker-compose.yml 100% 8878 6.7MB/s 00:00
gluesync-key.pem 100% 1849 1.2MB/s 00:00
bulksave.sh 100% 284 483.6KB/s 00:00
オフライン環境でのイメージのロード
コピーしたgluesync-dockerディレクトリに移動します。
climb@step:~/gluesync-docker$ ssh 192.168.77.77
climb@192.168.77.77's password:
Linux offlinetest 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jul 24 10:50:55 2025 from 192.168.77.79
climb@offlinetest:~$ cd gluesync-docker/
一つずつ保存したイメージのtarをdocker load
コマンドで読み込むこともできますがここでは下記のスクリプトでまとめて読み込んでします。
climb@offlinetest:~/gluesync-docker$ cat bulkload.sh
#!/bin/sh
for file in saves/*.tar; do
docker load -i "$file"
done
climb@offlinetest:~/gluesync-docker$ chmod 755 bulkload.sh
climb@offlinetest:~/gluesync-docker$ ./bulkload.sh
08000c18d16d: Loading layer [==================================================>] 8.121MB/8.121MB
a79fd921bc73: Loading layer [==================================================>] 2.56kB/2.56kB
9cc7b6091a3e: Loading layer [==================================================>] 8.67MB/8.67MB
97b6092cb34c: Loading layer [==================================================>] 26.55MB/26.55MB
47ef72cb0b55: Loading layer [==================================================>] 223.2kB/223.2kB
41cfb2f3b7e1: Loading layer [==================================================>] 111.1kB/111.1kB
e1b6356de126: Loading layer [==================================================>] 394.2MB/394.2MB
0e16bb8c20c8: Loading layer [==================================================>] 294.1MB/294.1MB
4d1cec8ac292: Loading layer [==================================================>] 37.89kB/37.89kB
c27dd65cf52a: Loading layer [==================================================>] 5.12kB/5.12kB
Loaded image: grafana/grafana:latest
7cc7fe68eff6: Loading layer [==================================================>] 77.88MB/77.88MB
0a00f6ce5fb7: Loading layer [==================================================>] 9.561MB/9.561MB
943faa7467a0: Loading layer [==================================================>] 47.51MB/47.51MB
d22cc68b10d7: Loading layer [==================================================>] 5.12kB/5.12kB
5a0f38a32659: Loading layer [==================================================>] 1.536kB/1.536kB
07ba18ad0976: Loading layer [==================================================>] 13.83MB/13.83MB
124b774a0b12: Loading layer [==================================================>] 4.096kB/4.096kB
15583e9073b8: Loading layer [==================================================>] 9.728kB/9.728kB
1b460b1eb790: Loading layer [==================================================>] 39.42kB/39.42kB
25873ba4bfe3: Loading layer [==================================================>] 175.6kB/175.6kB
21f0912ce811: Loading layer [==================================================>] 2.56kB/2.56kB
2ffe43ddab52: Loading layer [==================================================>] 4.608kB/4.608kB
18a78bb070bd: Loading layer [==================================================>] 4.096kB/4.096kB
7dba9bb060c8: Loading layer [==================================================>] 19.97kB/19.97kB
a91e752ef628: Loading layer [==================================================>] 255kB/255kB
6b46174d5e90: Loading layer [==================================================>] 9.216kB/9.216kB
f43d597bacf0: Loading layer [==================================================>] 25.09kB/25.09kB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
74877e0efd6a: Loading layer [==================================================>] 57.21MB/57.21MB
189e5c7c2d81: Loading layer [==================================================>] 384.1MB/384.1MB
0e358b9565d7: Loading layer [==================================================>] 69.63kB/69.63kB
46c609cd3326: Loading layer [==================================================>] 56.7MB/56.7MB
Loaded image: molo17/gluesync-chronos:latest
8d853c8add5d: Loading layer [==================================================>] 77.83MB/77.83MB
bec6e6f75d3a: Loading layer [==================================================>] 350.6MB/350.6MB
64833d7e8df2: Loading layer [==================================================>] 20.9MB/20.9MB
6fa85aa38ed6: Loading layer [==================================================>] 489.5kB/489.5kB
5721c53402cb: Loading layer [==================================================>] 6.774MB/6.774MB
14e212539af1: Loading layer [==================================================>] 24.06kB/24.06kB
d71eb2cc9fff: Loading layer [==================================================>] 2.048kB/2.048kB
805690ba64f0: Loading layer [==================================================>] 3.072kB/3.072kB
91fe7aa6c83a: Loading layer [==================================================>] 3.072kB/3.072kB
21556ecc8350: Loading layer [==================================================>] 3.584kB/3.584kB
db18493ecfca: Loading layer [==================================================>] 3.584kB/3.584kB
b0dd230dcb86: Loading layer [==================================================>] 47.64MB/47.64MB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
c82aaef265b1: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: molo17/gluesync-core-hub:latest
fb4a92957d0c: Loading layer [==================================================>] 20.9MB/20.9MB
41f27d21f926: Loading layer [==================================================>] 489.5kB/489.5kB
eb69e4939385: Loading layer [==================================================>] 6.774MB/6.774MB
3162aeb41db4: Loading layer [==================================================>] 24.06kB/24.06kB
8bc5a96ce609: Loading layer [==================================================>] 2.048kB/2.048kB
c534fb8b0541: Loading layer [==================================================>] 3.072kB/3.072kB
8d45e791d0a1: Loading layer [==================================================>] 3.072kB/3.072kB
367c68a25e66: Loading layer [==================================================>] 3.584kB/3.584kB
3fcc70161be9: Loading layer [==================================================>] 3.584kB/3.584kB
76a88d2ac879: Loading layer [==================================================>] 36.75MB/36.75MB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
dc765fd0e258: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: molo17/gluesync-ibm-iseries:latest
8c10cec765ff: Loading layer [==================================================>] 20.9MB/20.9MB
27e5aab6aead: Loading layer [==================================================>] 489.5kB/489.5kB
8f647a62c02e: Loading layer [==================================================>] 6.774MB/6.774MB
7cb9b54cf4e6: Loading layer [==================================================>] 24.06kB/24.06kB
e1c67e777fed: Loading layer [==================================================>] 2.048kB/2.048kB
6746c71279b3: Loading layer [==================================================>] 3.072kB/3.072kB
835b1bee674f: Loading layer [==================================================>] 3.072kB/3.072kB
76ba3ab2a760: Loading layer [==================================================>] 3.584kB/3.584kB
8b5bb6db1f76: Loading layer [==================================================>] 3.584kB/3.584kB
0addd6c13f8f: Loading layer [==================================================>] 31.8MB/31.8MB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
49ad86643221: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: molo17/gluesync-postgresql-cdc:latest
1e604deea57d: Loading layer [==================================================>] 1.458MB/1.458MB
6b83872188a9: Loading layer [==================================================>] 2.455MB/2.455MB
51058541ddde: Loading layer [==================================================>] 159.4MB/159.4MB
aced3db9898b: Loading layer [==================================================>] 150.7MB/150.7MB
735c0da4fd32: Loading layer [==================================================>] 4.096kB/4.096kB
349de0ee3a82: Loading layer [==================================================>] 13.31kB/13.31kB
f19ace59c2b4: Loading layer [==================================================>] 5.632kB/5.632kB
5797eee2097b: Loading layer [==================================================>] 62.46kB/62.46kB
bd712c1df0b0: Loading layer [==================================================>] 1.536kB/1.536kB
83608e9fa217: Loading layer [==================================================>] 5.632kB/5.632kB
Loaded image: prom/prometheus:latest
31b41022049d: Loading layer [==================================================>] 1.688MB/1.688MB
3eae8a7fbd15: Loading layer [==================================================>] 215.1MB/215.1MB
3fc935bcee95: Loading layer [==================================================>] 2.048kB/2.048kB
climb@offlinetest:~/gluesync-docker$
loadが完了すると下記のようにイメージが読み込まれていることがわかります。
climb@offlinetest:~/gluesync-docker$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
molo17/gluesync-core-hub latest d75160f6137f 32 hours ago 499MB
molo17/gluesync-ibm-iseries latest a683d17a7de0 32 hours ago 488MB
molo17/gluesync-postgresql-cdc latest 60addcb8cba6 32 hours ago 483MB
molo17/gluesync-chronos latest cf964252e130 39 hours ago 633MB
grafana/grafana latest 75006c93b887 5 days ago 722MB
prom/prometheus latest a3bc50fcb50f 9 days ago 313MB
traefik v3.3 ff8877338069 2 months ago 224MB
この状態であれば、インターネットから取得しなくとも、これらのイメージがすでに利用できますのでdocker compose up -d
でコンテナを起動できます。
climb@offlinetest:~/gluesync-docker$ docker compose up -d
[+] Running 8/8
✔ Network gluesync-docker_default Created 0.1s
✔ Container gluesync-docker-gluesync-core-hub-1 Started 0.4s
✔ Container gluesync-docker-reverse-proxy-1 Started 0.5s
✔ Container gluesync-docker-prometheus-1 Started 0.8s
✔ Container gluesync-docker-gluesync-postgresql-cdc-target-1 Started 0.8s
✔ Container gluesync-docker-gluesync-chronos-1 Started 1.0s
✔ Container gluesync-docker-gluesync-ibm-iseries-source-1 Started 0.9s
✔ Container gluesync-docker-grafana-1 Started 1.2s
関連したトピックス
- Gluesyncのバージョンアップ方法
- [Gluesyncブログ] タイムゾーン変更方法
- GlueSyncでNoSQL活用を加速:導入編
- Gluesyncの技術お問い合わせに必要な情報
- Web UI日本語化でもっと簡単にデータ同期[Gluesync 2.0.9]
- Gluesync 2.0: 新しい統合とパフォーマンス向上へ
- Gluesyncのレプリケーションソース(CDC付)およびレプリケーションターゲットとしてのDynamoDBのサポート
- GlueSyncでNoSQL活用を加速:通知アラート、ログ、モニタリング
- Gluesync for MySQL 8+:リアルタイム同期のための高性能な変更データキャプチャ(CDC)の実装
- Dockerfilesを使用してSQL Server Dockerコンテナを構成