Mengunduh gambar docker untuk ditransfer ke mesin yang tidak terhubung ke Internet

Saya bekerja di kantor di mana laptop saya terhubung ke internet, tetapi dikontrol dengan ketat. Saya tidak diizinkan untuk menginstal perangkat lunak yang tidak sah ke atasnya.

Workstation pengembangan saya adalah milik saya untuk dilakukan sesuka saya, tetapi tidak memiliki koneksi internet.

Apakah ada cara bagi saya untuk mengunduh gambar Docker dari hub sebagai file yang kemudian dapat saya sneaker-net ke workstation dev saya? Mirip dengan bagaimana saya dapat mengunduh rpm atau permata Ruby dan membakarnya ke CD? Atau satu-satunya cara mengunduh gambar menggunakan perintah 'docker pull'?

Pendek: gunakan save Perintah CLI.

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


Anda dapat menarik gambar pada komputer yang memiliki akses ke internet.

sudo docker pull ubuntu

Kemudian Anda dapat menyimpan gambar ini ke file

sudo docker save -o ubuntu_image.docker ubuntu

Transfer file di komputer offline (USB/CD/apa pun) dan Muat gambar dari file:

sudo docker load -i ubuntu_image.docker

(Pada versi lama ini hanya docker load image.docker, Lihat Komentar Untuk info lebih lanjut.)

Saya menyadari sudah ada jawaban yang diterima, namun saya ingin menawarkan solusi ini yang menurut saya lebih langsung menjawab pertanyaan yang diajukan: "bagaimana cara mengunduh gambar Docker tanpa menggunakan Docker untuk melakukan pengambilan?"

Saya memiliki masalah serupa, di mana kebijakan perusahaan saya mengharuskan saya untuk memberi tim file(biasanya melalui URL) yang ingin saya gunakan. Mereka kemudian akan melakukan berbagai pemindaian dan audit, dan kemudian menempatkan file ke jaringan pengembangan kami yang terputus. Saya tidak dapat menggunakan Docker untuk mengambil file, lalu mengekspornya dan menyerahkannya ke tim itu, jadi jawaban lain yang diberikan bukanlah pilihan bagi saya.

Untungnya, saya menemukan ini jawab StackOverflow, yang merekomendasikan penggunaan alat berguna yang disediakan oleh samalba di GitHub: https://github.com/samalba/docker-registry-debug

Tentu saja, alat itu dimaksudkan untuk dibangun menggunakan Docker, dan sebagian alasan saya membutuhkannya adalah karena saya tidak memiliki akses terbuka ke Docker :). Jadi, karena saya tidak memiliki opsi itu, saya akan menguraikan langkah-langkah yang saya ambil di sini (ini semua pada komit 05fffc4344fd6f866f84c403caae3ba81193dd45 dari repo itu):

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

Output dari perintah itu adalah baris perintah curl lengkap yang dapat digunakan untuk mengunduh file:

# 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=readcurl -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

Semoga ini bisa membantu orang lain!