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