Dockerfileの詳細

Dockerfile は、基本イメージと、新しいイメージを組み立てるときに使用されるさまざまな命令が含まれるテキスト ファイルです。dockerfile ファイルを使用してイメージを定義し、イメージを実行してコンテナーを起動します。

イメージのビルド手順

① dockerfile を書く
② docker build を使ってイメージをビルドする
③ docker run イメージを実行する
④ docker Push イメージをリモートに公開する

dockerfile のコンポーネント

dockerfile には次の部分が含まれています。

  • 基本イメージ情報: FROM キーワードを使用して、基本イメージ情報を指定します。FROM は、dockerfile ファイルの最初の命令です。
  • メンテナ情報: MAINTAINER キーワードを使用して指定します。メンテナ情報としては、通常、dockerfile 作成者の名前または電子メールを使用できます。
  • ミラー操作コマンド:ミラー操作コマンドを実行しない場合は、画像に新規レイヤーが追加されます。
  • コンテナ起動実行コマンド: ユーザーがコンテナ起動時に実行するコマンドを指定します。CMD ENTRYPOINT で指定します。

一般的なミラー操作手順:

-命令- -説明する-
から #基本イメージ、すべてはここから始まる
メンテナー ミラーを書いた人、名前 + メールアドレス
走る イメージのビルド時に実行する必要があるコマンド
追加 コンテンツの追加: たとえば、Tomcat 圧縮パッケージを追加します。
作業ディレクトリ ミラーの作業ディレクトリ
音量 ミラーがマウントされるディレクトリ
さらす ポートを公開したままにする
CMD このコンテナの起動時に実行するコマンドを指定します。最後のコマンドのみが有効になり、置き換えることができます。
エントリーポイント このコンテナの起動時に実行する必要があるコマンドを指定します。コマンドを追加できます。
オンビルド ONBUILD コマンドは、継承された DockerFile をビルドするときに実行されます。トリガーコマンド
コピー ADDと同様に、ファイルをミラーにコピーします
環境 ビルド時に環境変数を設定する

dockerfileでdocker buildコマンドを実行する

docker buildコマンド

docker build コマンドは、Dockerfile を使用してイメージを作成するために使用されます。

docker build [OPTIONS] PATH | URL | -

-c: CPU 使用率を制御する
-f: Dockerfile 名を指定する
-m: ビルド メモリの上限を設定する
-q: ビルド プロセスに関する情報を表示しない
-t: ビルドされたイメージにラベルを付ける

イメージをビルドし、hello という名前を付け、コンテキスト ディレクトリを現在のディレクトリとして指定します。

docker build -t "hello" .

イメージをビルドし、hello という名前を付け、コンテキスト ディレクトリを test として指定します。

docker build -t "hello" ./test/

イメージをビルドし、hello という名前を付け、new というラベルを付け、コンテキスト ディレクトリを現在のディレクトリとして指定し、ファイルをテスト ディレクトリ内の newfile として指定し、ビルド プロセスを表示しません。

docker build -q -f test/newfile -t "hello:new" .
-パラメータ- -説明する-
-build-arg=[] – イメージの作成時に変数を設定します。
–cpu-shares CPU 使用量の重みを設定します。
–CPU期間 CPU CFS サイクルを制限します。
–cpu-quota CPU CFS クォータを制限します。
–cpuset-cpus 使用する CPU ID を指定します。
–cpuset-mems 使用するメモリ ID を指定します。
–コンテンツの信頼を無効にする 検証を無視します。デフォルトで有効になっています。
-f 使用する Dockerfile パスを指定します。
–force-rm ミラーリングプロセス中に中間コンテナを削除します。
-分離 コンテナ分離テクノロジーを使用します。
–label=[] 画像で使用されるメタデータを設定します。
-m 最大メモリ値を設定します。
–メモリスワップ スワップの最大値をメモリ + スワップに設定します。「-1」はスワップに制限がないことを意味します。
–キャッシュなし イメージの作成プロセスではキャッシュは使用されません。
-引く イメージを新しいバージョンに更新してみてください。
–静か、-q Quiet モードでは、成功後にイメージ ID のみが出力されます。
–rm イメージが正常にセットアップされたら、中間コンテナを削除します。
–shm-サイズ /dev/shm のサイズを設定します。デフォルト値は 64M です。
- 減少 ウリミット構成。
-押しつぶす Dockerfile 内のすべての操作を 1 つのレイヤーに圧縮します。
–タグ、-t: イメージの名前とタグ。通常は名前:タグまたは名前の形式で、1 つのビルド内の 1 つのイメージに複数のタグを設定できます。
-通信網: デフォルト。ビルド中に RUN 命令のネットワーク モードを設定する

使用dockerfile构建镜像实战

使用dockerfile 构建前端vue项目

在这里插入图片描述
Dockerfile 文件内容

from node:16.20.1
MAINTAINER DETALCAIJ
WORKDIR /usr/app
COPY ./ /usr/app
RUN git clone https://gitee.com/vdpadmin/variant-form.git
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 8080
CMD ["npm","run","server"]

在这里插入图片描述

通过Dockerfile 构建contos系统本地镜像

Dockerfile文件

FROM centos:7.9.2009
# 指定基础镜像为 centos
MAINTAINER  mufenggrow [email protected]
ENV  MYPATH  /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE  80

CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash

构建并测试
通过命令构建镜像 最后有个 .语法如下:

 docker build -f dockerfile 文件名 -t 镜像名:[tag] .

通过Dockerfile构建镜像文件

docker build -t mufeng_centos

查看构建好的镜像

 root@ff-xas:/opt# docker images
REPOSITORY            TAG               IMAGE ID       CREATED              SIZE
mufeng_centos         latest            924e651184db   About a minute ago   667MB
node                  16.20.1           a21a68db6806   3 weeks ago          909MB
tomcat                latest            7ba61facbe26   3 weeks ago          425MB
openresty/openresty   1.13.6.2-alpine   ef57f6ca4202   4 years ago          49.1MB

おすすめ

転載: blog.csdn.net/tian830937/article/details/132437494