dockerコンテナを別のマシンに移動するには

dockerコンテナを別のマシンに移動したいときに行うことを記述する。

私はこちらのサイトを参考にした。

https://uxmilk.jp/55512

 

流れは以下の通りだ。(赤文字は人によって異なる)

①dockerコンテナからdocker imageを作成する

$ docker commit my_docker_container my_docker_image

 

②docker imageをtarファイルとして保存する

$ docker save my_docker_image > my_docker_image.tar

 

③tarファイルを別のマシンに転送する

scp my_docker_image.tar machine2@xxx.xxx..xxx.xxx:/home/username/dir1

この作業には時間がかかる場合があるのでバックグラウンドでやることも可能。

以下のページでscpをバックグラウンドで実行する方法を載せている。

バックグラウンドでscpの処理を行う - jskangarooのブログ

 

④別のマシンでtarファイルからdocker imageをロードする

$ docker load < my_docker_image.tar

 

⑤ロードしたdocker imageからコンテナを作成する

$ docker run --gpus all --name my_docker_container --mount type=bind,source=/home/username/dir1,target=/mnt -it my_docker_image /bin/bash

(,後にスペースがない事に注意)