web-dev-qa-db-ja.com

インターネットに接続されていないマシンに転送するためのDockerイメージのダウンロード

私はラップトップがインターネットに接続されているオフィスで働いていますが、厳しく管理されています。無許可のソフトウェアをインストールすることはできません。

私の開発ワークステーションは私が好きなように処理するためのものですが、インターネット接続がありません。

ハブからDockerイメージをファイルとしてダウンロードし、開発ワークステーションにスニーカーネットで接続する方法はありますか? RPMをダウンロードしたり、Ruby GemsをCDに書き込んだりする方法と同じですか?または、「docker pull」コマンドを使用してイメージをダウンロードする唯一の方法ですか?

58
shearn89

ショート:save CLIコマンドを使用します。

https://docs.docker.com/engine/reference/commandline/save/


インターネットにアクセスできるコンピューターで画像をプルできます。

Sudo docker pull ubuntu

次に、この画像をファイルに保存できます

Sudo docker save -o ubuntu_image.docker ubuntu

オフラインコンピューター(USB/CD /その他)にファイルを転送し、ファイルからイメージをロードします。

Sudo docker load -i ubuntu_image.docker

(古いバージョンでは、これはdocker load image.docker、詳細についてはコメントを参照してください。)

95
Booba Skaya

私はすでに受け入れられた回答があることを理解していますが、「Dockerを使用せずにDockerイメージをダウンロードして取得するにはどうすればよいですか?」

同様の問題があり、会社のポリシーにより、使用するファイル(通常はURLを使用)をチームに提供する必要があります。次に、さまざまなスキャンと監査を実行し、切断された開発ネットワークにファイルを配置します。 Dockerを使用してファイルを取得し、それをエクスポートしてそのチームに渡すことはできないため、他の回答は選択肢にありませんでした。

幸いにも、私は this をStackOverflowで見つけました。これは、GitHubでsamalbaによって提供されている便利なツールを使用することを推奨しています: https://github.com/samalba/docker-registry-debug =

もちろん、そのツールはDockerを使用して構築することを意図しており、Dockerへのオープンアクセス権がないために、私がそれを必要とする理由の一部は:)です。そのため、そのオプションがなかったため、ここで実行した手順を詳しく説明します(これは、そのリポジトリからのcommit 05fffc4344fd6f866f84c403caae3ba81193dd45の時点ですべてです)。

$ go get github.com/dustin/go-humanize
$ go build
$ ./docker-registry-debug --help
$ ./docker-registry-debug curlme docker ubuntu

このコマンドの出力は、ファイルのダウンロードに使用できる完全なcurlコマンドラインです。

# Reading user/passwd from env var "USER_CREDS"
# No password provided, disabling auth
# Getting token from https://index.docker.io
# Got registry endpoint from the server: https://registry-1.docker.io
# Got token: signature=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read
curl -i --location-trusted -I -X GET -H "Authorization: Token signature=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read" https://registry-1.docker.io/v1/images/ubuntu/layer

これが他の誰かを助けることを願っています!

29
Dan