commitコマンドの使い方を解説します。ver18.09.0に対応してます。このコマンドは、コンテナに対して行った設定や更新したファイルを、新しいDockerイメージとして格納することが出来ます。現状のコンテナの状態をDockerイメージとして保存することが可能です。公式なCentOSのDockerイメージを独自にカスタマイズして、個人用のCentOSイメージを作成することも可能です。それでは以下で詳細に解説いたします。以下の実例は、CentOSの公式イメージにより起動したコンテナ(testvm)を使用します。init」で起動します。コンテナの現状をDockerイメージとして保存する以下の起動中のコンテナがあります。testvmこれから、このコンテナ内にファイルを作成し、その後、このコンテナのDockerイメージを作成したいと思います。コンテナのルートディレクトリ上に、ファイル「test-vm.txt」を作成します。commitコマンドにて、「testvm-new:v1.1」というイメージ名のDockerイメージとして保存します。imagesコマンドにて、Dockerイメージが作成されているか確認します。MB次に、このDockerイメージでコンテナを起動して、先ほど作成したファイルが含まれているか確認します。/test-vm.txt先ほどコンテナtestvm内に作成したファイルが存在することが確認できました。よって、Dockerイメージ「testvm-new:v1.1」は、先ほどファイルを作成したコンテナtestvmを基に作られたDockerイメージであることが分かります。commitコマンドでDockerイメージとして出力されるのは、コンテナ内のファイルのみです。データボリューム(コンテナ起動時に-vオプションで指定した領域やDockerfileにてVOLUME指定した領域など)は出力されませんので、ご注意下さい。■Dockerイメージに制作者名とコミットメッセージを設定する先ほど使用したコンテナtestvmを「testvm-new:v2.1」というイメージ名のDockerイメージとして保存しますが、その際、制作者名とコミットメッセージを設定します。inspectコマンドにて、Dockerイメージの詳細情報を確認してみます。testvm-new:v2.1対象イメージの詳細情報が大量に出力されますが、目的の部分のみ抜粋して掲載します。commitコマンド実行時にオプションとして設定した制作者(Author)とコミットメッセージ(Comment)を確認できました。(Commentは最初の方、Authorは中間くらいに出力されていると思います)このAuthorとCommentは、作成したDockerイメージを公開する際に付与しておくことで、第三者がイメージの内容を識別しやすくなります。■Dockerfileで指定されたオプションを追加/変更してイメージを作成する通常、Dockerイメージには様々な設定情報が格納されてます。コンテナ起動時に実行するコマンド(CMD、ENTRYPOINT)、コンテナ外に公開するポート(EXPOSE)、コンテナ内に設定する環境変数(ENV)、など他にも多数あります。commitコマンドにて、「-c」オプションで、Dockerfileの命令と設定値を指定すると、指定された値を設定してDockerイメージを作成することが可能です。試しに、CentOS公式イメージ内に指定されているCMD設定内容の変更とEXPOSE設定の追加を行いたいと思います。以下のコマンドで、centosイメージを基にコンテナを起動します。psコマンドで、コンテナ情報を確認します。testvm2centosイメージは、作成時にCMD情報として「/bin/bash」が設定されてます。「/bin/bash」はデーモン仕様ではありませんので、コンテナは直ぐ終了してしまいます。commitコマンドの「-c」オプションでCMDとEXPOSEの設定を行い、Dockerイメージ「testvm-new:v3.1」を作成します。停止しているコンテナに対しても実行可能です。inspectコマンドにて確認します。testvm-new:v3.1対象イメージの詳細情報が大量に出力されますが、目的の部分のみ抜粋して掲載します。],(略)※「Cmd」の設定は2か所("ContainerConfig"セクション内と"Config"内)ありますが、「"Config"」内の「Cmd」の方を確認します。"ContainerConfig"セクション内の「Cmd」は、対象のDockerイメージの生成元のコンテナの情報になります。先ほどは存在しなかったExposedPortsの設定が追加され、CMDの設定がpingコマンドに変更されてます。試しに、作成したDockerイメージ「testvm-new:v3.1」でコンテナtestvm2を起動してみます。psコマンドでコンテナを確認します。testvm3COMMANDとして、指定したpingコマンドが表示されてます。EXPOSEオプションで指定したポートが表示されてます。commitコマンドで追加/変更した内容が反映されていることが確認できます。commitコマンドは、デフォルトでは、Dockerイメージの作成処理が開始する前に、コンテナを一時停止します。一時停止せず、コンテナが動いたままの状態でDockerイメージを作成する場合は「--pause=false」オプションを使用します。以下のコマンドは、コンテナtestvmを、一時停止無しでDockerイメージを作成してます。commitコマンドの紹介を終わります。ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(ver1.12対応版)(オリジナルな実例付き)」をご参照ください。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。テニス、作品鑑賞(映画、アニメ、ドラマ、絵画など)、讃岐うどん食べ歩き。コンピュータ業界に身を置く中年おやじです。世の中にはまだ自分が知らない情報があふれていて、知っているつもりでも全体の半分も知らないことがいっぱいあります。見つけた情報はGoogleKeepにメモる毎日です。ある日、自分が良いと思うことは、同じように感じる方も、数は少ないかもしれないけどいるはず、と思いまして、そのことが本サイト「めもたんす」を作るきっかけとなりました。自分がいいなと思ったことを記事にまとめたサイトです。technology.。