Câu trả lời:
Bạn có thể sử dụng nó mà không cần làm gì đặc biệt. Nếu bạn có một hình ảnh địa phương được gọi là blah
bạn có thể làm FROM blah
. Nếu bạn thực hiện FROM blah
trong Dockerfile của mình, nhưng không có hình ảnh cục bộ được gọi blah
, thì Docker sẽ cố gắng lấy nó từ sổ đăng ký.
Nói cách khác, nếu Dockerfile có FROM ubuntu
, nhưng bạn có một hình ảnh cục bộ được gọi là ubuntu
khác với hình ảnh chính thức, hình ảnh của bạn sẽ ghi đè nó.
docker image list
.
Đã xác minh: nó hoạt động tốt trong Docker 1.7.0.
BTW, không chỉ định --pull=true
khi chạy docker build
lệnh:
nếu bạn muốn sử dụng hình ảnh cục bộ làm hình ảnh cơ sở, vui lòng không có tùy chọn
--pull=true
,--pull=true
sẽ luôn cố gắng lấy phiên bản mới hơn của hình ảnh.
-
ký tự ( my-image
ví dụ) trong tên thì docker của bạn sẽ không giải quyết cục bộ hình ảnh này, tôi không biết tại sao, dù sao để khắc phục nó chỉ đơn giản là không sử dụng -
ký tự, đã thử nghiệm trên
Docker version 17.06.2-ce, build cec0b72
, nhưng hãy đảm bảo rằng nếu bạn gắn thẻ hình ảnh của mình, bạn sẽ bao gồm thẻ này như một phần của đặc tả hình ảnh (FROM localimage: tag).
Bạn có thể có - các ký tự trong hình ảnh của mình. Giả sử bạn có một hình ảnh cục bộ (không phải sổ đăng ký cục bộ) có tên centos-base-image với thẻ 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
Kết quả
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
...
Trong ví dụ trên FROM
là tìm nạp hình ảnh cục bộ của bạn, bạn có thể cung cấp hướng dẫn bổ sung để tìm nạp hình ảnh từ sổ đăng ký tùy chỉnh của mình (ví dụ FROM localhost:5000/my-image:with.tag
:). Xem https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-dierence-registry và https://docs.docker.com/registry/#tldr
Cuối cùng, nếu hình ảnh của bạn không được giải quyết khi cung cấp tên, hãy thử thêm thẻ vào hình ảnh khi bạn tạo nó
Chuỗi GitHub này mô tả vấn đề tương tự là không tìm thấy hình ảnh cục bộ theo tên .
Bằng cách bỏ qua một thẻ cụ thể, docker sẽ tìm kiếm một hình ảnh được gắn thẻ "mới nhất", vì vậy hãy tạo một hình ảnh có thẻ: mới nhất hoặc thay đổi FROM của bạn
Hãy nhớ đặt không chỉ thẻ mà còn cả kho lưu trữ thẻ đó, theo cách này:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
elixir 1.7-centos7_3 e15e6bf57262 20 hours ago 925MB
Bạn nên tham khảo nó theo cách này:
elixir:1.7-centos7_3