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'?
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.
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