Dockerイメージの使用法


コンテナーを実行するときに、使用されるイメージがローカルに存在しない場合、docker はそれを docker イメージ ウェアハウスから自動的にダウンロードします。デフォルトでは、Docker Hub のパブリック イメージ ソースからダウンロードされます。

以下を学びましょう:

  • 1. ローカル Docker ホストイメージを管理および使用します

  • 2. イメージリストを作成します


ローカルミラーをリストするには、

docker イメージ

を使用できます。ザ・ホスト。

php@php:~$ docker images           
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               90d5884b1ee0        5 days ago          188 MB
php                 5.6                 f40e9e0f10c8        9 days ago          444.8 MB
nginx               latest              6f8d099c3adc        12 days ago         182.7 MB
mysql               5.6                 f2e8d6c772c0        3 weeks ago         324.6 MB
httpd               latest              02ef73cf1bc0        3 weeks ago         194.4 MB
ubuntu              15.10               4e3b13c8a266        4 weeks ago         136.3 MB
hello-world         latest              690ed74de00f        6 months ago        960 B
training/webapp     latest              6fae60ef3446        11 months ago       348.8 MB
各オプションの説明:

    REPOSTITORY:
  • 画像のウェアハウスソースを示します

  • TAG:
  • 画像のタグ

  • IMAGE ID:
  • 画像ID

  • CREATED:
  • イメージ作成時間

  • SIZE:
  • イメージサイズ

    同じウェアハウス ソースは、このウェアハウス ソースの異なるバージョンを表す複数の TAG を持つことができます。たとえば、ubuntu ウェアハウス ソースには、次のタグがあります。 15.10、14.04 などのさまざまなバージョンでは、REPOSTITORY:TAG を使用してさまざまなイメージを定義します。
したがって、バージョン 15.10 の ubuntu システム イメージを使用してコンテナーを実行する場合、コマンドは次のようになります:

php@php:~$ docker run -t -i ubuntu:15.10 /bin/bash 
root@d77ccb2e5cca:/#

バージョン 14.04 の ubuntu システム イメージを使用してコンテナーを実行する場合、コマンドは次のようになります。次のように:

php@php:~$ docker run -t -i ubuntu:14.04 /bin/bash 
root@39e968165990:/#

イメージのバージョン ラベルを指定しない場合、たとえば、ubuntu のみを使用する場合、docker はデフォルトで ubuntu:latest イメージを使用します。

新しいイメージを取得します


ローカル ホスト上に存在しないイメージを使用する場合、Docker はイメージを自動的にダウンロードします。このイメージを事前にダウンロードしたい場合は、docker pull コマンドを使用してダウンロードできます。

Cphp@php:~$ docker pull ubuntu:13.10
13.10: Pulling from library/ubuntu
6599cadaf950: Pull complete 
23eda618d451: Pull complete 
f0be3084efe9: Pull complete 
52de432f084b: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3
Status: Downloaded newer image for ubuntu:13.10

ダウンロードが完了したら、このイメージを直接使用してコンテナを実行できます。

イメージの検索

Docker Hub Web サイトからイメージを検索できます。Docker Hub の URL は次のとおりです。
https://hub.docker.com/

docker search コマンドを使用してイメージを検索することもできます。たとえば、Web サービスとして httpd ミラーが必要です。 docker search コマンドを使用して httpd を検索し、適切なイメージを見つけることができます。
php@php:~$  docker search httpd

docker35.pngNAME:

イメージウェアハウスソースの名前

DESCRIPTION:

画像の説明

OFFICIAL:

Dockerは正式にリリースされましたか?

画像をドラッグ


上の画像 httpd イメージの正式バージョンの場合は、コマンド docker pull を使用してイメージをダウンロードします。

php@php:~$ docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
8b87079b7a06: Pulling fs layer 
a3ed95caeb02: Download complete 
0d62ec9c6a76: Download complete 
a329d50397b9: Download complete 
ea7c1f032b5c: Waiting 
be44112b72c7: Waiting

ダウンロードが完了したら、この画像を使用できます。

php@php:~$ docker run httpd

イメージを作成する


Docker イメージ ウェアハウスからダウンロードしたイメージがニーズを満たさない場合、次の 2 つの方法でイメージを変更できます。

1. 作成済みのコンテナから画像を更新し、この画像を送信します
  • 2. Dockerfile コマンドを使用して新しいイメージを作成します


イメージを更新します

イメージを更新する前に、イメージを使用してコンテナーを作成する必要があります。
php@php:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#
は、実行中のコンテナ内で apt-get update コマンドを使用して更新します。

操作が完了したら、exitコマンドを入力してコンテナを終了します。

現時点での ID e218edb10161 のコンテナーは、ニーズに応じて変更されたコンテナーです。コマンド docker commit を通じてコン​​テナーのコピーを送信できます。

php@php:~$ docker commit -m="has update" -a="php" e218edb10161 php/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

各パラメータの説明:

  • -m:投稿された説明情報

  • -a:指定された画像作者

  • e218edb10161:コンテナID

  • php/ubuntu ; コンテナを開始するには

    php@php:~$ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    php/ubuntu       v2                  70bf1840fd7c        15 seconds ago      158.5 MB
    ubuntu              14.04               90d5884b1ee0        5 days ago          188 MB
    php                 5.6                 f40e9e0f10c8        9 days ago          444.8 MB
    nginx               latest              6f8d099c3adc        12 days ago         182.7 MB
    mysql               5.6                 f2e8d6c772c0        3 weeks ago         324.6 MB
    httpd               latest              02ef73cf1bc0        3 weeks ago         194.4 MB
    ubuntu              15.10               4e3b13c8a266        4 weeks ago         136.3 MB
    hello-world         latest              690ed74de00f        6 months ago        960 B
    training/webapp     latest              6fae60ef3446        12 months ago       348.8 MB

    イメージをビルドします
コマンド

docker build を使用して、新しいイメージを最初から作成します。これを行うには、イメージの構築方法を Docker に指示するための一連の命令を含む Dockerfile を作成する必要があります。

php@php:~$ docker run -t -i php/ubuntu:v2 /bin/bash                            
root@1a9fbdeb5da3:/#
各コマンドは画像上に新しいレイヤーを作成します。各コマンドの接頭辞は大文字である必要があります。

最初の FROM は、使用するイメージ ソースを指定します。

RUN コマンドは、イメージ内のコマンドを実行し、何をインストールするかを docker に指示します。 。 。

次に、Dockerfile ファイルを使用して、docker build コマンドを通じてイメージをビルドします。
php@php:~$ cat Dockerfile 
FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd php
RUN     /bin/echo 'php:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

パラメータの説明:

-t

: 作成するターゲットイメージ名を指定します

.

: Dockerfileファイルが配置されているディレクトリ。Dockerfileの絶対パスを指定できます

    Docker イメージを使用して作成を表示します イメージは既にリストに存在し、イメージ ID は 860c279d2fec です
  • php@php:~$ docker build -t php/centos:6.7 .
    Sending build context to Docker daemon 17.92 kB
    Step 1 : FROM centos:6.7
     ---> d95b5ca17cc3
    Step 2 : MAINTAINER Fisher "fisher@sudops.com"
     ---> Using cache
     ---> 0c92299c6f03
    Step 3 : RUN /bin/echo 'root:123456' |chpasswd
     ---> Using cache
     ---> 0397ce2fbd0a
    Step 4 : RUN useradd php
    ......

    新しいイメージを使用してコンテナを作成できます

    php@php:~$ docker images 
    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
    php/centos       6.7                 860c279d2fec        About a minute ago   190.6 MB
    php/ubuntu       v2                  70bf1840fd7c        17 hours ago         158.5 MB
    ubuntu              14.04               90d5884b1ee0        6 days ago           188 MB
    php                 5.6                 f40e9e0f10c8        10 days ago          444.8 MB
    nginx               latest              6f8d099c3adc        12 days ago          182.7 MB
    mysql               5.6                 f2e8d6c772c0        3 weeks ago          324.6 MB
    httpd               latest              02ef73cf1bc0        3 weeks ago          194.4 MB
    ubuntu              15.10               4e3b13c8a266        5 weeks ago          136.3 MB
    hello-world         latest              690ed74de00f        6 months ago         960 B
    centos              6.7                 d95b5ca17cc3        6 months ago         190.6 MB
    training/webapp     latest              6fae60ef3446        12 months ago        348.8 MB
    上記から、新しいイメージが既に作成されていることがわかります作成したユーザー php が含まれています

  • イメージ タグを設定します

    docker tag コマンドを使用して、イメージに新しいタグを追加できます。

    php@php:~$ docker run -t -i php/centos:6.7  /bin/bash
    [root@41c28d18b5fb /]# id php
    uid=500(php) gid=500(php) groups=500(php)

    dockerタグのイメージID、ここでは860c279d2fec、ユーザー名、イメージソース名(リポジトリ名)、新しいタグ名(タグ)です。
docker image コマンドを使用すると、ID 860c279d2fec のイメージにもう 1 つのラベルがあることがわかります。

りー