1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker | Images #docker

Last updated at Posted at 2014-11-26

Docker | Images #docker

概要

Docker の Images について。

Image とは?

Docker のコンテナの基盤。
Image は Docker Host にダウンロードして利用する。
Host に Image がない場合は、 レジストリからダウンロードされます。
デフォルトのレジストリは Docker Hub の public レジストリです。

Local Host にある Image の確認

docker images コマンドで確認できます

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tomcat              8.0                 5814f70bc700        2 weeks ago         352.6 MB
ubuntu              14.04               5506de2b643b        4 weeks ago         199.3 MB
hello-world         latest              ef872312fe1b        7 weeks ago         910 B
training/webapp     latest              31fa814ba25a        6 months ago        278.8 MB

Image の指定

前述の docker images で確認した REPOSITORY:TAG でイメージを指定できます。
※タグを省略すると latest を指定したことになります。

$ sudo docker run ubuntu:14.04 /bin/echo hoge
hoge
$ sudo docker run tomcat:8.0 /bin/echo hoge
hoge
$ sudo docker run training/webapp /bin/echo hoge
hoge

Image のダウンロード

Image のダウンロードは、実行時に行われますが
事前に行うことも可能です。
事前に行う場合は docker pull を利用します

$ sudo docker images | grep hello-world
$ sudo docker pull hello-world
$ sudo docker images | grep hello-world
hello-world         latest              ef872312fe1b        7 weeks ago         910 B

DockerHub で Image を検索

DockerHub では、多くの人が作成した様々な用途の Image を検索・利用できます。
Docker Hub

また、 docker search コマンドでも検索可能です。

$ sudo docker search middleman
NAME                         DESCRIPTION   STARS     OFFICIAL   AUTOMATED
hivetech/middleman                         0                    [OK]
supaspoida/middleman-nginx                 0
boymaas/middleman-nginx                    0
octohost/middleman-nginx                   0
durdn/middleman-3.2.1                      0

Image の更新

docker commit によって、既存のイメージを更新し、新たなバージョンの Image を作成することができます。

  • インタラクティブモードでコンテナを起動して、 tree を追加インストールしてみます
$ sudo docker run -t -i training/sinatra /bin/bash
root@408666a36ef7:/# which tree
root@408666a36ef7:/# tree -L 1
bash: tree: command not found
root@408666a36ef7:/# apt-get install tree
root@408666a36ef7:/# tree -L 1
.
|-- bin
|-- boot
|-- dev
|-- etc
|-- home
|-- lib
|-- lib64
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- srv
|-- sys
|-- tmp
|-- usr
`-- var
root@408666a36ef7:/# exit
$
  • tree install 済みのイメージを新バージョンとして登録する
$ sudo docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                          PORTS               NAMES
18be000ffcb7        training/sinatra:latest   "/bin/bash"         3 minutes ago       Exited (0) About a minute ago                       silly_hoover
$ sudo docker commit -m="Added tree" -a="tbpgr" 18be000ffcb7 ouruser/sinatra:v2
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ouruser/sinatra     v2                  1a444f8947b7        21 seconds ago      448.3 MB
training/sinatra    latest              f0f4ab557f95        5 months ago        447 MB
  • 新バージョンのイメージを起動してみる
$ sudo docker run -t -i ouruser/sinatra:v2 /usr/bin/tree -L 1
$ sudo docker run -t -i ouruser/sinatra:v2 /usr/bin/tree
-L 1
.
|-- bin
|-- boot
|-- dev
|-- etc
|-- home
|-- lib
|-- lib64
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- srv
|-- sys
|-- tmp
|-- usr
`-- var

Dockerfile による Image の作成

  • Image 作成作業用ディレクトリと Dockerfile のひな形を生成
$ mkdir qiita_scouter
$ cd qiita_scouter
$ touch Dockerfile
  • Dockerfile の編集
    Ubuntu 1404 環境に Ruby をインストールし、 qiita_scouter gem をインストールします。
    qiita_scouter gem
FROM ubuntu:14.04
MAINTAINER tbpgr <tbpgr@tbpgr.jp>
RUN apt-get update && apt-get install -y ruby ruby-dev
RUN gem install qiita_scouter
  • Dockerfile を利用した build
$ sudo docker build -t="tbpgr/qiita_scouter" .
$ sudo docker images | grep tbpgr
tbpgr/qiita_scouter   latest              fcec37091608        59 seconds ago      315.5 MB
  • 作成したイメージを使ってみる
$ sudo docker run -i -t tbpgr/qiita_scouter
root@19b2b4dfec37:/# qiita_scouter h
Commands:
  qiita_scouter analyze         # Analyze qiita power_levels
  qiita_scouter help [COMMAND]  # Describe available commands or one specific command
  qiita_scouter version         # version

Options:
  -h, [--help]     # help message.
      [--version]  # version

root@19b2b4dfec37:/# qiita_scouter analyze tbpgr
ユーザー名: tbpgr 戦闘力: 316642 攻撃力: 41540 知力: 264650 すばやさ: 10452

Image にタグを設定

$ sudo docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tbpgr/qiita_scouter   latest              fcec37091608        19 minutes ago      315.5 MB
$ sudo docker tag fcec37091608 tbpgr/qiita_scouter:v1
$ sudo docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tbpgr/qiita_scouter   latest              fcec37091608        19 minutes ago      315.5 MB
tbpgr/qiita_scouter   v1                  fcec37091608        19 minutes ago      315.5 MB

Image を DockerHub に公開( Private 設定も可 )

$ sudo docker push tbpgr/qiita_scouter

Image を削除

$ sudo docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tbpgr/qiita_scouter   latest              fcec37091608        19 minutes ago      315.5 MB
tbpgr/qiita_scouter   v1                  fcec37091608        19 minutes ago      315.5 MB
r$ sudo docker rmi tbpgr/qiita_scouter:v1
Untagged: tbpgr/qiita_scouter:v1
$ sudo docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tbpgr/qiita_scouter   latest              fcec37091608        19 minutes ago      315.5 MB

参照

【N番煎じ】Ruby で Qiita 戦闘力を計測するQiitaScouter を作ってみた
Docker Official | Working with Docker Images

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?