ディレクトリ
三つの方法で作られた鏡.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