回答:
特別なことをせずにご利用いただけます。と呼ばれるローカルイメージがある場合は、blah
行うことができますFROM blah
。そうした場合FROM blah
、あなたのDockerfileではなく、していないというローカルイメージを持ってblah
、その後、ドッカーは、レジストリからそれを引くしようとします。
言い換えると、DockerfileにはFROM ubuntu
が含まれているがubuntu
、公式イメージとは異なるローカルイメージが呼び出された場合、そのイメージがオーバーライドされます。
docker image list
いるローカルに同じ名前のイメージがあるにもかかわらず、Dockerはリモートレジストリからイメージをプルしようとしています。
検証済み:Docker 1.7.0で正常に動作します。
ところで、コマンドを--pull=true
実行するときに指定しないでくださいdocker build
:
あなたは基本ローカル画像を使用したい場合は、オプションを指定しないでください
--pull=true
、--pull=true
常にイメージの新しいバージョンを引くしようとします。
-
文字が含まれている場合、my-image
Dockerはこの画像をローカルで解決しません。理由はわかりません。とにかく、単に-
文字を使用せずに修正し、
Docker version 17.06.2-ce, build cec0b72
が、画像にタグを付けた場合は、画像の仕様の一部としてタグを含めるようにしてください(FROM localimage:tag)。
画像に-文字を含めることができます。タグ7.3.1611を持つcentos-base-imageという名前のローカルイメージ(ローカルレジストリではない)があるとします。
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スレッドは、ローカルイメージを名前で見つけられないという同様の問題について説明しています。
特定のタグを省略すると、Dockerは「最新」のタグが付いた画像を検索するため、:latestタグで画像を作成するか、FROMを変更します
タグだけでなく、そのタグが置かれているリポジトリも次のように配置することを忘れないでください。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
elixir 1.7-centos7_3 e15e6bf57262 20 hours ago 925MB
このように参照する必要があります。
elixir:1.7-centos7_3