2013-12-09 6 views
45

私はドッカーファイルに取り組んでいます。 私は、FROMをインデックス付きの画像とともに使用していることに気付きました。ドッカーファイルでローカルイメージをベースイメージとして使用するにはどうすればよいですか?

だから私は疑問に思う:

  • どのように私はそれがインデックスにpushingせずに私のベース(FROM)イメージとして私の地元(カスタム)イメージの1つを使用することができますか?

答えて

55

特別な操作をせずに使用できます。 blahというローカルイメージがある場合は、FROM blahを実行できます。 DockerfileでFROM blahを実行しても、にというローカルイメージがない場合は、となり、というDockerがレジストリから取得しようとします。

つまり、DockerfileはFROM ubuntuですが、公式のものとは異なるubuntuというローカルイメージがある場合、イメージはそれを上書きします。

+0

おかげで@jpetazzo! – Phil

+2

が動作しません - boot2dockerに問題がありますか?私は最新のバージョン1.3.1を持っています...ドッカーは、ローカルから最初にチェックしていない(またはそれを報告しないかもしれません)、レジストリから引き抜こうとすることに直接行くhttp://stackoverflow.com/q/27046118/202168 – Anentropic

+0

@ Anentropic私はboot2docker 1.5を使用しています。 のbash-4.3 $のドッキングウィンドウの画像 リポジトリタグ画像のIDは ubuntu1504gcc484最新0378ea1c0b6c 19時間前1.36ギガバイト VIRTUAL SIZEを作成し、私の他のDockerfileに「ubuntu1504gcc484から」やって、これはうまく動作します。 (フォーマット不良のお詫び) – Pejvan

10

検証済み:ドッカー1.7.0でうまく動作します。私はコメント(@defreitas)を追加するための評判を持っていない

if you want use the local image as the base image, please without the option --pull=true, --pull=true will always attempt to pull a newer version of the image.

https://github.com/docker/docker/issues/14943

+3

あなたのイメージが名前に '-'文字(例えば' my-image')を持っていれば、あなたのドッカーはこのイメージをローカルで解決しません。なぜなら、 docker-compose 1.8とdocker 1.11でテストされました – deFreitas

+0

'Docker version 17.06.2-ce、build cec0b72'にハイフネーションされた名前で問題はありませんでしたが、画像にタグを付けたかどうか確認してください。 (FROM localimage:タグ)。 – Scott

3

そう答えとして、それを追加:docker buildコマンドを実行しているときに

ところで、--pull=trueを指定しません。画像に文字を入れることができます。タグ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://github.com/moby/moby/issues/8975 
を説明し、あなたが

https://docs.docker.com/engine/reference/commandline/commit/ 

にそれを作成する際に、画像にタグを追加してみてくださいhttps://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registryhttps://docs.docker.com/registry/#tldr

最後に、参照してください。

特定のタグを省略すると、dockerは「latest」とタグ付けされた画像を検索するため、:latestタグで画像を作成するか、FROM

私はもっ​​として2つのリンクを投稿するのに十分な担当者を持っていないので、

は...コードブロックとして上記のリンクを追加しました;)

関連する問題