Dockerイメージをダウンロードしてコンテナを起動するまでの手順

スポンサード リンク

Dockerを初めて使ってみているのでわからないことだらけである。 今回はインストールからUbuntuイメージをダウンロードし, 良く言われるデータの永続性に注意しながらコンテナを起動するところまで 書き残しておく。

Install

$ sudo apt-get install docker.io

インストールしたままではdockerコマンドは実行できない。

$ docker ps
FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?

ユーザ権限でDockerを操作できるように,Dockerグループに追加する。

$ sudo usermod -aG docker <USER>

Usage

Docker imageの検索

$ docker search ubuntu
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                            Ubuntu is a Debian-based Linux operating s...   4122      [OK]
ubuntu-upstart                    Upstart is an event-based replacement for ...   64        [OK]
rastasheep/ubuntu-sshd            Dockerized SSH service, built on top of of...   29                   [OK]
torusware/speedus-ubuntu          Always updated official Ubuntu docker imag...   26                   [OK]
ubuntu-debootstrap                debootstrap --variant=minbase --components...   25        [OK]
consol/ubuntu-xfce-vnc            Ubuntu container with "headless" VNC sessi...   14                   [OK]
ioft/armhf-ubuntu                 [ABR] Ubuntu Docker images for the ARMv7(a...   14                   [OK]
nickistre/ubuntu-lamp             LAMP server on Ubuntu                           8                    [OK]
nickistre/ubuntu-lamp-wordpress   LAMP on Ubuntu with wp-cli installed            5                    [OK]
nimmis/ubuntu                     This is a docker images different LTS vers...   5                    [OK]
nuagebec/ubuntu                   Simple always updated Ubuntu docker images...   5                    [OK]
maxexcloo/ubuntu                  Docker base image built on Ubuntu with Sup...   2                    [OK]
jordi/ubuntu                      Ubuntu Base Image                               1                    [OK]
darksheer/ubuntu                  Base Ubuntu Image -- Updated hourly             1                    [OK]
admiringworm/ubuntu               Base ubuntu images based on the official u...   1                    [OK]
esycat/ubuntu                     Ubuntu LTS                                      0                    [OK]
webhippie/ubuntu                  Docker images for ubuntu                        0                    [OK]
lynxtp/ubuntu                     https://github.com/lynxtp/docker-ubuntu         0                    [OK]
datenbetrieb/ubuntu               custom flavor of the official ubuntu base ...   0                    [OK]
ustclug/ubuntu                    ubuntu image for docker with USTC mirror        0                    [OK]
rallias/ubuntu                    Ubuntu with the needful                         0                    [OK]
konstruktoid/ubuntu               Ubuntu base image                               0                    [OK]
widerplan/ubuntu                  Our basic Ubuntu images.                        0                    [OK]
teamrock/ubuntu                   TeamRock's Ubuntu image configured with AW...   0                    [OK]
life360/ubuntu                    Ubuntu is a Debian-based Linux operating s...   0                    [OK]

Docker imageのダウンロード

$ docker pull ubuntu

Dockerコンテナの起動

$ docker run -it ubuntu /bin/bash

このままでは exit したらコンテナも停止する。 通常の仮想マシンのように,コンテナを起動したままにしたいなら, -d オプションでバックグラウンド起動する。

$ docker run --name ubuntu-container -d -it ubuntu /bin/bash

ここで,

$ docker attach ubuntu-container

してから exit するとDockerコンテナは停止する。 不意の事故を防ぎたいなら,インタラクティブシェルの代わりに ではなくてwhile無限ループを回しておくのも1つの方法である。

$ docker run --name ubuntu-container -d -it ubuntu /bin/sh -c "while true; do sleep 100000; done"

このとき,コンテナを停止するには明示的にstopサブコマンドを発行する。

$ docker stop  ubuntu-container

なお,停止したコンテナ内にあるイメージからの差分データは すべて破棄される ということはない

exit あるいは docker stop した時点では コンテナの差分データは保存されている。 docker start してやれば,再びコンテナ内のデータに アクセスできる。

差分データが消えるのは dokcer rm してコンテナを削除した時点である。

とにかく,コンテナ内のデータは揮発性だと常に意識するに越したことはない。 作業データを永続化したい場合は,ボリュームを追加する。 ここでは,コンテナの /home/ubuntu/ をホストの ~/docker_home に接続する。

$ mkdir ~/docker_home
$ chgrp docker ~/docker_home
$ docker run -v ~/docker_home:/home/ubuntu --name ubuntu-container -d -it ubuntu /bin/bash

ボリューム外のデータもコンテナをコミットすれば, Dockerイメージ化して保存できる。

$ docker commit ubuntu-container ubuntu-container-image
$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu-container-image   latest              174981ce6dc8        11 seconds ago      188.9 MB
ubuntu                   latest              594b6e305389        3 weeks ago         122 MB

Comments !

social