ドッカー---ミラーリングとDockerfileは、詳細な

ディレクトリ

三つの方法で作られた鏡.Docker

既存のイメージ作成に基づいて(ドッカコミット)

テンプレートベースのローカルミラーリングを作成します。

Dockerfileベースのカスタム画像

詳細な手順2 .Dockerfile

Dockerfileコンセプト

から

MAINTAINER

RUN

CMD

EXPOSE

ENV

追加

COPY

エントリーポイント

ボリューム

ユーザー

WORKDIR

ONBUILD


三つの方法で作られた鏡.Docker

既存のイメージ作成に基づいて(ドッカコミット)

  • 既存のイメージを見ます
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 
  • コンテナを作成し、実行します

[root@cloud ~]# docker create -it centos /bin/bash
7e750101b0eef5720205f6b4816d23f66815bb0bda5bc4f38935ad0fe03f80aa
[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7e750101b0ee        centos              "/bin/bash"         14 seconds ago      Created                                 hopeful_dirac
[root@cloud ~]# docker start 7e750101b0ee
7e750101b0ee
[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7e750101b0ee        centos              "/bin/bash"         40 seconds ago      Up 13 seconds                           hopeful_dirac
[root@cloud ~]# 
  • コンテナの上にミラーを作成します。
//-m指定该镜像的信息
//-a指定制作该镜像的作者
//centos:new 为镜像名和标签名
[root@cloud ~]# docker commit -m "new images" -a "androot" 7e750101b0ee centos:new
sha256:94b86b016dc0313e8e6d628d960e0910d130243674d585419b611a2c3e47920d

//查看新生成的镜像
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              new                 94b86b016dc0        5 seconds ago       237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 

テンプレートベースのローカルミラーリングを作成します。

  • インターネットは、モジュールをダウンロードするには、Debianのモジュールをダウンロード
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz

 

  • ミラーを作成します。

[root@cloud ~]# ls
debian-7.0-x86-minimal.tar.gz  mysql
[root@cloud ~]# cat debian-7.0-x86-minimal.tar.gz | docker import - debian:local
sha256:72fa7440a81c379c884c4e43638a0bac3eef47c4f455a7f6746da4852abaa836
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              local               72fa7440a81c        2 minutes ago       215MB
centos              new                 94b86b016dc0        9 minutes ago       237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 

ドッキングウィンドウのインポート:アーカイブからミラーを作成します

次のように使用方法は以下のとおりです。

ドッキングウィンドウのインポート[OPTIONS]ファイル| URL | - リポジトリ[:タグ]

OPENTIONS説明:

-c:アプリケーションのドッキングウィンドウのコマンドは、ミラーを作成します

-m:キャプション提出

Dockerfileベースのカスタム画像

  • ローカルDockerfileでファイルを作成します。
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              local               72fa7440a81c        21 minutes ago      215MB
centos              new                 94b86b016dc0        28 minutes ago      237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud ~]# 

  • スクリプトを実行作成、およびWebインタフェース
[root@cloud docker]# pwd
/docker
[root@cloud docker]# vi run.sh
[root@cloud docker]# cat run.sh 
#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

[root@cloud docker]# echo "this is web test" > index.html
[root@cloud docker]# ls
Dockerfile  index.html  run.sh
[root@cloud docker]# 

  • ミラーを生成します
[root@cloud docker]# docker build -t new_httpd:centos .
。。。。。。
Successfully built bbbb46a6633e
Successfully tagged new_httpd:centos
[root@cloud docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
new_httpd           centos              bbbb46a6633e        46 seconds ago      414MB
debian              local               72fa7440a81c        31 minutes ago      215MB
centos              new                 94b86b016dc0        38 minutes ago      237MB
nginx               latest              6678c7c2e56c        2 weeks ago         127MB
httpd               latest              c5a012f9cf45        3 weeks ago         165MB
centos              latest              470671670cac        2 months ago        237MB
[root@cloud docker]# 
  • 血管の画像の作成と操作の使用
[root@cloud docker]# docker run -d -p 1216:80 new_httpd:centos 
3147e2b184ada8128d4ed4dad219c139d2da84bca7036560168b0ad289d1fbb6
[root@cloud docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
3147e2b184ad        new_httpd:centos    "/run.sh"           6 seconds ago       Up 5 seconds        0.0.0.0:1216->80/tcp   lucid_blackwell
[root@cloud docker]# 

-pポートは、ネットワークトラフィックが次のドッキングウィンドウの説明を詳しく説明し、マッピングを指定します

  • 試験容器は、http://123.57.242.90:1216

詳細な手順2 .Dockerfile

Dockerfileコンセプト

  • Dockerfileは、ビルドドッキングウィンドウ、ミラービルドファイルに使用するシェルスクリプトに似たコマンドとパラメータのシリーズです
  • Dockerfile原材料ソフトウェアとドッキングウィンドウ、ミラーは、ソフトウェアの成果です。
  • ドッカーコンテナは、ソフトウェア実行している状態と考えることができます
  • 予約語Dockerfile各命令は、大文字とパラメータが続かなければなりません
  • 各命令のDockerfileは、新しいイメージレイヤを作成し、ミラーコミットします

から

  • 用法:FROM <イメージ>
  • ローカルミラーを指定しない場合は、画像内の画像のソースを特定するための構築物の基礎から、ミラーが自動的に公開リポジトリドッカーからプルダウンう
  • コメント命令Dockerfileアフリカの最初の行でなければなりませんから、Dockerfileある最初の命令は、FROM開始する必要があります
  • 要望があればDockerfileで複数のミラーを作成する必要があり、FROM複数回出現することができます
  • RFOM文がミラータグを指定しない場合、デフォルトのラベルの使用最新

MAINTAINER

  • 用法:メンテナ<名前>
  • ミラーを指定するためのユーザを作成します。

RUN

  • RUNアクションコマンド新しいイメージとして現在の画像に基づいて実行されるべきであり、RUN RUNが、その後の前に提出された後、ミラーを提出しております。ミラーリングは、階層化されたソースコードバージョン制御と同様履歴画像を作成するために、ポイントのいずれかによって送信することができます
  • RUNコマンドは、2つの方法で実装します

最初の

  • RUN「スクリプト」、「パラメータ1」と「パラメータ2」

第2

  • RUN [ "SH"、 " - C"、​​ "エコー"、 "$ HOMEの"]

注:RUNが発生したときにキャッシュを構築し、次の時間が失敗しない、それが再利用されますが、--no-キャッシュコマンド使用ドッキングウィンドウのビルドすることができ

CMD

  • 複数回、最後のものだけが動作する場合はCMDコマンドを指定Dockerfileは、ファイル内で一度だけ使用しました
  • CMDの目的は、コンテナを起動したときにデフォルトコマンドのオプションを提供することです。ユーザーがコンテナを開始した場合、CMDコマンド命令が上書きされます実行するコマンドを指定します。
  • CMDは、次の3つの方法で使用されています
1.CMD "执行文件","参数1","参数2"
2.CMD "参数1","参数2"
3.CMD command 参数1 参数2(shell from)

注:CMDを起動コンテナで実行されますが、ビルドは実行されず、ミラー構築時にRUNにのみ、実行し、その後のイメージビルドが完了した後、容器は関係なく、RUNの開始します

EXPOSE

  • コマンドに指定されたポートマッピングドッカーコンテナの外側を公開するには、-p / -Pテイク効果ドッキングウィンドウで実行する必要があります
  • 使用方法を公開:EXPOSE <ポート> [<ポート> ...]

ENV

  • 環境変数を指定するENVコマンドは、後続の命令の実行に使用され、コンテナ・ランタイムに残ります
  • ENVの使用状況
1.ENV <key> <value>    #只能设置一个变量
2.ENV <key>=<value>    #允许一次设置多个变量
  • 例としては、次のとおりです
##例子
ENV myName="John Doe" myDog=rex\the\dog \
myCat=fluffy
##等同于
ENV myName John Doe
ENV myDog Rex The Dog
ENV myCat fluffy

追加

  • コピーローカルホストファイル、ディレクトリ、またはリモートファイルがコンテナに追加されたURLから指定されたパスを追加します。
  • GOは、通常のファジー・マッチングによってサポートされ、特定のルールは、ゴーfilepath.Matchで見つけることができます
  • ロードキングロードキングは絶対にする必要があり、そうでない場合は現在、自動的に対応するディレクトリを作成します。
  • ロードキングはどこパス、相対パスでなければなりませんDockerfile
  • それがディレクトリである場合には、唯一のディレクトリ・レプリケーションの内容、およびディレクトリ自体はコピーされません
  • ADDの使用状況:ADD <SRC> ... <テスト>

COPY

  • COPYファイルやディレクトリをコピーして、コンテナ指定したパスに追加されます。ADDとの使用は、唯一の違いは、リモートファイルのURLを指定することはできませんということです
  • COPYの使用<SRC> .. <テスト>

エントリーポイント

  • 構成コンテナを開始した後、コマンド、および付属のドッキングウィンドウの実行パラメータをカバーすることはできません、とCMDをカバーすることができます。あなたがカバーする必要がある場合は、ドッキングウィンドウの実行を使用することができます--entrypoint
  • 各Dockerfileは、あなたがより多くの指定のみ1 ENTRYPOINTを持つことができ、最後のものだけが動作します
  • ENTRYPOINTの使用状況
1.ENTRYPOINT "exectable","param1","param2"
2.ENTRYPOINT command param1 param2(shell from)

ボリューム

  • 体積効果は、標的血管にマウントポイントをマウントマウント対象ディレクトリ容器または他の容器に機械を取り付けることです
  • 使用量:VOLUME [ "/データ"]

ユーザー

  • UIDを指定し、ユーザまたはコンテナが実行され、その後のRUN、CMD、ENTRYPOINTも指定されたユーザ
  • USER使用:USERデーモン

WORKDIR

  • その後のRUNためWORKDIR、CMD、作業ディレクトリを設定するには、ENTRYPOINT命令。命令のWORKDIRの複数の追跡パラメータが相対パスコマンドである場合、それは前のコマンドパスに基づいて指定し、使用することができます
  • 次のようにWORKDIRを使用しました:
##例1
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
最终路径为/a/b/c
##WORKDIR指令可以在ENV设置变量之后调用环境变量
ENV DIRPATH /path
WORKDIR $DIRPATH/$DIRNAME
最终路径为/path/$DIRNAME

ONBUILD

  • ONBUILD用法:ONBUILD [INSTRUCTION]
  • コマンドを実行する画像Bを生成するために、ベース画像としてDOckerfile画像Aがある場合に生成された画像Aを用いてDockerfile、再度ONBUILDコマンドを実行しないONBUILD
公開された139元の記事 ウォンの賞賛168 ・は 40000 +を見て

おすすめ

転載: blog.csdn.net/qq_42761527/article/details/104976721