Dockerfileの概要とdockerbuildの一般的なコマンドの概要

Dockerはチュートリアル関連のシリーズカタログを使用します


目次

dockerfileとは何ですか 

Dockerイメージ生成の作業ロジック

Dockerfileの基本構造

Dockerfile形式の例:

イメージを構築する


Dockerイメージがすべて正式に定義されていることを以前に学びましたが、自分でイメージを作成できますか?

dockerfileとは何ですか 

  • Dockerfileはドキュメントと同等であり、顧客はdockerfileに基づいて新しいコンテナーを生成できます。
  • Dockerfileは、イメージの作成に使用されるソースファイルであり、コンテナーを構築するプロセスの命令です。
  • Dockerは、dockerfileの仕様を読み取って、コンテナーを自動的に構築し、dockerfileに基づいてイメージを作成できます。
  • 各命令はミラーレイヤーを作成します。つまり、ミラーイメージは複数のレイヤーに重ね​​合わされます。したがって、レイヤーが多いほど効率が低くなり、ミラーを作成するレイヤーが少ないほど優れています。したがって、1つの命令で実行できるアクションは、可能な限り1つの命令で定義されます。

Vernacular:Dockerfileという名前のファイルで、Dockerfileの必要なポイントが含まれており、ビルド後にミラーになります。

Dockerイメージ生成の作業ロジック

  • まず、ミラーリング用のディレクトリが必要で、そのディレクトリにファイルがあります
  • 名前はDockerfileである必要があり、Dockerfileの形式は指定されています
  • これはdockerの規則です。C言語のmakefileを使用したことがある場合は、それを知っておく必要があります。これらはすべてプログラミング言語の規則です。Dockerプログラムコードで記述された固定名。
  • 自分で名前を付ける場合:docker build -t test -fdockerfile。
  • #記号はコメントで始まります。コマンドとパラメーターを区別するために、指定はデフォルトで大文字で表されます。
  • DockerビルドはDockerfileを読み取り、Dockerfile内の構成を順番に読み取ります。最初の非コメント命令は、FROMで始まる必要があり、新しいイメージをビルドするためのベースイメージを示します。既存の画像に基づいて新しい画像を作成できます。

Dockerfileの基本構造

Dockerfileは通常、次の4つの部分に分かれています。

  • 基本的な画像情報
  • メンテナ情報
  • ミラー操作説明書
  • コンテナの起動時に実行される命令
    接下来详细介绍
    「#」は、Dockerfileのコメントです。

Dockerは、Dockerfileの命令を上から下の順に実行します。ベースイメージを指定するには、最初の命令がFROMである必要があります。#文字で始まるステートメントはコメントと見なされます。Dockerファイルでは、RUN、CMD、FROM、EXPOSE、ENVおよびその他の命令を使用できます。

vim Dockerfile

Dockerfile形式の例:

 

ここに画像の説明を挿入します

実行の順序は上から下へ、順番にです。

 

命令 説明
から 新しいシーンの構築は、その鏡像に基づいています
メンテナー ミラーメンテナの名前またはメールアドレス
ラベル ミラーに情報を追加します。
実行 イメージを構築するときに実行するシェルコマンド
追加 コンテナにローカルファイルを追加する
コピー ファイルまたはディレクトリをシーンにコピーします
ENV 環境変数を設定する
ユーザー RUN、CMD、およびENTRYPOINT実行コマンドの実行ユーザーを指定します
ARG 外部から開始するときに渡す必要のあるパラメーター、コンテナーの開始時に、-build-argを使用してパラメーターを渡します
EXPOSE サービスポートを実行しているコンテナを宣言します
健康診断 コンテナ内のサービスヘルスチェック
ボリューム 永続ディレクトリを指定するために使用されます
WORKDIR RUN、CMD、ENTRYPOINT、COPY、ADDの作業ディレクトリを設定します
エントリーポイント コンテナの実行中に実行します。複数のENTRYPOINTコマンドがある場合は、最後のコマンドが有効になります。
CMD コンテナの実行時に実行します。複数のCMDコマンドがある場合は、最後のコマンドが有効になります。

イメージを構築する

docker buildは、Dockerfileを使用してミラーを作成するために使用されるdockerコマンドです。
Buildメソッドは、構成ファイルを作成してから、現在存在するイメージを使用して構成ファイルに従って調整し、新しいイメージを生成する必要があります。

パラメータ形式:

docker build [OPTIONS] PATH |URL| -[flags]

Options:
-t, --tag list   # 镜像名称
-f, --fire string   # 指定 Dockerfile文件位置
# Options 其他参数 docker build --help

Options:
	--add-host list           Add a custom host-to-IP mapping (host:ip) 
								# 添加自定义主机到ip的映射(主机:ip)
    --build-arg list          Set build-time variables 
    							# 设置构建时变量
    --cache-from strings      Images to consider as cache sources
    							# 要考虑作为缓存源的图像
    --cgroup-parent string    Optional parent cgroup for the container
    							# 容器的可选父cgroup
    --compress                Compress the build context using gzip
    							# 使用gzip压缩构建上下文
    --cpu-period int          Limit the CPU CFS (Completely Fair Scheduler) period
    							# 限制CPU CFS(完全公平调度程序)周期
    --cpu-quota int           Limit the CPU CFS (Completely Fair Scheduler) quota
								# 限制CPU CFS(完全公平调度程序)配额
-c, --cpu-shares int          CPU shares (relative weight)
								# CPU份额(相对权重)
    --cpuset-cpus string      CPUs in which to allow execution (0-3, 0,1)
								# 允许执行的cpu (0- 3,0,1)
    --cpuset-mems string      MEMs in which to allow execution (0-3, 0,1)
								# 允许执行的MEMs (0- 3,0,1)
    --disable-content-trust   Skip image verification (default true)
								# 跳过图像验证(默认为真)
-f, --file string             Name of the Dockerfile (Default is 'PATH/Dockerfile')
								# Dockerfile的名称(默认为‘PATH/Dockerfile’)
    --force-rm                Always remove intermediate containers
								# 总是移除中间容器
    --iidfile string          Write the image ID to the file
								# 将图像ID写入文件
    --isolation string        Container isolation technology
								# 容器隔离技术
    --label list              Set metadata for an image
								# 设置图像的元数据
-m, --memory bytes            Memory limit
								# 存储容量极限 / 内存限制
    --memory-swap bytes       Swap limit equal to memory plus swap: '-1' to enable unlimited swap
								# 交换限制等于内存加交换:'-1'以启用无限交换
    --network string          Set the networking mode for the RUN instructions during build (default "default")
								# 在构建期间为运行指令设置连网模式(默认为“default”)
    --no-cache                Do not use cache when building the image
								# 在构建映像时不使用缓存
    --pull                    Always attempt to pull a newer version of the image
								# 总是尝试拉一个较新的版本的图像
-q, --quiet                   Suppress the build output and print image ID on success
								# 如果成功,则禁止生成输出并打印图像ID
    --rm                      Remove intermediate containers after a successful build (default true)
								# 成功构建后删除中间容器(默认为true)
    --security-opt strings    Security options
								# 安全选项
    --shm-size bytes          Size of /dev/shm
								# 大小 /dev/shm
-t, --tag list                Name and optionally a tag in the 'name:tag' format
								# 名称和“Name:tag”格式的标记(可选)
    --target string           Set the target build stage to build.
								# 设置要构建的目标构建阶段。
    --ulimit ulimit           Ulimit options (default [])
								# Ulimit选项(默认[])

 

おすすめ

転載: blog.csdn.net/shi_hong_fei_hei/article/details/114481960