私はドッカーを使い始めました。 Dockerファイルを使用して画像を作成します。既存の画像から新しい画像を作成するにはどうすればよいですか?
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」コマンドを実行する必要があることを示しています。
既存のイメージから新しいイメージを作成するには、次のように「FROM」を指定するだけです。
FROM sergiu/ubuntu
MAINTAINER sergiu
コンテナがあるとしましょうbd91ca3ca3c8
実行中です。コンテナに変更を加えた後、新しいイメージを作成します。別の画像を生成すると、変更を保存できます。
その場合、次のコマンドを実行できます。
docker commit -p -a "author_here" -m "your_message" bd91ca3ca3c8 name_of_new_image
-p
は、commitコマンドが新しいイメージを構築している間、コンテナを一時停止します。
-a
を使用すると、新しい画像の作成者情報を提供できます。
-m
を使用すると、Gitと同じようにコメントを追加できます。
Docker commit :コンテナの変更から新しいイメージを作成します。
コンテナのファイルの変更や設定を新しいイメージにコミットすると便利です。これにより、インタラクティブシェルを実行してコンテナをデバッグしたり、作業中のデータセットを別のサーバーにエクスポートしたりできます。一般的に、Dockerfileを使用して、文書化された保守可能な方法でイメージを管理することをお勧めします。
私もdockerの新人ですが、私が見つけたものは役立つかもしれません。
1)「FROM」を書き込んでdockerファイルを実行するときは常に、dockerが彼のリポジトリを調べて、最初にそのイメージをロードします。したがって、「FROM」で使用するローカルイメージがある場合は、それをロードする必要があります。
2)「FROM」で指定するパラメーターは重要です。たとえば、repo_nameまたはタグを間違って指定すると、エラーメッセージが表示されます。このため、「docker images」コマンドを実行して、イメージの正しいrepo_nameとタグを確認します。
3)これで、このように新しいdockerファイルを開始できます
FROM REPOSITORY:TAG
そしてそれはうまくいく
以下のコマンドに従って、既存のイメージのイメージを作成できます。
docker tag jboss/wildfly myimage:v1
画像v1
のタグjboss/wildfly:latest
を使用してmyimage
という画像を作成します