ฉันกำลังทำงานกับ Dockerfile ฉันเพิ่งรู้ว่าฉันใช้FROM
กับภาพที่จัดทำดัชนีมาตลอด
ดังนั้นฉันจึงสงสัยว่า:
- ฉันจะใช้รูปภาพในเครื่อง (กำหนดเอง) ของฉันเป็นรูปฐาน (
FROM
) โดยไม่มีpushing
ดัชนีได้อย่างไร
ฉันกำลังทำงานกับ Dockerfile ฉันเพิ่งรู้ว่าฉันใช้FROM
กับภาพที่จัดทำดัชนีมาตลอด
ดังนั้นฉันจึงสงสัยว่า:
FROM
) โดยไม่มีpushing
ดัชนีได้อย่างไรคำตอบ:
คุณสามารถใช้งานได้โดยไม่ต้องทำอะไรเป็นพิเศษ หากคุณมีภาพท้องถิ่นที่เรียกว่าคุณสามารถทำได้blah
FROM blah
ถ้าคุณทำFROM blah
ใน Dockerfile ของคุณ แต่ไม่ได้มีภาพท้องถิ่นที่เรียกว่าblah
, แล้วหางจะพยายามที่จะดึงมันออกจากรีจิสทรี
กล่าวอีกนัยหนึ่งคือหาก Dockerfile ทำFROM ubuntu
แต่คุณมีภาพในเครื่องที่เรียกว่าubuntu
แตกต่างจากภาพที่เป็นทางการภาพของคุณจะถูกแทนที่
docker image list
.
ตรวจสอบแล้ว: ทำงานได้ดีใน Docker 1.7.0
BTW ไม่ต้องระบุ--pull=true
เมื่อเรียกใช้docker build
คำสั่ง:
ถ้าคุณต้องการใช้ภาพในท้องถิ่นเป็นภาพฐานโปรดโดยไม่ต้องตัวเลือก
--pull=true
,--pull=true
มักจะพยายามที่จะดึงรุ่นใหม่ของภาพ
-
อักขระ ( my-image
เช่น) ในชื่อนักเทียบท่าของคุณจะไม่แก้ไขภาพนี้ในเครื่องฉันไม่รู้ว่าทำไมต้องแก้ไขเพียงแค่ไม่ใช้-
อักขระทดสอบกับนักเทียบท่า 1.8 และนักเทียบท่า 1.11
Docker version 17.06.2-ce, build cec0b72
แต่ตรวจสอบให้แน่ใจว่าคุณติดแท็กรูปภาพของคุณหรือไม่คุณรวมแท็กเป็นส่วนหนึ่งของข้อกำหนดรูปภาพ (จาก localimage: tag)
คุณสามารถมี - ตัวอักษรในภาพของคุณ สมมติว่าคุณมีอิมเมจในเครื่อง (ไม่ใช่โลคัลรีจิสตรี) ชื่อ centos-base-image พร้อมแท็ก 7.3.1611
docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-common-1.12.6-16.el7.centos.x86_64
Go version: go1.7.4
Server:
Version: 1.12.6
API version: 1.24
Package version: docker-common-1.12.6-16.el7.centos.x86_64
Go version: go1.7.4
docker images
REPOSITORY TAG
centos-base-image 7.3.1611
Dockerfile
FROM centos-base-image:7.3.1611
RUN yum -y install epel-release libaio bc flex
ผลลัพธ์
Sending build context to Docker daemon 315.9 MB
Step 1 : FROM centos-base-image:7.3.1611
---> c4d84e86782e
Step 2 : RUN yum -y install epel-release libaio bc flex
---> Running in 36d8abd0dad9
...
ในตัวอย่างด้านบนFROM
กำลังดึงภาพในเครื่องของคุณคุณสามารถให้คำแนะนำเพิ่มเติมในการดึงภาพจากรีจิสทรีที่กำหนดเองของคุณ (เช่นFROM localhost:5000/my-image:with.tag
) ดูhttps://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registryและhttps://docs.docker.com/registry/#tldr
สุดท้ายหากรูปภาพของคุณไม่ได้รับการแก้ไขเมื่อตั้งชื่อให้ลองเพิ่มแท็กให้กับรูปภาพเมื่อคุณสร้าง
นี้ด้าย GitHub อธิบายปัญหาของการไม่ได้หาภาพในท้องถิ่นโดยใช้ชื่อที่คล้ายกัน
นักเทียบท่าจะมองหารูปภาพที่ติดแท็ก "ล่าสุด" โดยการละเว้นแท็กดังนั้นให้สร้างรูปภาพด้วยแท็กล่าสุดหรือเปลี่ยนจาก FROM
อย่าลืมใส่ไม่เพียง แต่แท็กเท่านั้น แต่ยังรวมถึงที่เก็บที่แท็กนั้นอยู่ด้วยวิธีนี้:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
elixir 1.7-centos7_3 e15e6bf57262 20 hours ago 925MB
คุณควรอ้างอิงด้วยวิธีนี้:
elixir:1.7-centos7_3