GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Dockerfiles

Dockerfileは、Dockerイメージを構築するためのレシピです。

これがワークフローです。最初にDockefileを作成し、次にdocker buildを使用してDockerイメージをビルドしました。 、最後に画像からコンテナを実行します。

Dockerfileは、イメージの作成方法を説明したテキストファイルです。

これらの手順は、FROMなどのキーワードを含む構成言語の一部です。 、LABELRUNCOPYENTRYPOINTCMDEXPOSEENV など。

最初のDockerfileを作成しましょう:

app.jsで構成される単純なNode.jsアプリを含むフォルダーがあるとします。 、package.json アプリを実行する前にインストールする必要のあるいくつかの依存関係をリストしたファイル、およびpackage-lock.json

その中に、Dockerfileという名前のプレーンテキストファイルを作成します 、拡張子なし、このコンテンツ:

FROM node:14
WORKDIR /usr/src/app
COPY package*.json app.js ./
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"]

注:二重引用符を使用してください CMDで ライン。一重引用符はエラーになります。

最初の行で、どの画像から始めたいかを示します。これがベースイメージになります。この場合、ノード14を使用してAlpine Linuxに基づく公式のNode.jsイメージを取得します。Dockerfileからコンテナーを作成する場合、DockerはDockerHubからそのイメージを取得します。

次に、作業ディレクトリを/usr/src/appに設定します 、つまり、再度変更するまで、すべてのコマンドがそのフォルダーで実行されます。これは、ノードイメージにすでに存在することがわかっているフォルダです。

package.jsonをコピーします 、package-lock.json*を使用 ワイルドカード)およびapp.js 現在のフォルダの作業ディレクトリにあるファイル。

npm installを実行します package.jsonにリストされているパッケージをインストールするには ファイル。

次に、ポート3000を外部に公開します。これは、アプリが実行されているためです。 EXPOSEを使用してそのポートの1つを公開しない限り、コンテナはネットワークから100%分離されます。 指図。コンピューターのポートをDockerコンテナーのポートにマップする方法については後で説明します。

最後に、node app.jsを実行します アプリを起動します。

これはDockerfileであり、実際にコンテナを作成する方法がすぐにわかります。


Docker
  1. Terraform – Python Lambdaをデプロイする(コンテナーイメージ)

  2. イメージバックアップの作成(クローン作成)

  3. FOG画像の更新方法

  1. Gsで画像を回転させる方法は?

  2. webp による画像の最適化

  3. 画像最適化のための jpegoptim

  1. Dockerイメージからファイルを抽出しますか?

  2. Dockerfileを使用してDockerイメージを構築する方法

  3. Dockerイメージに基づいてデプロイされたコンテナーを更新する