Dockerfile は、命令を含むテキスト ファイルです。各命令はレイヤーを構築するため、各命令の内容はレイヤーの構築方法を記述します。 Dockerfile は、行末に「\」を追加する Shell のようなコマンドライン終了方法と、行頭に「#」を追加するコメント形式をサポートしています。 Dockerfile を使用して Docker イメージを構築する場合は、次の点に注意してください。 (1)ニーズを満たしつつもサイズが小さい基本システムイメージを選択するようにしてください。 (2)コンパイルされたファイルやインストールパッケージのキャッシュなどの一時ファイルをクリーンアップする。 (3)各ソフトウェアをインストールする際には、正確なバージョン番号を指定し、不必要な依存関係を導入しないようにする。 (4).dockerignoreファイルを追加するか、クリーンな作業ディレクトリを使用します。 Dockerfile の一般的な手順:(1).FROM: ビルドするベースイメージを指定するために使用され、通常はDockerfileの最初の命令になります。 (2)ラベル:イメージの整理、ライセンス情報の記録、自動ビルドの支援などに役立つラベルを追加するために使用されます。ラベルは文字列として保存されるキーと値のペアです。 (3)RUN:イメージ内のコマンドを実行するために使用され、新しいイメージレイヤーを作成します。各RUN命令は新しいイメージレイヤーを作成し、常にapt-get updateとapt-get installを1つのRUNに組み合わせます。 RUN 命令には 2 つの形式があります。A. シェル形式: RUN <コマンド> (コマンド ラインに直接入力したコマンドと同じです)。 B.exec 形式: RUN ["実行ファイル", "パラメータ 1", "パラメータ 2"]; (4) COPY: ローカルファイルをコンテナに簡単にコピーすることをサポートします。COPY命令は通常、イメージにアプリケーションコードを割り当てるために使用されます。 (5)EXPOSE:アプリケーションが使用するネットワークポートを記録するために使用されます。 (6)ENTRYPOINT:コンテナモードでイメージを起動した後にデフォルトで実行されるプログラムを指定するために使用されます。 (7).ENV: コンテナにインストールされているプログラムのPATH環境変数を更新します。 次の Dockerfile は、コンテナ https://github.com/fengbingchun/Messy_Test 内で直接コンパイルおよび実行するために使用されます。 ubuntu:16.04より ラベル メンテナー="FengBingchun [email protected]" \ バージョン="1.0" \ 説明="dockerfile テスト" dep_items='git cmake g++-5' を実行します。 && apt-get アップデート \ && apt-get install -y $dep_items \ && ln -s /usr/bin/g++-5 /usr/bin/g++ \ && rm -rf /var/lib/apt/lists/* イメージをビルドします。次のコマンドを実行すると、fengbingchun/ubuntu:16.04 という名前のイメージが正常に生成されます。 Ubuntu 16.04 で docker build を実行します。 ホスト ディレクトリをマウントして、新しいコンテナ テストを作成し、次のコマンドを実行します。 docker run -it -P --name test --mount type=bind,source=e:\GitCode\docker,target=/home/fengbingchun fengbingchun/ubuntu:16.04 /bin/bash 次に、コンテナ内で /home/fengbingchun ディレクトリに移動し、Messy_Test をクローンして、次のコマンドを実行します。 git クローン https://github.com/fengbingchun/Messy_Test 次に、cd Messy_Test/prj/linux_cmake_CppBaseTestディレクトリに移動し、次のコマンドを順番に実行します。 ./build.sh ./build/CppBaseTest 実行結果は下図の通りで、Dockerfile でビルドしたイメージは Messy_Test を正常にコンパイルして実行できることがわかります。 イメージ fengbingchun/ubuntu:16.04 を tarball に保存し、次のコマンドを実行します。 docker save -o ubuntu_16.04.tar fengbingchun/ubuntu:16.04 ubuntu_16.04.tar を Ubuntu システムにコピーし、tarball からイメージをロードして、次のコマンドを実行します。 docker load -i ubuntu_16.04.tar 次に、Windows で同様の操作を実行し、新しく作成されたコンテナー test で Messy_Test をコンパイルして実行し、次のコマンドを順番に実行します。 docker run -it -P --name test --mount type=bind,source=/home/xxxx/Disk/GitHub/docker,target=/home/fengbingchun fengbingchun/ubuntu:16.04 /bin/bash cd /home/fengbingchun/ git クローン https://github.com/fengbingchun/Messy_Test cd Messy_Test/prj/linux_cmake_CppBaseTest/ ./build.sh ./build/CppBaseTest 実行結果は下図の通りです。Windows 上で生成したイメージをパッケージ化後、Ubuntu 上でロードすると正常に使用できることがわかります。 これで、Dockerfile を使用して Docker イメージを構築する手順に関するこの記事は終了です。Dockerfile を使用して Docker イメージを構築する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: JavaScript を使用してセカンダリ メニューを作成する
>>: NetEase ブログで使用されているシンプルな Web ページ コード
オンラインチュートリアルに従って実装しました。 zabbix3.4、スクリプトとsendEmailを...
MySQL テーブルでの接続方法は実は非常に簡単なので、ここではその特徴を簡単にリストします。テーブ...
プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...
前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...
mysql5.6 のグリーン バージョンを解凍すると、my-default.ini ファイルが作成さ...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
目次1. CentOS7+MySQL8.0、yumソースインストール2. MySQLにログインしてパ...
この記事では、MySQL でよく使用されるデータ クエリ言語について説明します。 DQL (データク...
以下は、Shiji Tiancheng が Tencent KartRider ページを呼び出すため...
まず、 (1)MySQL 5.7にはデフォルトのパスワードがあるデフォルトのパスワードを見つける g...
序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...
A. MySQLバックアップツールxtrabackupのインストール1. Percona 公式 xt...
結果:実装コード: <!DOCTYPE html><html class=&quo...
mysql-connector-java.jar パッケージのチュートリアルをダウンロードします: ...
1. リンクの使用方法:コードをコピーコードは次のとおりです。 <a href="j...