目次
イメージ構築の概要
docker commit build image
Dockerfile は一連の命令で構成されるファイルです。各命令は Linux のコマンドに対応します。Docker プログラムは次のようになります。 Dockerfile の命令により、最終的にイメージが生成されます。
ステップ 1: 新しいディレクトリを作成する
  10.CMD
  11.ENTRYPOINT
Dockerfile演示
ホームページ 運用・保守 Docker Docker イメージを作成するにはいくつかの方法があります

Docker イメージを作成するにはいくつかの方法があります

Feb 23, 2022 pm 06:22 PM
docker

Docker イメージを作成するには 2 つの方法があります: 1. 「docker commit」コマンドを使用して、既存のコンテナに基づいてイメージを手動で構築します; 2. Dockerfile を使用してイメージを自動的に構築します。 Dockerfile ビルド ファイルの指示を読み、イメージを自動的に生成します。

Docker イメージを作成するにはいくつかの方法があります

このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

Docker イメージ ウェアハウスからダウンロードしたイメージが要件を満たさない場合があります。基本的なイメージに基づいて独自のイメージを構築できます。

イメージ構築の概要

状況 次に、自分でイメージを構築する必要がありますか?

(1) 自社開発アプリケーションなど既存のイメージが見つからない場合

(2) イメージに特定の機能を追加する必要がある

docker buildイメージングには 2 つの方法があります: docker commit コマンドと DockerfileBuild file

docker commit build image

既存のコンテナに基づいたイメージのビルドこれは主に、新しいイメージを構築するための docker commit コマンドを通じて行われます。

dockercommit 構築には 3 つの主な手順があります。

  • コンテナの実行
  • コンテナの変更
  • コンテナを新しいイメージとして保存

たとえば、centos イメージに vim エディターをインストールし、新しいイメージとして保存します

(1) コンテナーを実行します

[root@ken1 docker]# docker run -it centos
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a02a4930cb5d: Pull complete 
Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
Status: Downloaded newer image for centos:latest
ログイン後にコピー

(2) をインストールしますvim editor

vim エディタでインストールされていないことを確認します

[root@69f501e858a6 /]# vim
bash: vim: command not found
ログイン後にコピー

インストールします

[root@69f501e858a6 /]# yum install vim -y
ログイン後にコピー

(3) 新しいイメージとして保存します

最初の確認現在実行中のイメージ

[root@ken1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
69f501e858a6        centos              "/bin/bash"         2 minutes ago       Up 2 minutes                            quizzical_torvalds
ログイン後にコピー

Use commit Save as a new image

[root@ken1 ~]# docker commit 69f501e858a6 centos-vim
sha256:42083b89a179368bc29a8f40d14f8824990183c8e4b28fd84411d440c26342e5
ログイン後にコピー

69f501e858a6 は実行中のコンテナの ID です。name の下の名前も使用できます。
centos-vim は新しいイメージの名前

centos-vim が利用可能かどうかを確認します。 Mirror

新しいミラーを再起動し、 vim エディターを使用できます

新しいミラーは vim エディターで使用できることがわかります

[root@ken1 ~]# docker run -it centos-vim 
[root@61d090898bad /]# vim
[root@61d090898bad /]# vim test
ログイン後にコピー

上記は commit を使用して新しいイメージを作成する方法を示していますが、docker は推奨しません

  • これは手動でイメージを作成する方法である、コンテナが間違っている、効率が低く再現性が低いなどの理由から、この方法を使用してイメージを作成します。 ###さらに重要なことには。ユーザーは画像がどのように作成されるかを知りません。内部に悪意のあるプログラムはありますか?
  • Dockerfile はイメージを構築します

Dockerfile は一連の命令で構成されるファイルです。各命令は Linux のコマンドに対応します。Docker プログラムは次のようになります。 Dockerfile の命令により、最終的にイメージが生成されます。

最初の Dockerfike

ステップ 1: 新しいディレクトリを作成する

[root@ken1 ~]# mkdir /test
ログイン後にコピー

ステップ 2: Dockerfile を作成する

名前は Dockerfile、最初の D大文字にする必要があります

[root@ken1 ~]# cat Dockerfile
FROM centos
RUN yum install vim -y
ログイン後にコピー

FROMcentos は centos 基本イメージを使用することを意味します

RUN は centos に vim エディターをインストールすることを意味します

ステップ 3: イメージをビルドする

[root@ken1 ~]# docker build -t centos-vim2 .
ログイン後にコピー

-t の後に、新しいイメージ

のタグ名 (タグ) を指定します。最後のドットは、docker コンテキストが現在のディレクトリであることを示します。 Docker は、デフォルトでビルド コンテキストから Dockerfile ファイルを検索します。また、-f パラメーターを使用して Dockerfile の場所を指定することもできます。

#ステップ 4: イメージを表示する

# イメージの階層構造の表示

## Docker 履歴には、Dockerfile の実行プロセスであるイメージの構築履歴が表示されます。

Dcokerfile の共通手順

1.FROM

ベースイメージを指定します

2.MAINTAINER

イメージの作成者を設定します。任意の文字を使用できます

3.COPY

ビルド コンテキストからイメージにファイルをコピーします

COPY は、COPY src dest と COPY ["src", "dest"]

注: src は、ビルド コンテキスト内、つまり Dockerfile

と同じディレクトリ内のファイルまたはディレクトリのみをブレーキできます。4.ADD

およびCOPY 同様に、ファイルをビルド コンテキストからイメージにコピーします。

違いは、srcがアーカイブファイル(tar、zip、tgz、xz)の場合、ファイルは自動的にdestに接続されることです

5.ENV

Set環境変数と環境変数は、後続の命令で使用できます。例:

ENV name ken RUN echo $name

6.EXPOSE

指定されたコンテナ内のプロセス特定のポートを監視します。Docker はポートを公開できます。

7.VOLUME

ファイルまたはディレクトリをボリュームとして宣言します

8.WORKDIR

は、後続の RUN 、ENTRYPINT、ADD、COPY 命令は、イメージ内の現在の作業ディレクトリを設定します。

9.RUN

コンテナ内の指定されたコマンドを実行します

  10.CMD

容器启动时运行指定的命令

dockerfile中可以多个CMD指令,但是只要最后一个生效。CMD可以被docker run之后的参数替换

  11.ENTRYPOINT

设置容器启东市的命令

dockerfile中可以有多个ENTRYPOINT,但是只有最后一个生效。

CMD或者docker run之后的参数会被当做参数传递给ENTERYPOINT.

Dockerfile演示

下面演示一个比较全面的dockerfile

[root@ken1 test]# cat Dockerfile 
#my Dockerfile
FROM busybox
MAINTAINER ken
WORKDIR /ken
RUN touch test
COPY ["ken1","."]
ADD ["wordpress.tar.gz","."]
ENV name "ken"
ログイン後にコピー

注意:Dockerfile支持以#开头的注释

构建镜像

[root@ken1 test]# docker build -t myimage .
Sending build context to Docker daemon  4.281MB
Step 1/7 : FROM busybox
 ---> 3a093384ac30
Step 2/7 : MAINTAINER ken
 ---> Running in 2a73a83507ce
Removing intermediate container 2a73a83507ce
 ---> 8c3df9b3d823
Step 3/7 : WORKDIR /ken
 ---> Running in 31c6f9fe2195
Removing intermediate container 31c6f9fe2195
 ---> a458cf986072
Step 4/7 : RUN touch test
 ---> Running in e1b08ebd363c
Removing intermediate container e1b08ebd363c
 ---> 41601920009a
Step 5/7 : COPY ["ken1","."]
 ---> 2ebfa0933fca
Step 6/7 : ADD ["wordpress.tar.gz","."]
 ---> d0ad29d3aa34
Step 7/7 : ENV name "ken"
 ---> Running in fceae6e20e63
Removing intermediate container fceae6e20e63
 ---> 7efe0600e48f
Successfully built 7efe0600e48f
Successfully tagged myimage:latest
ログイン後にコピー

查看镜像

运行该镜像

[root@ken1 test]# docker run -it myimage
/ken # ls
ken1       test       wordpress
/ken # echo $name
ken
ログイン後にコピー
  •  可以发现当前工作目录为/ken,且自动创建
  • ken1是我们从docker context目录中复制过去的
  • test是使用touch创建的
  • wordpres压缩包已经被自动解压
  • $name为变量值为ken

推荐学习:《docker视频教程

以上がDocker イメージを作成するにはいくつかの方法がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerによってコンテナを出る方法 Dockerによってコンテナを出る方法 Apr 15, 2025 pm 12:15 PM

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerを再起動する方法 Dockerを再起動する方法 Apr 15, 2025 pm 12:06 PM

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Dockerプロセスを表示する方法 Dockerプロセスを表示する方法 Apr 15, 2025 am 11:48 AM

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

中国のDocker画像ソースを変更する方法 中国のDocker画像ソースを変更する方法 Apr 15, 2025 am 11:30 AM

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。

See all articles