สร้างภาพนักเทียบท่าแท็กหลายรายการ


148

หลายแท็กสามารถแนบกับภาพนักเทียบท่าได้อย่างไร มันเป็นไปได้ที่จะสร้างแท็กหลายคนโดยใช้หนึ่ง Dockerfile ?

เป็นไปได้อย่างใด ; ตัวอย่างเช่นdocker pull ubuntuจะได้รับหลายภาพซึ่งบางส่วนมีหลายแท็ก:

ubuntu                  13.10               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  saucy               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  raring              eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  13.04               eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  12.10               5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  quantal             5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  10.04               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  lucid               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  12.04               9cd978db300e        2 weeks ago         204.7 MB
ubuntu                  latest              9cd978db300e        2 weeks ago         204.7 MB
ubuntu                  precise             9cd978db300e        2 weeks ago         204.7 MB

1
คำถามที่เกี่ยวข้อง: stackoverflow.com/questions/22080706/…
ทำเครื่องหมาย Butler

คำตอบ:


79

คุณไม่สามารถสร้างแท็กด้วย Dockerfiles แต่คุณสามารถสร้างหลายแท็กบนรูปภาพของคุณผ่านบรรทัดคำสั่ง

ใช้สิ่งนี้เพื่อแสดงรหัสรูปภาพของคุณ:

$ docker images

จากนั้นแท็กออกไป:

$ docker tag 9f676bd305a4 ubuntu:13.10
$ docker tag 9f676bd305a4 ubuntu:saucy
$ docker tag eb601b8965b8 ubuntu:raring
...

4
จุดสำคัญอยู่ใน Dockerfile คำสั่งเหล่านี้ไม่สามารถเขียนลงใน Dockerfile
Daniel YC Lin

1
ดูคำตอบนี้เพื่อหลีกเลี่ยงการคิด ID ด้วยตนเอง
Jonathon Reinhart

439

ตั้งแต่ 1.10 รีลีสคุณสามารถเพิ่มหลายแท็กได้พร้อมกันในบิลด์:

docker build -t name1:tag1 -t name1:tag2 -t name2 .

แหล่งที่มา: เพิ่มความสามารถในการเพิ่มหลายแท็กด้วยตัวสร้างนักเทียบท่า


5
ฉันคิดว่านี่เป็นคำตอบที่ถูกต้องมากขึ้นสำหรับการใช้งานง่ายในกระบวนการสร้าง
brasskazoo

สิ่งนี้ไม่เหมาะสมเนื่องจากแท็กของ ubuntu สำหรับรุ่นอื่นเนื้อหาแตกต่างกัน
Daniel YC Lin

2
ฉันจะทำให้แท็กเหล่านี้ปรากฏในที่เก็บหลังจากกดได้อย่างไร น่าเสียดายมีเพียงอันเดียวที่ฉันใช้ในคำสั่ง push ปรากฏใน repo
Czechnology

4
แม้ในตอนท้ายของ 2018 เทียบท่าจะยังคงอ่อนอย่างไม่น่าเชื่อในแง่นี้แต่ละ 'แท็ก' ต้องยังคงถูกผลักแยกแม้จะถูกแนบมากับภาพเดียวกัน สิ่งที่จำเป็นต้องมีในที่นี้คือความสามารถคล้ายกับแท็ก Git
Ed Randall

-8

วิธีที่จะไม่ทำ:

เมื่อสร้างภาพคุณสามารถติดแท็กด้วยวิธีนี้ได้

docker build -t ubuntu:14.04 .

จากนั้นคุณสร้างมันอีกครั้งด้วยแท็กอื่น:

docker build -t ubuntu:latest .

หาก Dockerfile ของคุณใช้ประโยชน์จากแคชได้ดีภาพเดียวกันก็จะออกมาและมันก็เหมือนกับการติดรูปภาพที่เหมือนกัน หากคุณทำเช่นdocker imagesนั้นคุณจะเห็นว่าพวกเขามีรหัสเดียวกัน

อาจมีกรณีที่สิ่งนี้ผิดพลาด แต่ ... เหมือน @ david-braun กล่าวว่าคุณไม่สามารถสร้างแท็กด้วย Dockerfiles ด้วยตัวเองเพียงแค่ใช้คำสั่ง docker


3
ฉันอาจเพิ่มว่าการทำเช่น @ david-braun นั้นสะอาดกว่า
มันสำปะหลัง

14
อย่าสร้างสองครั้ง ดูคำตอบนี้
Jonathon Reinhart

การสร้างครั้งที่สองเอาชนะแนวคิดของ CI / CD ... การรวบรวมครั้งที่สองอาจแตกต่างกันไปขึ้นอยู่กับการพึ่งพา ... มันอยู่ในช่วงเวลา
Richard

4
ด้วยคำว่า 'วิธีที่จะไม่ทำ' อย่างชัดเจนตอนนี้จะเพิ่มบางสิ่งเพื่อความเข้าใจในการทำงานของมัน
Ed Randall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.