私はラップトップがインターネットに接続されているオフィスで働いていますが、厳しく管理されています。無許可のソフトウェアをインストールすることはできません。
私の開発ワークステーションは私が好きなように処理するためのものですが、インターネット接続がありません。
ハブからDockerイメージをファイルとしてダウンロードし、開発ワークステーションにスニーカーネットで接続する方法はありますか? RPMをダウンロードしたり、Ruby GemsをCDに書き込んだりする方法と同じですか?または、「docker pull」コマンドを使用してイメージをダウンロードする唯一の方法ですか?
ショート: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
、詳細についてはコメントを参照してください。)
私はすでに受け入れられた回答があることを理解していますが、「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
これが他の誰かを助けることを願っています!