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 ページ コード
問題点: docker run に -v パラメータを追加すると、コンテナは常に再起動状態になります...
Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテナ エンジンです...
序文:最も一般的に使用される MySQL 論理バックアップ ツールは mysqldump です。通常...
Dockerfile を使用すると、ユーザーはカスタム イメージを作成できます。基本構造Docker...
準備: 192.168.16.128 192.168.16.129 2 台の仮想マシン。 Nginx...
1. 分離マーカーを追加します。 ip netns add fd 2. 指定されたネットワーク カ...
目次MySQL 共通関数1. 数値関数文字列関数3. 時間機能4. システム機能5. 集計関数MyS...
Dockerでnginxをデプロイするのはとても簡単ですたった 1 行のコマンド: docker 実...
MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...
Linux touch コマンドの詳細な説明: 1. コマンド機能:ファイルまたはディレクトリの作成...
1994 年に設立された組織である W3C は、共通プロトコルの開発を促進し、それらの相互運用性を確...
序文始める前に、ファイル属性とファイル属性を変更する方法について簡単に理解しておく必要があります。 ...
弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...
Centos7はyumを使用してMySQLをインストールし、リモート接続を実現する方法です。MySQ...
オペレーティング システム win10 MySQL は、公式 Web サイトからダウンロードした 6...