อัปเดต 2019
เริ่มต้นจากการเทียบท่า v18.06 มีตัวเลือกที่จะใช้ภาพใหม่ที่เรียกว่าสร้างชุดรูปร่าง
มาพร้อมกับ Docker โดยไม่จำเป็นต้องติดตั้งอะไรเลย เข้ากันได้กับDockerfileไวยากรณ์แบบย้อนหลังโดยไม่จำเป็นต้องเปลี่ยนไฟล์Dockerfile.
Legacy Docker Build เทียบกับ Docker BuildKit ใหม่
นี่คือตัวอย่างของการสร้างอิมเมจด้วยไฟล์ขนาดใหญ่ที่ไม่ได้ใช้ในไดเร็กทอรี build:
Legacy Docker Build:
$ time docker image build --no-cache .
Sending build context to Docker daemon 4.315GB
[...]
Successfully built c9ec5d33e12e
real 0m51.035s
user 0m7.189s
sys 0m10.712s
ใหม่ Docker BuildKit:
$ time DOCKER_BUILDKIT=1 docker image build --no-cache .
[+] Building 0.1s (5/5) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
[...]
=> => writing image sha256:ba5bca3a525ac97573b2e1d3cb936ad50cf8129eedfa9 0.0s
real 0m0.166s
user 0m0.034s
sys 0m0.026s
การเปลี่ยนแปลงเพียงอย่างเดียวคือDOCKER_BUILDKIT=1ตัวแปรสภาพแวดล้อมความแตกต่างของเวลามีมาก
.dockerignore ไฟล์
โปรดทราบว่า.dockerignoreไฟล์ยังคงถูกต้องและมีประโยชน์ บางDockerfileคำสั่งเช่นCOPY . .จะยังคงคำนึงถึง.dockerignoreกฎ แต่ไฟล์ด้านข้างในไดเร็กทอรี build (ไม่ได้อ้างอิงในDockerfile) จะไม่ถูกคัดลอกอีกต่อไปในฐานะ "build context" โดย BuildKit