Dockerのイメージやコンテナをバックアップして別の環境に移行する
Dockerのイメージやコンテナをバックアップして別の環境に移行する方法を解説した動画です。Dockerを使っていると、イメージやコンテナをバックアップして別の環境に移行する必要がある場合があります。動画では、Dockerイメージとコンテナのバックアップ方法や、別の環境に移行する際の注意点などを詳しく解説しています。
Dockerのコンテナやイメージを他の仮想マシンに持っていったり、持ち込んだりします。Oracle Cloudの2つのインスタンス同士でやり取りをします。インスタンスのOSはどちらともLinuxです。
まずはコンテナをエクスポートします。exportコマンドはコンテナのファイルシステムをアーカイブとして出力します。コンテナIDを付けて入力します。
docker export -o bk.tar 3faab49a6127
コマンドを実行したディレクトリに圧縮したファイルが作成されます。このファイルを一度自分のPCにダウンロードします。TeraTermのSSH SCPを使用します。パーミッションのエラーが発生しました。ファイルに適切なパーミッションを設定します。
chmod 666 bk.tar
ダウンロードに時間がかかりそうだったので別の方法を試すことにしました。移行元で直接移行先にファイルを送るか、移行先で移行元からファイルを取り寄せることにします。今回は後者の方法を選択します。
移行先で移行元からファイルを受け取りますがrsyncのコマンドを入力します。移行元ではSSH接続を秘密鍵を使用してログインしていたので、移行元の秘密鍵が必要になります。また2つのインスタンスは同じVPCネットワークを使用しているので同じセグメントのプライベートIPアドレスが割り振ってあります。高速に転送できるはずです。
https://youtu.be/L-zyB9wvbXQ
rsync -e 'ssh -i /tmp/ssh-key-2022-01-06.key' -av [email protected]:/tmp/bk.tar /tmp
無事持ってくることができました。
移行先ではDockerをインストールしたばかりで何もないはずです。
docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Dockerをインストールしたばかりで起動していなかったようです。ついでにサービスが自動起動するように設定します。
systemctl start docker
systemctl enable docker
持ってきたファイルをインポートします。このコマンドはファイルシステム、イメージを作成するため、tarボールから内容を読み込みます。
docker import /tmp/bk.tar
コンテナを確認してみるとなにもないが、イメージが存在していました。
今度はDockerのsaveコマンドを使用して挙動を確認します。このコマンドは先ほどと違い、イメージをバックアップするのでコンテナをイメージにするコマンドを入力します。移行元に戻りコマンドを入力します。コンテナを停止することなくイメージにすることができました。
使い方
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
このコマンドはコンテナに対する変更から、新しいイメージを作成します。
docker commit rev rev172-11
イメージが追加されました。続いてこのイメージをセーブコマンドで保存します。このコマンドは1つまたは複数のイメージをtarアーカイブに保存してくれます。
docker save [OPTIONS] IMAGE [IMAGE…]
docker save -o bk1.tar 98da9e8fcff8
chmod 666 bk1.tar
再び移行先でファイルを取り寄せます。
rsync -e 'ssh -i /tmp/ssh-key-2022-01-06.key' -av [email protected]:/tmp/bk1.tar /tmp
ロードコマンドを入力します。このコマンドはtarアーカイブか標準入力からイメージを取り込みます。
docker load -i /tmp/bk1.tar
62ed8ed20fdb: Loading layer 77.86MB/77.86MB
87628248381f: Loading layer 60.98MB/60.98MB
c5ddee085135: Loading layer 3.072kB/3.072kB
556c4cc42993: Loading layer 4.096kB/4.096kB
df0854c47989: Loading layer 3.584kB/3.584kB
c775eb259077: Loading layer 7.168kB/7.168kB
337b71a0dca9: Loading layer 98.02MB/98.02MB
7321373c4490: Loading layer 147.5kB/147.5kB
Loaded image ID: sha256:98da9e8fcff8b41a5659332b559a42f495a8e5bee32817265cb029b77c3c8927
イメージにしたのでこれを元にコンテナを立ち上げることができるか確認します。まずは自分でネットワークを作成します。
docker network create --subnet=172.25.25.0/24 net1722525
エクスポートからインポートしたイメージで確認します。
docker run \
--name rev \
--net net1722525 \
-p 80:80 \
-p 443:443 \
--ip 172.25.25.11 \
-d [IMAGE ID]
エラーが発生しました。移行元ではDockerfileを使用していないのですがダメでした。
docker: Error response from daemon: No command specified.
See ‘docker run ?help’.
次はセーブしてロードしたイメージで確認します。エラーが発生しました。移行元と移行先ではインスタンスがARMとAMDの違いでエラーが発生したようです。
WARNING: The requested image’s platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested
6f101cdc855e330fbd648388c2610790f2a164ca861da275e83882f6b9e17be1
立ち絵お借り先
〇九州そら
浅井麻さん
https://twitter.com/asaiasa0
〇ずんだもん
のんたお*さん
https://seiga.nicovideo.jp/user/illust/121937664
〇春日部つむぎ
銅亜鉛さん
https://twitter.com/zincopper_
https://minokamo.tokyo/
https://betelgeuse.work/
twitter superdoccimo
mail [email protected]
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Dockerのイメージやコンテナをバックアップして別の環境に移行する», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.