1. Dockerイメージ1.1 Dockerイメージ アプリケーションは、公開された標準フォーマットを使用してDockerコンテナの操作をサポートします。 1.2 Dockerイメージの作成方法
Dockerイメージは階層構造です ① Dockerfile 内の各命令は新しいイメージレイヤーを作成します ② イメージレイヤーはキャッシュされ、再利用されます ③ Dockerfile 命令が変更されたり、コピーされたファイルが変更されたり、イメージのビルド時に指定された変数が異なると、対応するイメージレイヤーキャッシュは無効になります ④ あるレイヤーのイメージキャッシュが無効になると、それ以降のイメージレイヤーキャッシュも無効になります ⑤ イメージレイヤーは不変です。あるレイヤーにファイルを追加し、次のレイヤーでそのファイルを削除しても、イメージにはそのファイルが残っています 2. 既存のイメージに基づいてインスタンスを作成するコンテナ内で実行されているプログラムと動作環境をパッケージ化して新しいイメージを生成する docker コミットオプション コンテナID 作成したいイメージ名: タグ 例 [root@server1 ~]# docker ps -a #既存のコンテナ コンテナID イメージ コマンド 作成ステータス ポート 名前 86cf506635da centos:7 "/bin/bash" 6秒前 5秒前 nerve_shockley [root@server1 ~]# docker commit -m "image" -a "zf" -p 86cf506635da docker:new #docker を作成: 新しいイメージ sha256:e3056b40acd772abc9a39c6c4f3cb42ba119eb9392b32fb275414f00e82d55b2 [root@server1 ~]# docker images #生成されたイメージを表示 リポジトリ タグ イメージ ID 作成 サイズ docker new e3056b40acd7 9秒前 267MB centos 7 4f280dc8c807 21時間前 267MB #コンテナを停止してイメージを作成するのが最善です 3. ローカルテンプレートに基づいて作成するオペレーティングシステムのテンプレートファイルをインポートして新しいイメージを生成し、wgetコマンドを使用してそれをローカルイメージとしてインポートします。 [root@server1 ~]# cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new #テンプレート名イメージ名をインポート daoke:new [root@server1 ~]# docker images #生成されたイメージを表示 リポジトリ タグ イメージ ID 作成 サイズ daoke 新着 61b2d8af0457 38秒前 215MB docker new e3056b40acd7 10分前 267MB centos 7 4f280dc8c807 22時間前 267MB 4. Dockerfileに基づいて作成するDockerfile は一連の命令で構成されるファイルです。 ファイル構造:
Dockerfile は 1 行につき 1 つの命令をサポートします。各命令は複数のパラメータを持つことができ、"#" で始まるコメントをサポートします。 Dockerfile の操作手順: |
命令 | 説明する |
---|---|
画像より | 新しいイメージのベースとなるイメージを指定します。最初の命令は FROM 命令である必要があります。 |
メンテナー名 | 新しいイメージのメンテナー情報を記述する |
RUNコマンド | それに基づいてイメージ上でコマンドを実行し、新しいイメージに送信する |
CMD ["実行するプログラム","パラメータ 1","パラメータ 2"] | 命令がコンテナを起動するときに実行されるコマンドまたはスクリプト。Dockerfile には CMD コマンドを 1 つだけ含めることができます。複数のコマンドを指定した場合、最後のコマンドのみが実行されます。 |
EXPOSEポート番号 | ミラーを実行してサービスを提供する際に外部ノードへのマッピングを容易にするためにミラーポート番号を公開する |
ENV環境変数の値 | 次のRUNで使用される環境変数の値を設定します。 |
ADD ソースファイル/ディレクトリ ターゲットファイル/ディレクトリ | ホストからコンテナにファイルをコピーします。圧縮されたパッケージの場合は解凍し、ソースファイルはDockerfileと同じディレクトリにある必要があります。 |
ソースファイル/ディレクトリ ターゲットファイル/ディレクトリをコピー | ローカル ホスト上のファイル/ディレクトリをターゲットの場所にコピーします。ソース ファイル/ディレクトリは Dockerfile と同じディレクトリにある必要があります。 |
ボリューム ["ディレクトリ"] | コンテナにマウントポイントを作成する |
ユーザーユーザー名/UID | コンテナを実行するユーザーを指定する |
WORKDIR パス | 後続のRUN、CMD、ENTRYPOINTの作業ディレクトリを指定します。cdと同じです。 |
ONBUILD コマンド | 生成されたイメージをベースイメージとして使用するときに実行するコマンドを指定します |
ヘルスチェック | 健康チェック |
例
[root@server1 ~]# mkdir apache #ミラーディレクトリを作成 [root@server1 ~]# cd apache/ #Dockerfileを作成する [root@server1 apache]# vi Dockerfile FROM centos:7 #ベースイメージに基づいて、centosカーネルで実行 MAINTAINER this is zzf web #メンテナー情報 RUN yum -y update yum -y install httpdを実行します EXPOSE 80 #外部マッピング用にポート80を開きます ADD index.html /var/www/html/index.html #ホストWebサイトのファイルをイメージに追加します ADD run.sh /run.sh #実行スクリプトをイメージにコピーします RUN chmod 755 /run.sh #権限を昇格します CMD ["/run.sh"] #コンテナの起動時にスクリプトを実行し、Apacheサービスを開始します #現在のディレクトリにindex.htmlとrun.shを作成します [root@server1 apache]# vi run.sh #!/bin/bash rm -rf /run/httpd/* exec /usr/sbin/apachectl -D FOREGROUND #コンテナの起動時にサービスを開始します [root@server1 apache]# vi index.html こんにちは #イメージを作成するには、Dockerfile が現在配置されているディレクトリにいる必要があります。スペースと . は現在のディレクトリ [root@server1 apache] を表すことに注意してください。# docker build -t http:centos 。 #作成されたイメージを表示する [root@server1 apache]# docker images リポジトリ タグ イメージ ID 作成 サイズ http centos 5db0e8103d54 5分前 539MB daoke 新着 61b2d8af0457 33分前 215MB docker new e3056b40acd7 43 分前 267MB centos 7 4f280dc8c807 22時間前 267MB #イメージをコンテナとして実行 -p はマッピング ポートで、コンテナ ポート 80 をホスト ポート 1212 にマッピングします (空いている必要があります) -P はノードポートを指定せず、ランダムにポートを割り当て、デフォルトの割り当てはポート 32168 から始まります [root@server1 apache]# docker run -d -p 1212:80 http:centos #コンテナのステータスを表示 [root@server1 apache]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 a8fa8ae6be42 http:centos "/run.sh" 3 分前 3 分前にアップ 0.0.0.0:1212->80/tcp xenodochial_franklin 86cf506635da centos:7 "/bin/bash" 48 分前 48 分前 nerve_shockley
ファイアウォールを無効にしてApacheサービスをテストする
dockerfile を使用して Apache イメージを作成する方法についての記事はこれで終わりです。dockerfile を使用してイメージを作成する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。
Prometheus (プロメテウスとも呼ばれる) 公式サイト: https://prometheu...
一般的に ELK スタックとして知られる Elastic スタックは、Elasticsearch、L...
序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...
1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...
HTMLタグの説明1. HTMLタグタグ: !DOCTYPE説明: HTML ドキュメントが準拠する...
場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...
1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...
404 を避けるべきだとどうして言えるのでしょうか? その理由は、ほとんどの 404 ページが粗雑す...
目次vue - スワイパープラグインを使用してカルーセルを実装するカルーセルのバグを解決するには、w...
Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...
序文多くの場合、ユーザーが自分のデータに対して実行する操作に基づいて何かを行う必要があります。たとえ...
2つのケース: 1. 索引あり 2. 索引なし前提条件:方法: コマンドラインを使用してシミュレート...
現在、Docker には中国向けの公式ミラーがあります。詳細については、https://www.do...
目次定義2. 使用シナリオ3. 例を挙げる4. コーディング定義オブザーバー パターンは 1 対多の...
目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...