Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

graboidでDockerイメージをダウンロード

      2019/02/05

Dockerを実行しているサーバがインターネットに接続されていないオフライン環境だと、docker pull ができず困ってしまう場合があります。そのような時、インターネットに繋がっている他の端末でイメージをダウンロードして、それをtarファイルにしてscpやらUSBメモリやら経由でコピーすればいいのですが、DockerイメージダウンロードするためだけにDockerをインストールするのが大袈裟なことがあります。

そのような場合、graboid コマンドを使うと簡単にイメージをDockerなしで手動ダウンロードすることができます。graboid は、GO言語で書かれたコマンドラインツールで、Linuxだけでなく、MacやWindowsにも対応しています。インストール方法は簡単で、GitHub のリリースページにバイナリが公開されているため、これをダウンロードし展開するだけです。

ここではWindowsを例に、試してみたいと思います。

ブラウザから、https://github.com/blacktop/graboid/releases/download/0.14.0/graboid_0.14.0_win_amd64.zip をダウンロードし、ダウンロードしたzipを展開すると、graboid.exe というファイルがでてきます。あとは、コマンドプロンプトを起動し、graboid.exe にDockerHubのイメージを引数で渡すだけです。ここでは、c:\tmp にgraboid.exe があると仮定し、busybox のDockerイメージをダウンロードしてみます。
※ プロキシ使用時は、HTTPS_PROXY 環境変数を定義しておけば良いみたい。

C:\>cd c:\tmp
c:\tmp>graboid.exe busybox:latest
 • Initialize Registry domain=https://index.docker.io image=library/busybox tag=latest
 • getting auth token
 • GET CONFIG
 • GET LAYERS
716.06 KiB / 716.06 KiB [====================================================] 100.00% 0s
 • CREATE manifest.json
 • CREATE docker image tarball: library_busybox.tar
 • SUCCESS!

Windowsのコマンドプロンプトだと、若干表示がおかしいですが、無事ダウンロードできようなので、ファイルを確認します。

c:\tmp>dir
ドライブ C のボリューム ラベルは Windows です


c:\tmp のディレクトリ

2018/09/18 11:02 <DIR> .
2018/09/18 11:02 <DIR> ..
1979/12/31 00:00 5,664,256 graboid.exe
2018/09/18 11:02 734,502 library_busybox.tar
2 個のファイル 6,398,758 バイト
2 個のディレクトリ 38,434,910,208 バイトの空き領域

上記の通り、library_busybox.tar ファイルが生成されました。あとは、これをDockerの動いているサーバにコピーし、インポートすれば作業完了です。

# docker load  < library_busybox.tar

ちなみに、LinuxやCygwinのプロンプトだと、ダウンロード時の表示はこのように綺麗に表示されました。

$ ./graboid.exe busybox:latest
• Initialize Registry domain=https://index.docker.io image=library/busybox tag=latest
• getting auth token
• GET CONFIG
• GET LAYERS
716.06 KiB / 716.06 KiB [====================================================] 100.00% 0s
• CREATE manifest.json
• CREATE docker image tarball: library_busybox.tar
• SUCCESS!

 - IT技術

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
インストールしているThunderbird 2の拡張機能と不足機能

Thunderbirdに以下のアドオンをインストールしてみました。 Auto A …

no image
dnsmasqでDNSサーバを立ててWindowsから参照させる

Linuxサーバ上にdnsmasqで DNSサーバ立てて、自宅内のサーバの名前解 …

no image
コマンドラインのロック@CentOS 5

コンソールログインやssh接続などでコマンドラインを使用しているとき、少し席を外 …

no image
WordPress高負荷対策→同一ApacheのIPのアクセス数制限@CentOS 5

一日に数回サーバ高負荷で応答がなくなってしまって困っていました。load ave …

no image
tailの結果を2回grepすると表示されない@Linux

こんな感じで、grep するとマッチするはずのaaaaがなぜか何も表示されません …

no image
ハードディスクなどのブロックデバイスを丸ごとscpでリモートにコピーする

ファイルを安全にリモートにコピーしたいとき、scp コマンド使うことはよくあるこ …

no image
アプリケーションの追加と削除@RHEL5

RHEL5からはパッケージ管理のフロントエンドがyumになってしまったため、リポ …

no image
coreファイルの扱いについて

coreを吐かせるにはulimitで制限されていない必要がある # ulimit …

no image
パイプでつないだコマンドの戻り値を調べる@bash

シェルスクリプトで、実行したコマンドの戻り値を知る方法は有名ですよね。 以下のよ …

no image
Firefox でファイルをダウンロードしようとすると、ダウンロードダイアログが開かない@Windows7 x64 + Firefox 3.5

Firefox でファイルをダウンロードしようとすると、なぜか保存ダイアログが開 …