Pertanyaan Perintah pembuatan Docker dengan --tag tidak dapat menandai gambar


Saya telah mencoba untuk membangun gambar Docker menggunakan Dockerfile yang tersedia secara lokal.

docker build -t newimage .

Saya telah menggunakan perintah ini beberapa kali sebelumnya juga, tetapi entah bagaimana tidak bekerja saat ini dan saya terjebak menemukan alasan untuk itu.

Saya akan sangat membantu jika seseorang dapat membantu saya dengan solusi yang mungkin atau area yang mungkin untuk mencari masalah.

saya sudah melihat-lihat posting lain yang mungkin terkait misalnya: Docker membangun nama repositori tag


5
2017-08-05 11:08


asal


Jawaban:


Baik! Saya menemukan alasan untuk masalah.

PROSES BANGUNAN DOCKER

Ketika kita membangun citra buruh pelabuhan, sambil membuat gambar, beberapa gambar perantara lainnya dihasilkan dalam prosesnya. Kami tidak pernah melihatnya docker images karena dengan generasi gambar perantara berikutnya gambar sebelumnya dihapus. Dan pada akhirnya kita hanya memiliki satu yang merupakan gambar akhir.

Tag yang kami berikan menggunakan -t atau --tag adalah untuk membangun akhir, dan jelas tidak ada penampung antara yang ditandai dengan yang sama.

PENJELASAN ISSUE

Ketika kami mencoba untuk membangun citra buruh pelabuhan dengan Dockerfile terkadang prosesnya tidak berhasil diselesaikan dengan pesan serupa seperti Successfully built image with IMAGEID 

Jadi sangat jelas bahwa build yang gagal tidak akan terdaftar docker images

Sekarang, gambar dengan tag <none> adalah beberapa gambar lain (menengah). Hal ini menciptakan kebingungan bahwa gambar ada tetapi tanpa tag, tetapi gambar sebenarnya bukan apa yang seharusnya menjadi bagian akhir, jadi tidak diberi tag.


9
2017-08-06 06:10



Tidak ada yang salah dengan Docker.

Gambar dapat memiliki banyak tag:

alpine    3.4      4e38e38c8ce0        6 weeks ago         4.799 MB
alpine    latest   4e38e38c8ce0        6 weeks ago         4.799 MB

Dalam contoh ini gambar dengan id 4e38e38c8ce0 diberi tag alpine:latest dan alpine:3.4. Jika Anda mengeksekusi docker build -t alpine . itu latest tag akan dihapus dari gambar 4e38e38c8ce0 dan ditugaskan ke gambar yang baru dibangun (yang memiliki id berbeda).

Jika Anda menghapus yang terakhir tag dari suatu gambar, gambar tidak dihapus secara otomatis. Itu muncul sebagai <none>.

Docker juga menggunakan cache. Jadi jika Anda membangun sebuah gambar dengan Dockerfile, ubah file itu, bangun gambar itu lagi dan dari pada membatalkan perubahan dan bangun lagi Anda akan memiliki dua gambar - gambar yang Anda buat di langkah pertama dan terakhir adalah sama. Gambar kedua akan "diberi tag" <none>.

Jika Anda ingin menyimpan beberapa versi dari suatu penggunaan gambar docker build -ttag:versionimage:tag . dimana versiontag berubah setiap kali Anda melakukan beberapa perubahan.

Edit: Apa yang saya sebut tag sebenarnya adalah nama gambar dan versi yang saya sebut disebut tag: https://docs.docker.com/engine/reference/commandline/tag/


0
2017-08-05 11:22