アプリケーションの構築、依存関係とサービスのインストール、自動展開など、すべてがDockerFileから始まります。 Dockerfileの構文を、基本から複雑さまで、Docker画像を構築するときにいくつかのベストプラクティスを確認しましょう。
このガイドは、Dockerをガイドして、配信するアプリケーションの最小化Linux(ベースイメージ)を選択するDockerFileを書き込み、選択したツールセットと特定の構成が付属して独自のLinux Distributionを構築します。 アプリケーションの実行に適しています。
- Dockerは、必要なバイナリ、ランタイムライブラリ、バックエンドツール、オペレーティングシステムの微調整、サービスをすべて梱包することにより、「どこにいても、任意のアプリケーションを構築、配信、実行できますすぐに配信され、自動的に展開されます。
- dockerfileは、Dockerに画像を構築するための手順を含むプレーンテキストファイルです。これは、アプリケーションの構築、依存関係とサービスのインストール、自動展開の出発点です。 DockerFileの構文は、Apache構成ファイルの構文と似ており、次々と処理されます。
- DockerFileは、アプリケーションのベース画像(最小化されたLinux)を選択するように指示し、選択したツールと特定の構成を備え、アプリケーションの実行に適したカスタムLinux分布を作成します。
- dockerfileを使用すると、特定のツールとライブラリを選択してインストールし、環境変数を設定し、ファイルとディレクトリを追加し、キャッシュの問題を処理して、コンテナに必要なものがすべて揃っていることを確認できます。
- Docker Buildコマンドは、DockerFileの指示に基づいて画像を作成するために使用されますが、Docker Runコマンドは、作成された画像を使用してインタラクティブ端子を起動するために使用されます。
- なぜdocker
dockerを使用すると、「どこにいても、あらゆるアプリケーションを構築、配信、実行する」ことができます。つまり、アプリケーションを実行するために必要なすべてのバイナリおよびランタイムライブラリ、バックエンドツール、オペレーティングシステムのチューニング、さらには特定のサービスをパッケージ化し、自動的に配信および展開できるようにすることができます。
docker実装ソフトウェアコンテナテクノロジーがこれを可能にします。ここでは詳細については説明しませんが、Docker、ソフトウェアコンテナとは何か、Docker、コンテナ、より安全なソフトウェア配信の理解にどのように機能するかについて詳しく読むことができます。
dockerのインストール
開始する前に、ローカルマシンであろうとリモートサーバー上にあるかどうかにかかわらず、Dockerをインストールする必要があります。
幸いなことに、Dockerの最新バージョン(この執筆時点でのバージョン1.12)により、インストールプロセスが非常にスムーズになり、Windows、MacOS、Linux用のシンプルで理解しやすいガイドを入手できます。
dockerfile
dockerで画像を構築するには、最初にこのビルドの指令とコンテキストをDockerfileというプレーンテキストファイルに設定する必要があります(詳細については後で詳しく説明します)。このファイルには、Apache構成ファイルと同様の構文があります。1行あたりの1つの命令と対応するパラメーターには、すべての命令が順番に処理されます。コメントは#文字とスペースから始まります。最後に、DockerFileを手に入れると、コマンドDockerビルドが画像を構築します。これについては、後で詳しく説明します。
dockerfileの書き込みを開始する前に、ワークスペースをセットアップします。ホームディレクトリにmy_imageというディレクトリを作成し、ワーキングディレクトリとして使用し、Dockerfileをその中に配置します。
mkdir ~/my_build cd ~/my_build touch Dockerfile今、画像の構築を開始する準備ができました。
基本的なミラーを選択
を選択します
画像を作成する場合、ほとんどの場合、1つの出発点(i.e)が使用されます。これは、公式のubuntu、mysql、wordpress、またはDocker Hubで利用可能なその他の画像である可能性があります。以前に作成した画像を使用することもできます。
Note
from dockerfileを書くときに使用する最初の命令でなければなりません。画像名の最後にappending:およびversion_nameを使用して、ベース画像の特定のバージョンを使用することもできます。たとえば、
# 设置基础镜像 FROM debian
上記のコードでは、「sid」debian(不安定な分布)を使用しています。これは、RubyまたはPythonインタープリター、MySQLバージョンなどの特定のバージョンが必要な場合にも重要です。これらのツールの公式基本画像を使用する場合には重要です。現在、このガイドでは、デフォルトの(安定した)Debian画像に固執します。
# 设置基础镜像 FROM debian:sidメンテナーを指定し、メタデータを追加します
メンテナーが誰であるかを指定することを選択できます。ルセロデルアルバを、あなたの名前、または建設の責任者またはチームに置き換えます:
これは必須ではありませんが、ラベルディレクティブを使用してメタデータを追加することもできます。これは、Docker Inspectコマンドを使用して画像をチェックするときに後で使用できます。
この機能の詳細については、Dockerオブジェクトタグを参照してください。# 作者 MAINTAINER Lucero del Alba
独自の分布を作成します
# 额外的元数据 LABEL version="1.0" LABEL description="First image with Dockerfile."
この時点で、鏡に含めるツールとライブラリを選択して、コンテナに期待されるアクションを実行するために必要なものがすべて揃っています。このチュートリアルの最後に、実際にLinuxディストリビューションの構築に非常に近いジョブを行います。
いくつかのコンテナ(postgreSQLデータベースを実行しているコンテナなど)は、バックグラウンドで実行するように設計されています。ただし、コンテナで特定の操作を実行するコンソールが必要な場合が多いため、基礎となる画像には最小GNUツールのみがバンドルするため、いくつかの追加のツールが必要になる場合があります。
トラブルシューティングキャッシュの問題
画像に追加のパッケージをインストールしようとすると、ほぼ確実にキャッシュの問題が発生します。これは、基礎となる画像がメタデータをキャッシュし、データを抽出するリアルタイムリポジトリが頻繁に変更されているためです。
Debianベースの配布では、これを処理する新しいパッケージをインストールする前に、次のコマンドを追加できます。
mkdir ~/my_build cd ~/my_build touch Dockerfile基本的なツールのインストール
コードエディター、ロケール、GIT、TMUXなどのツール - 今こそ、必要なものをすべてインストールして、画像にバンドルされる時です。
1行ごとに1つをインストールします:
このすべてを1行にインストールできますが、後でパッケージを追加または削除する場合は、プロセス全体を再実行する必要があります。したがって、ここでのベストプラクティスは、Dockerのキャッシュの恩恵を受けることができるように、1行ごとに1つのパッケージをインストールすることです。
# 设置基础镜像 FROM debianさらに、シンプルにしてください。ビルド時間と画像サイズが増加する可能性があるため、ツールを「ケースに備えて」インストールしたくありません。
アプリケーションのランタイムライブラリをインストールします
また、この画像にアプリケーションを配信します。特定のバージョンのPHP、Ruby、またはPython、およびいくつかのモジュールが必要ですか?今こそ、アプリケーションを配信するために必要なすべてのプログラムとランタイムを提供する時です。
このコンテナはアプリケーションのみを実行するように設計されているため、好きなように指定できます。この例では、Python 3と一緒にPython 3(PostgreSQLデータベースに接続するため)、Python Moustache Module、およびYamlモジュールとともにインストールします。 (独自のdockerfileを作成すると、必要な特定の依存関係を自然にインストールします。)
コンパイルアンドダウンロードパッケージ
分布は、必要な特定のモジュールまたはプログラムのパッケージがない場合があります。ただし、実行中のコンテナに手動でインストールする必要はありません!代わりに、Runディレクティブ(1行ごと)を使用して、アプリケーションに必要なライブラリをダウンロード、コンパイル、セットアップすることができます。 このファイルを別のファイルにスクリプト化し、このファイルをビルドに追加して実行することもできます。
# 设置基础镜像 FROM debian:sidクリーニング
鏡をきれいにし、できるだけ小さくするには、インストールシーケンスの最後にクリーンアップするのが最善です
:
また、Debianを選択したためApt-Getを使用していることに注意してください。ただし、ベース画像の配布には対応するコマンドを使用してください。
独自のアプリケーションを配信してください
この環境を構築する目的全体は、アプリケーションをスムーズに配信し、実行する準備をすることを可能にすることです。ファイル、ディレクトリ、さらにはリモートURLの内容を画像に追加するために、Addディレクティブを使用します。
ただし、ファイルを追加する前に、適切なコンテキストに配置する必要があります。操作を簡素化するために、DockerFile自体とともに、前述のmy_buildディレクトリにすべてを配置します。
アプリと画像に入れたいものすべてを使用していると仮定すると、〜/my_build(app.pyとlib.pyがサブディレクトリアプリ/)に次のファイルがあります:
mkdir ~/my_build cd ~/my_build touch Dockerfile
コンテナ内の / rootディレクトリに.bashrcおよび.profileスクリプトを追加して、コンテナのシェルを起動し、コンテナ内の / app / directoryのコンテンツをコピーします。
次のコマンドを追加します:
# 设置基础镜像 FROM debian
環境を設定します
最後に、システムレベルとアプリケーションレベルの両方で必要な環境変数を設定します。
多くの人はデフォルトのDebian文字セットを使用してそれを行うために使用しますが、国際的な視聴者をターゲットにしているので、UTF-8端末を持っている方法を見てみましょう。以前にロケールパッケージをインストールしたため、キャラクターセットを生成して適切なLinux環境をセットアップするだけです。
# 设置基础镜像 FROM debian:sidアプリケーションがパスワードとパスを交換するために、いくつかの環境変数を設定する必要がある場合があります。 dockerfileは、これを正確に行うためのenvの指示を提供します:
# 作者 MAINTAINER Lucero del Albaコンテナを起動するときにコマンドラインから環境変数を渡すこともできることに注意してください。これは、いくつかの機密情報(パスワードなど)を共有するのに便利な場合があります。
フルdockerfile
もちろん、DockerFileを必要に応じて調整する必要がありますが、うまくいけばその可能性を理解することを願っています。
これは完全なファイルです:
# 额外的元数据 LABEL version="1.0" LABEL description="First image with Dockerfile."ミラーを構築します
my_buildディレクトリ内から、Dockerビルドコマンドを使用して、-tフラグを渡して、この場合はmy_imageで新しい画像を「タグ」します。 。
これにより、各「ステップ」がdockerfileの指令である長い出力が生成されます。ここに切り捨てられた出力があります:
# 更新源列表 RUN apt-get clean RUN apt-get update
ミラーをリスト
# 每行安装一个基本应用程序,以获得更好的缓存 RUN apt-get install -qy git RUN apt-get install -qy locales RUN apt-get install -qy nano RUN apt-get install -qy tmux RUN apt-get install -qy wget
Docker Imagesコマンドを使用して画像をリストできます。
これにより、新しく作成されたmy_imageやダウンロードしたその他の基本画像が出力されます。
# 安装应用程序运行时和模块 RUN apt-get install -qy python3 RUN apt-get install -qy python3-psycopg2 RUN apt-get install -qy python3-pystache RUN apt-get install -qy python3-yaml…それだけです、私たちの鏡は配達されて走る準備ができています!
コンテナを起動します
# 清理 RUN apt-get -qy autoremove
最後に、新しく作成されたインタラクティブ端末を開始するために、Docker Runコマンドを使用します。
次のステップ
dockerfileのすべての可能性を紹介しませんでした。特に、ポートを実行する方法を確認し、ホストからデータを保存して回復するためのボリュームを指定する方法を確認するために、コンテナ間のコンテナをリンクすることもできませんでした。その他の便利な機能。
<code>.bashrc .profile app/app.py app/lib.py Dockerfile</code>将来の記事でこれらを紹介します。現在、次のリソースをチェックアウトすることができます。
DockerのWebサイトから:
dockerfileリファレンス
DockerFileを作成するためのベストプラクティス
SitePointから:
- から
- Docker、コンテナ、およびより安全なソフトウェア配信の理解
- dockerサブチャネル
- すべてのDocker関連の記事
dockerfileを使用してDocker画像を構築することの重要性は何ですか?
dockerfileは、ユーザーがコマンドラインで呼び出して画像を組み立てることができるすべてのコマンドを含むテキストドキュメントです。 DockerFileを使用すると、Dockerに画像を構築するプロセスが簡素化されます。これにより、プロセスを自動化することができ、より効率的でエラーの傾向が少なくなります。 DockerFileは、画像を作成する方法に関する明確なバージョン化ドキュメントも提供しているため、他の開発者が作業を理解し、使用または変更することが容易になります。
dockerfileを使用してビルドプロセスを最適化する方法は?
dockerfileは、ビルドプロセスを最適化するさまざまな方法を提供します。最も効果的な方法の1つは、マルチステージビルドを使用することです。これにより、dockerfileのステートメントの複数を使用できます。それぞれが指導から異なる基盤を使用することができ、各命令は建設の新しい段階を開始します。オプションでアーティファクトをあるステージから別の段階にコピーして、最終画像に表示したくないすべてを残すことができます。
dockerfilesを書くためのベストプラクティスは何ですか?
dockerfilesを書くためのいくつかのベストプラクティスがあります。まず、ミラーサイズを小さく保つために、不要なパッケージを取り付けないようにしないでください。次に、マルチステージビルドを使用して、ビルドプロセスを最適化します。第三に、各dockerfileは単一のアプリケーションを表す必要があります。複数のアプリケーションがある場合は、複数のDockerFilesを使用する必要があります。最後に、.dockerignoreファイルを使用して、画像に含めるべきではないファイルとディレクトリを除外する必要があります。
dockerfileをデバッグする方法は?
dockerfileは、画像を構築し、シェルコマンドで実行することでデバッグできます。ビルドが失敗した場合、Dockerは問題を特定するのに役立つエラーメッセージを返します。 runコマンドを使用して、Dockerfileをデバッグするのに役立つコマンドを実行することもできます。
dockerfileで環境変数を使用できますか?
はい、dockerfileで環境変数を使用できます。 ENV指令は、環境変数をこの値に設定します。この値は、ビルドフェーズのすべての後続の指示の環境にあり、多くの指示でインラインで置き換えることもできます。
ホストからDocker画像にファイルをコピーする方法は?
コピー指令を使用して、ホストからDocker画像に新しいファイルをコピーできます。ホストのソースからDocker画像の宛先にファイルをコピーします。
ドッカー画像にポートを公開する方法は?
Exposeディレクティブを使用して、Dockerコンテナに通知して、実行時に指定されたネットワークポートをリッスンできます。ただし、これは実際にポートを公開していません。ポートを公開するには、Docker Runコマンドで-Pフラグを使用する必要があります。
Docker画像で作業ディレクトリを設定する方法は?
WorkDirディレクティブを使用して、後続の実行、CMD、EntryPoint、コピー、およびDockerFileのディレクティブの追加の作業ディレクトリを設定できます。
docker画像でコマンドを実行する方法は?
実行指令を使用して、Docker画像でコマンドを実行できます。これにより、現在の画像の上の新しいレイヤー上の任意のコマンドが実行され、結果が送信されます。
Docker画像のデフォルトコマンドを指定する方法は?
CMDディレクティブを使用して、実行するコンテナにデフォルト値を提供できます。これらには、実行可能ファイルまたは実行可能ファイルを省略できます。その場合、エントリポイントディレクティブを指定する必要があります。
この改訂された出力は、元の画像のフォーマットを維持し、記事の意味の大幅な変更を回避しながら、独創性を忘れないでください
以上がDockerfileで画像を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

AIの分野での中国の女性の技術力の台頭:Deepseekの女性の技術分野への貢献とのコラボレーションの背後にある物語は、ますます重要になっています。中国の科学技術省からのデータは、女性科学技術労働者の数が巨大であり、AIアルゴリズムの開発においてユニークな社会的価値感度を示していることを示しています。この記事では、携帯電話の名誉に焦点を当て、その背後にある女性チームの強さを探り、Deepseek Bigモデルに最初に接続し、技術の進歩を促進し、技術開発の価値座標系を再構築する方法を示します。 2024年2月8日、Honorは、Deepseek-R1 FullbloodバージョンのBig Modelを正式に立ち上げ、Android Campで最初のメーカーになり、Deepseekに接続し、ユーザーから熱狂的な反応を喚起しました。この成功の背後にある女性チームメンバーは、製品の決定、技術的なブレークスルー、ユーザーを行っています

DeepseekはZhihuに関する技術記事をリリースし、Deepseek-V3/R1推論システムを詳細に導入し、初めて主要な財務データを開示し、業界の注目を集めました。この記事は、システムの毎日のコストの利益率が545%に高いことを示しており、グローバルなAIビッグモデルの利益の新たな高値を設定しています。 Deepseekの低コスト戦略は、市場競争において有利になります。モデルトレーニングのコストは同様の製品の1%から5%であり、V3モデルトレーニングのコストはわずか5576百万米ドルであり、競合他社のコストよりもはるかに低くなっています。一方、R1のAPI価格設定は、Openaio3-Miniの1/7〜1/2です。これらのデータは、DeepSeekテクノロジールートの商業的実現可能性を証明し、AIモデルの効率的な収益性も確立します。

Mideaは、Deepseek Big Model -Midea Fresh and Clean Air Machine T6を装備した最初のエアコンをリリースします。このエアコンには、環境に応じて温度、湿度、風速などのパラメーターをインテリジェントに調整できる、高度な空気インテリジェントな駆動システムが装備されています。さらに重要なことは、DeepSeek Big Modelを統合し、400,000を超えるAI Voiceコマンドをサポートすることです。 Mideaの動きは、業界での激しい議論を引き起こし、特に白物と大規模なモデルを組み合わせることの重要性を懸念しています。従来のエアコンの単純な温度設定とは異なり、Midea Fresh and Clean Air Machine T6は、より複雑で曖昧な指示を理解し、家庭環境に従って湿度をインテリジェントに調整し、ユーザーエクスペリエンスを大幅に改善します。

ウェブサイトの構築は最初のステップに過ぎません:SEOとバックリンクの重要性 ウェブサイトを構築することは、それを貴重なマーケティング資産に変換するための最初のステップにすぎません。検索エンジンでのWebサイトの可視性を向上させ、潜在的な顧客を引き付けるために、SEO最適化を行う必要があります。バックリンクは、ウェブサイトのランキングを改善するための鍵であり、Googleや他の検索エンジンにWebサイトの権限と信頼性を示しています。 すべてのバックリンクが有益であるわけではありません:有害なリンクを特定して回避する すべてのバックリンクが有益であるわけではありません。有害なリンクはあなたのランキングに害を及ぼす可能性があります。優れた無料のバックリンクチェックツールは、ウェブサイトへのリンクのソースを監視し、有害なリンクを思い出させます。さらに、競合他社のリンク戦略を分析し、それらから学ぶこともできます。 無料のバックリンクチェックツール:SEOインテリジェンスオフィサー

DeepSeek-R1はBaidu LibraryとNetDiskを支援します。深い思考と行動の完璧な統合は、わずか1か月で多くのプラットフォームに迅速に統合されました。大胆な戦略的レイアウトにより、BaiduはDeepSeekをサードパーティモデルのパートナーとして統合し、それをそのエコシステムに統合します。これは、「ビッグモデル検索」の生態学的戦略の大きな進歩を示しています。 Baidu SearchとWenxin Intelligent Intelligent Platformは、DeepSeekおよびWenxin Bigモデルの深い検索関数に最初に接続し、ユーザーに無料のAI検索エクスペリエンスを提供します。同時に、「Baiduに行くときにあなたが知っている」という古典的なスローガンとBaiduアプリの新しいバージョンは、WenxinのBig ModelとDeepseekの機能も統合し、「AI検索」と「ワイドネットワーク情報の改良」を起動します。

コード生成のAIプロンプトエンジニアリング:開発者ガイド コード開発の風景は、大きな変化を遂げています。 大規模な言語モデル(LLMS)と迅速なエンジニアリングのマスタリングは、今後数年間で開発者にとって非常に重要です。 th

このGOベースのネットワーク脆弱性スキャナーは、潜在的なセキュリティの弱点を効率的に識別します。 Goの同時機能機能を速度で活用し、サービスの検出と脆弱性のマッチングが含まれます。その能力と倫理を探りましょう


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









