検索
ホームページ運用・保守DockerDocker イメージを作成するにはいくつかの方法があります

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 までご連絡ください。
DockerおよびLinux:ポータブルアプリケーションの構築DockerおよびLinux:ポータブルアプリケーションの構築May 03, 2025 am 12:17 AM

DockerとLinuxを使用してポータブルアプリケーションを構築する方法は?まず、DockerFileを使用してアプリケーションをコンテナ化し、Linux環境でコンテナを管理および展開します。 1)dockerfileを書き、アプリケーションとその依存関係をミラーにパッケージ化します。 2)dockerbuildおよびdockerrunコマンドを使用して、Linux上のコンテナを構築および実行します。 3)DockerComposeを介してマルチコンテナーアプリケーションを管理し、サービス依存関係を定義します。 4)画像のサイズとリソースの構成を最適化し、セキュリティを強化し、アプリケーションのパフォーマンスと移植性を向上させます。

DockerとKubernetes:コンテナオーケストレーションの力DockerとKubernetes:コンテナオーケストレーションの力May 02, 2025 am 12:06 AM

DockerとKubernetesは、コンテナオーケストレーションを通じてアプリケーションの展開と管理効率を改善します。 1.DockerはDockerFileを介して画像を構築し、コンテナを実行してアプリケーションの一貫性を確保します。 2。Kubernetesは、自動展開と拡張を実現するために、ポッド、展開、およびサービスを介してコンテナを管理します。

Docker vs. Kubernetes:重要な違​​いと相乗効果Docker vs. Kubernetes:重要な違​​いと相乗効果May 01, 2025 am 12:09 AM

DockerとKubernetesは、コンテナ化とオーケストレーションのリーダーです。 Dockerはコンテナライフサイクル管理に焦点を当てており、小規模プロジェクトに適しています。 Kubernetesはコンテナオーケストレーションが上手で、大規模な生産環境に適しています。 2つの組み合わせは、開発と展開の効率を改善できます。

DockerとLinux:完璧なパートナーシップDockerとLinux:完璧なパートナーシップApr 30, 2025 am 12:02 AM

DockerとLinuxは、アプリケーションの開発と展開を簡素化できるため、完全な一致です。 1)DockerはLinuxの名前空間とCgroupsを使用して、コンテナの分離とリソース管理を実装します。 2)Dockerコンテナは仮想マシンよりも効率的で、スタートアップ速度が高速であり、ミラー化された階層構造は簡単に構築および配布できます。 3)Linuxでは、Dockerのインストールと使用は非常にシンプルで、コマンドはわずかです。 4)DockerComposeを介して、マルチコンテナーアプリケーションを簡単に管理および展開できます。

Docker vs. Kubernetes:使用するものを決定しますDocker vs. Kubernetes:使用するものを決定しますApr 29, 2025 am 12:05 AM

DockerとKubernetesの違いは、Dockerが小さなプロジェクトや開発環境に適したコンテナ化されたプラットフォームであることです。 Kubernetesは、大規模なプロジェクトや生産環境に適したコンテナオーケストレーションシステムです。 1.Dockerはアプリケーションの展開を簡素化し、リソースが限られている小規模プロジェクトに適しています。 2。Kubernetesは、効率的な管理を必要とする大規模なプロジェクトに適した自動化とスケーラビリティ機能を提供します。

DockerおよびKubernetes:スケーラブルなアプリケーションの構築DockerおよびKubernetes:スケーラブルなアプリケーションの構築Apr 28, 2025 am 12:18 AM

DockerとKubernetesを使用して、スケーラブルなアプリケーションを構築します。 1)dockerfileを使用してコンテナ画像を作成します。2)Kubectlコマンドを介してKubernetesの展開とサービス、3)Horizo​​ntalpodautoscalerを使用して自動スケーリングを実現し、それにより効率的でスケーラブルなアプリケーションアーキテクチャを構築します。

KubernetesとDocker:比較分析KubernetesとDocker:比較分析Apr 27, 2025 am 12:05 AM

DockerとKubernetesの主な違いは、Dockerがコンテナ化に使用され、Kubernetesはコンテナオーケストレーションに使用されることです。 1.Dockerは、アプリケーションを開発、テスト、展開し、コンテナを介して分離とリソースの制限を実装するための一貫した環境を提供します。 2。Kubernetesは、コンテナ化されたアプリケーションを管理し、自動化された展開、拡張、管理機能を提供し、負荷分散と自動スケーリングをサポートします。この2つの組み合わせは、アプリケーションの展開と管理の効率を改善できます。

LinuxでDockerの実行:インストールと構成LinuxでDockerの実行:インストールと構成Apr 26, 2025 am 12:12 AM

LinuxにDockerをインストールして構成するには、システムが64ビットとカーネルバージョン3.10以上であることを確認する必要があります。コマンド「Sudoapt-GetUpDate」を使用し、コマンド「Sudoapt-GetUpDate」でインストールし、「Sudoapt-GetUpDate」で検証します。 Dockerは、Linuxカーネルの名前空間とコントロールグループを使用して、コンテナの分離とリソースの制限を実現します。画像は読み取り専用テンプレートであり、コンテナを変更できます。使用法の例には、NGINXサーバーの実行やカスタムDockerFilesを使用した画像の作成が含まれます。一般

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター