ローカルがない場合、ドッキングウィンドウが自動的にドッキングウィンドウのイメージリポジトリからダウンロードするミラーを使用して、コンテナを実行する場合、デフォルトはドッカーハブパブリックイメージソースからダウンロードされます。
今、私たちは学ぶために来ます。
- 1.管理とローカルホストミラーリングドッカーの使用
- 2.ミラーを作成
ミラーリストを一覧表示します
我々は使用することができdocker images
、ホストコンピュータ上に存在ミラーを一覧表示します。
root@:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 055936d39205 3 weeks ago 5.53MB
mysql 5.7 7faa3c53e6d6 3 weeks ago 373MB
ubuntu 15.04 d1b55fd07600 3 years ago 131MB
ubuntu 16.04 2a697363a870 2 weeks ago 119MB
各オプションの説明:
- レポジトリ:ソース画像のリポジトリを表します
- TAG:ミラーラベル
- 画像ID:IDミラーリング
- CREATED:画像作成時間
- SIZE:画像サイズ
同じウェアハウス・ソースは、Ubuntuのウェアハウス・ソースとしてウェアハウス・ソースの異なるバージョンの代わりに、複数のタグを持つことができ、いくつかの異なるバージョン16.04,15.04、等があり、我々は、リポジトリ使用:異なる画像を定義するタグ。
対応する画像出発容器内
我々はUbuntuのシステムイメージのコンテナのバージョン16.04を実行するために使用したい場合は、次のように、コマンドは次のとおりです。
root@ubuntu:~# docker run -it ubuntu:16.04 sh
あなたがUbuntuのシステムイメージのバージョン15.04を使用している場合は、次のように、コマンドは次のとおりです。
root@ubuntu:~# docker run -it ubuntu:15.04 sh
各パラメータの解析:
- ドッキングウィンドウ:バイナリドッカーさん。
- 実行:ドッキングウィンドウは、コンテナとの組み合わせで、実行の前に。
- -it:-iおよび-t実際には、2つのパラメータ、-i:あなたが対話するためのコンテナに入力規格(STDIN)することができます。-t:新しいコンテナに疑似端末または端末を指定します。
- Ubuntuの:15.04ミラーを実行するように指定、ドッカーは、まずローカルホストミラーリングから存在していない場合、ドッカーは公共の倉庫ドッカーハブのミラー・イメージからダウンロードされます、存在しています。
- SH:コマンドを実行します。
新しい画像を入手
私たちはホストに存在しないミラーを使用する場合ドッカー自動的に画像をダウンロードします。我々は、この画像を事前にダウンロードしたい場合は、我々は使用することができdocker pull
、それをダウンロードするには、コマンドを。
root@ubuntu:~# docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
6abc03819f3e: Pull complete
05731e63f211: Pull complete
0bd67c50d6be: Pull complete
Digest: sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000a5
Status: Downloaded newer image for ubuntu:18.04
ダウンロードが完了したら、我々は直接の容器を実行するには、この画像を使用することができます。
ミラーを探します
https://hub.docker.com/:私たちは、ドッカーハブのウェブサイト、ドッカーハブサイトから画像を検索することができます
我々はまた、使用することができdocker search
、画像を検索するためのコマンドを。たとえば、私たちは私たちのWebサービスとしてのhttpdの鏡像を必要とします。我々はできるdocker search
私達の画像を検索するためのhttpdコマンドを見つけることができます。
- NAME:ミラーウェアハウス・ソースの名前
- 説明:ミラーリングの説明
- OFFICIAL:公式リリースドッカーです
ミラーリングプルのhttpd
私たちは、上記のhttpd鏡画像の正式版を使用するコマンドを使用することを決めたdocker pull
画像をダウンロードします。
root@ubuntu:~# docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
743f2d6c1f65: Already exists
c92eb69846a6: Pull complete
2211b052800a: Pull complete
aed180197314: Pull complete
7c472a4980a7: Pull complete
Digest: sha256:a35ad614c1ffc6fe931f12dc42b682edbdcc62cf78d8edc41499dd90ef0f8003
Status: Downloaded newer image for httpd:latest
ダウンロードが完了したら、私たちは、このミラーリングを使用することができます。
ミラーを作成します。
我々は我々のニーズを満たすことができないドッカミラーミラー倉庫からダウンロードしたとき、私たちは二つの方法で画像に変更を加えることができます。
- 1.作成されたコンテナから画像を更新して、この画像を提出
- 2. Dockerfileは、新しいイメージを作成するためのコマンド
更新画像
更新画像前に、我々は、コンテナを作成するためにミラーを使用する必要があります。
root@ubuntu:~# docker run -it ubuntu:16.04 sh
実行中のコンテナにapt-getの更新コマンドを使用して更新しました。
# apt-get update
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]
Get:6 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [844 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1237 kB]
Get:11 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.7 kB]
Get:12 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [556 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.1 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [967 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [19.1 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [7942 B]
Get:17 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [8532 B]
Get:18 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [6113 B]
Fetched 15.8 MB in 8s (1933 kB/s)
Reading package lists... Done
操作を完了した後、コンテナを終了するには、exitコマンドを入力します。
することによりdocker ps -a
、すべてのコンテナを閲覧します:
root@ubuntu:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
12847d9f5071 ubuntu:16.04 "sh" 2 minutes ago Exited (0) 43 seconds ago peaceful_edison
3cec6f5e47c0 httpd "httpd-foreground" 5 minutes ago Exited (0) 5 minutes ago vigilant_heisenberg
この時点で、12847d9f5071コンテナIDは、我々のニーズの変化に応じてコンテナです。私たちは、commitコマンドドッキングウィンドウからコンテナのコピーを提出することができます。
root@ubuntu:~# docker commit -m="has update" -a="yeqing112" 12847d9f5071 yeqing112/ubuntu:v2
sha256:5cce1167ee4c083ff9b87e61a58081805e76d015a12a4811bd152263aa013860
様々なパラメータ:
- -m:提出された情報の説明。
- -a:のミラーリングを指定します。
- 12847d9f5071:コンテナID。
- yeqing112 / Ubuntuの:V2:作成するターゲット画像の名前を指定します。
我々は使用することができますdocker images
私たちの新しいイメージを表示するコマンドをyeqing112 / Ubuntuの:V2:
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yeqing112/ubuntu v2 5cce1167ee4c 2 minutes ago 144MB
ubuntu 16.04 2a697363a870 2 weeks ago 119MB
上記の情報から、我々は以前よりもかなり大きく、更新されたイメージ、いくつかのファイルサイズを確認することができます。
ミラーの構築
上の画像の更新方法に加えて、我々はまた、コマンドを使用することができdocker build
、新たなイメージを構築するためにゼロから。この目的のために、我々は我々のイメージを構築する方法ドッカーを指示する命令のセットが含まれているDockerfileファイルを作成する必要があります。
root@ubuntu:~# cat Dockerfile
FROM ubuntu:16.04
MAINTAINER Fisher "[email protected]"
RUN apt-get update
EXPOSE 22
EXPOSE 80
CMD /bin/bash
各コマンドは、各コマンドは大文字でなければなりません接頭辞、ミラーの上に新しいレイヤーを作成します。
最初のソースを指定するためにどの画像、FROM
RUNコマンドは、ドッキングウィンドウがインストールされているものを、鏡の中のコマンドを実行するよう指示します
ここでは、まだ同じですが、実行apt-get update
updateコマンドを
私たちは、その後を通じてDockerfileファイルを使用してdocker build -t yeqing112/ubuntu:v3
新しいイメージを作成するコマンド。
root@ubuntu:~# root@ubuntu:/home# docker build -t yeqing112/ubuntu:v3 .
Sending build context to Docker daemon 422.4kB
Step 1/6 : FROM ubuntu:16.04
---> 2a697363a870
Step 2/6 : MAINTAINER Fisher "[email protected]"
---> Running in 92229e7a091a
Removing intermediate container 92229e7a091a
---> 9a89f4debc7d
Step 3/6 : RUN apt-get update
---> Running in d709ef335784
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [844 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.7 kB]
Get:10 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [556 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1237 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.1 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [967 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [19.1 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [7942 B]
Get:17 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [8532 B]
Get:18 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [6113 B]
Fetched 15.8 MB in 5s (3051 kB/s)
Reading package lists...
Removing intermediate container d709ef335784
---> 540751496556
Step 4/6 : EXPOSE 22
---> Running in 9ae528bc083f
Removing intermediate container 9ae528bc083f
---> cfccc621a52d
Step 5/6 : EXPOSE 80
---> Running in efd88e9349c1
Removing intermediate container efd88e9349c1
---> 428cb5221a06
Step 6/6 : CMD /bin/bash
---> Running in 2bc08b664f97
Removing intermediate container 2bc08b664f97
---> 9c55ea9b9ee8
Successfully built 9c55ea9b9ee8
Successfully tagged yeqing112/ubuntu:v3
パラメータ:
- -t:作成するターゲット画像の名前を指定します。
- 。:ファイルディレクトリDockerfile、あなたは絶対パスDockerfileを指定することができます
成功を構築した後、使用docker images
ビューミラーを:
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yeqing112/ubuntu v3 9c55ea9b9ee8 9 seconds ago 144MB
yeqing112/ubuntu v2 5cce1167ee4c 16 minutes ago 144MB
ubuntu 16.04 2a697363a870 2 weeks ago 119MB
上記の情報から見て、V2およびV3新たな画像ファイルのサイズが同じであり、二つのミラーのみ行われますapt-get update
ミラーリングされたラベルを設定します
我々は使用することができdocker tag
、ミラーに新しいラベルを追加するには、コマンドを。
root@ubuntu:/home# docker tag 9c55ea9b9ee8 yeqing112/ubuntu:v3-1
ここでは、ミラーのドッキングウィンドウのタグID、9c55ea9b9ee8、ユーザ名、ソース名ミラー(リポジトリ名)と新しいラベル名(タグ)。
ドッキングウィンドウの画像を使用して、コマンドを見ることができ、IDは9c55ea9b9ee8 V3-1ラベルのミラーイメージ以上のものです。
root@ubuntu:/home# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yeqing112/ubuntu v3 9c55ea9b9ee8 21 minutes ago 144MB
yeqing112/ubuntu v3-1 9c55ea9b9ee8 21 minutes ago 144MB
yeqing112/ubuntu v2 5cce1167ee4c 38 minutes ago 144MB
ubuntu 16.04 2a697363a870 2 weeks ago 119MB