Dockerfileを使用してApacheイメージを作成する方法

Dockerfileを使用してApacheイメージを作成する方法

1. Dockerイメージ

1.1 Dockerイメージ

アプリケーションは、公開された標準フォーマットを使用してDockerコンテナの操作をサポートします。

1.2 Dockerイメージの作成方法

  • 既存の画像に基づいて作成する
  • ローカルテンプレートに基づいて作成
  • Dockerfileに基づいて作成

Dockerイメージは階層構造です

ここに画像の説明を挿入

① Dockerfile 内の各命令は新しいイメージレイヤーを作成します ② イメージレイヤーはキャッシュされ、再利用されます ③ Dockerfile 命令が変更されたり、コピーされたファイルが変更されたり、イメージのビルド時に指定された変数が異なると、対応するイメージレイヤーキャッシュは無効になります ④ あるレイヤーのイメージキャッシュが無効になると、それ以降のイメージレイヤーキャッシュも無効になります ⑤ イメージレイヤーは不変です。あるレイヤーにファイルを追加し、次のレイヤーでそのファイルを削除しても、イメージにはそのファイルが残っています

2. 既存のイメージに基づいてインスタンスを作成する

コンテナ内で実行されているプログラムと動作環境をパッケージ化して新しいイメージを生成する

docker コミットオプション コンテナID 作成したいイメージ名: タグ
-m: 説明情報
-a: 著者情報
-p: ビルドプロセス中にコンテナを停止する

[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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerfileを使用してDockerイメージを構築する手順
  • スーパーバイザーによるDockerfileのマルチサービスイメージパッケージ操作
  • Dockerイメージの作成Dockerfileとコミット操作
  • Dockerfile に基づいて Tomcat イメージを構築する方法
  • Dockerfile を使用して Docker イメージをカスタマイズする方法
  • カスタム Docker イメージを作成するための Dockerfile の詳細な説明と CMD と ENTRYPOINT 命令の比較
  • alpineをベースにdockerfileで作成したtomcatイメージの実装
  • alpineをベースにdockerfileで作成したクローラーScrapyイメージの実装
  • Dockerfileを使用して独自のイメージを作成する方法
  • Dockerfileを使用してDockerイメージを構築する

<<:  本をめくる効果を実現するネイティブJS

>>:  初心者がHTMLタグを学ぶ(1)

推薦する

Centos6.5 に zabbix2.4 をインストールするチュートリアル図

centos-DVD1バージョンシステムの固定IPアドレスは192.168.159.128で、cen...

mysql 8.0.19 win10 クイックインストールチュートリアル

このチュートリアルでは、参考までにMySQL 8.0.19のインストールチュートリアルを共有します。...

Vue3+Element+Tsは、フォームの基本的な検索リセットやその他の機能を実装します

Vue2 の記述スタイルから Vue3 の形式に切り替えると、記述スタイルとコード構造にいくつかの変...

MySQLサービスを削除する具体的な方法

MySQLは次のエラーを表示します「コントロール パネル -> 管理ツール -> サービ...

JavaScriptはマウスの動きに追従するボックスを実装します

この記事では、マウスの動きを追跡するためのJavaScriptの具体的なコードを参考までに紹介します...

Vueデータ割り当て問題の解決

私が長い間遭遇してきた問題を要約してみましょう。プロジェクトでは、フロントエンドをレンダリングするた...

CSSの複数条件の書き方の詳細説明:

:not疑似クラスセレクターは、式に一致しない要素をフィルタリングできます。例 テーブル tbod...

Vue の計算プロパティの詳細な説明

目次補間式方法計算された要約する今日は、Vue の計算プロパティについてお話ししましょう。計算プロパ...

Docker に MySQL と MariaDB をインストールする方法

MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...

表 td 画像水平および垂直中央揃えコード

HTMLコード:コードをコピーコードは次のとおりです。 <td align="cen...

Docker環境を構築する簡単な方法

まず、Docker とは何かを理解しましょう。 Docker は、アプリケーションをデプロイするため...

ubuntu14.04 に jdk1.8 をインストールするチュートリアル

1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....

Linux sftp コマンドの使用法の概要

sftp は、安全なファイル転送プロトコルである Secure File Transfer Prot...

jsプロキシの原理の詳細な説明

目次プロキシモードとは何ですか?実例を紹介例を使ってプロキシモデルの定義を理解するプロキシとはget...

HTML レイヤード ボックス シャドウ効果のサンプル コード

まず、画像を見てみましょう。今日はこのエフェクトを作成します。 実は、何でもないんです。Web ペー...