web-dev-qa-db-ja.com

既存のイメージに基づいて新しいDockerイメージを作成するにはどうすればよいですか?

私はドッカーを使い始めました。 Dockerファイルを使用して画像を作成します。既存の画像から新しい画像を作成するにはどうすればよいですか?

16
Aaron Shen

Dockerコマンド$ docker build -f docker_filename。を使用して新しいイメージを作成できます。最初に、指示が書き込まれたDockerfileを読み取り、イメージを自動的にビルドします。 Dockerfileの命令には、イメージを組み立てるために必要なコマンドが含まれています。イメージがビルドされると、イメージIDが割り当てられます。イメージは、Dockerレジストリハブにプッシュできます。このため、ユーザーはdockerレジストリハブにアカウントを作成する必要があります。

Dockerfileの例は次のようになります。

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

ここで、最初の指示は、新しいイメージがdocker/whalesay:latestイメージを使用することを示しています。 2番目の命令は2つのコマンドを実行します。そして、3番目の命令は、環境が設定されたときに「fortune -a」コマンドを実行する必要があることを示しています。

12
Arif A.

既存のイメージから新しいイメージを作成するには、次のように「FROM」を指定するだけです。

FROM sergiu/ubuntu
MAINTAINER sergiu
5
Sergiu

コンテナがあるとしましょうbd91ca3ca3c8実行中です。コンテナに変更を加えた後、新しいイメージを作成します。別の画像を生成すると、変更を保存できます。

その場合、次のコマンドを実行できます。

docker commit -p -a "author_here" -m "your_message" bd91ca3ca3c8 name_of_new_image

-pは、commitコマンドが新しいイメージを構築している間、コンテナを一時停止します。

-aを使用すると、新しい画像の作成者情報を提供できます。

-mを使用すると、Gitと同じようにコメントを追加できます。

4
nPcomp

Docker commit :コンテナの変更から新しいイメージを作成します。

コンテナのファイルの変更や設定を新しいイメージにコミットすると便利です。これにより、インタラクティブシェルを実行してコンテナをデバッグしたり、作業中のデータセットを別のサーバーにエクスポートしたりできます。一般的に、Dockerfileを使用して、文書化された保守可能な方法でイメージを管理することをお勧めします。

2
m.semnani

私もdockerの新人ですが、私が見つけたものは役立つかもしれません。

1)「FROM」を書き込んでdockerファイルを実行するときは常に、dockerが彼のリポジトリを調べて、最初にそのイメージをロードします。したがって、「FROM」で使用するローカルイメージがある場合は、それをロードする必要があります。

2)「FROM」で指定するパラメーターは重要です。たとえば、repo_nameまたはタグを間違って指定すると、エラーメッセージが表示されます。このため、「docker images」コマンドを実行して、イメージの正しいrepo_nameとタグを確認します。

3)これで、このように新しいdockerファイルを開始できます

FROM REPOSITORY:TAG

そしてそれはうまくいく

0
Mayank Jain

以下のコマンドに従って、既存のイメージのイメージを作成できます。

docker tag jboss/wildfly myimage:v1

画像v1のタグjboss/wildfly:latestを使用してmyimageという画像を作成します

0
chiducaf