natural born minority
あんまり…「成功例」でもないので…うまいことできる方、教えてください!
sudo apt-get install docker-engine
でおこなっている/usr/bin/docker
に setuid で+sして一般ユーザで叩けるようにしたくらい/var/lib/docker
まずは「Dockerの標準装備で」なんとかしようとして…
#!/bin/bash
mkdir -p docker_all_export/{containers,images}
# image export
for i in $(docker images -q) ; do
docker save $i > ./docker_all_export/images/$i.tar
done
docker images -a > ./docker_all_export/images/summary.txt
# container export
for i in $(docker ps -aq) ; do
docker export $i > ./docker_all_export/containers/$i.tar
done
docker ps -a > ./docker_all_export/containers/summary.txt
# archive
tar czf ./docker_all_export.tgz ./docker_all_export/
rm -rf ./docker_all_export/
みたいなスクリプトを作り「吐き出しまではやった」のですが、これを「取り込み」しようとした場合…
なので
Dockerイメージ
にしかならない
となれば「なんか思てたんとちゃう!」となったのです。
前やった経験 を元に「もういっそのことファイル構造ごとコピーしたらいけんじゃね?」のノリで大雑把な仕事をしました。
まずは「Dockerのデータディレクトリ」をごっそりtarで固めます。
# まず止める
sudo systemctl stop docker.service
# 一式固める
cd /var/lib
sudo tar czf /tmp/docker.tgz ./docker
そして、Dockerインストール済みの移行マシンでそのファイルを取ります。(移行元にSSHだけは通してあります)
# こっちでも、まず止める
sudo systemctl stop docker.service
# ファイル取得
scp user@otherhost:/tmp/docker.tgz /tmp/
# 展開
cd /var/lib/
sudo mv ./docker/ ./docker_org/
sudo mv /tmp/docker.tgz ./
sudo tar xzf ./docker.tgz
# 再起動
sudo systemctl start docker.service
# 認識しているか確認
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
... なんかコンテナが出てたらOK ...
この後、docker restart コンテナ名
で、他マシンで動かしてたコンテナを動かしてみましたが、今のところ「遜色なく使えて」います。
今のところ問題は起きていませんが、おそらく「Dockerの入れ方、Versionが一緒」だからなんとかなったのであって、わりかし「危ない橋(Version違いならいろいろ不具合出るたかも?)」ではないかと思います。
それもあって「おそらく、世の中には”正規の手段かつ楽ちん”がある」と思うので、そういうものがあれば教えて欲しく思います。
以下を参考にさせていただきました。感謝。
blog comments powered by Disqus