ベースイメージとは
一連のファイル、およびEXPOSE'dポート、ENTRYPOINTおよびCMD。
ファイルを追加し、そのベースイメージに基づいて新しいイメージを構築できます。ディレクティブでDockerfile始まる新しいイメージを使用できます。以下で説明するイメージは、新しいイメージの「ベースイメージ」です。FROMFROM
ディレクティブで宣言neo4j/neo4jしたFROM場合、イメージが実行されると、neoデータベースが自動的に実行され、ポート7474のコンテナー内で使用できるという意味ですか?
CMDとを上書きしない場合のみENTRYPOINT。
ただし、画像自体で十分です。特定のの使用にFROM neo4j/neo4j関連するファイルを追加する必要がある場合は、aを使用neo4jしますneo4j。
FROM 単一のDockerfile内で複数回出現できます
しない:とにかくその「機能」を削除する提案があります(問題13026)
問題14412は次のように述べています:
複数を使用することFROMは実際には機能ではなくバグです(まあ、制限は厳しくFROM、Dockerfile での複数の使用例はほとんどありません)。
2017年5月(18か月後)、docker(moby)17.05-ceで更新します。
1つのDockerfileで複数のFROM を使用できます。
「Dockerでのビルダーパターンとマルチステージビルド」(Alex Ellisによる)およびTõnisTiigiによるPR 31257を参照してください。
前:
ビルダーパターンでは、2つのDockerイメージを使用します。1つはビルドを実行し、もう1つは最初のビルドの結果を、最初のイメージのビルドチェーンとツールのペナルティなしで出荷します。
後:
一般的な構文ではFROM、Dockerfile内に時間を追加しますFROM。最後のステートメントが最終的なベースイメージになります。中間画像からアーティファクトと出力をコピーするには、を使用しますCOPY --from=<base_image_number>。
Dockerfileの最初の部分:
FROM golang:1.7.3 as builder
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
同じ(!)Dockerfileの2番目の部分:
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]
結果は、2枚の画像、建物のための1つだけ有するもの得られたアプリであろう(はるかに、はるかに小さいです)
REPOSITORY TAG IMAGE ID CREATED SIZE
multi latest bcbbf69a9b59 6 minutes ago 10.3MB
golang 1.7.3 ef15416724f6 4 months ago 672MB
FROMれるようになりましたDockerfile。以下の私の編集した回答を参照してください。