コンテナの実行

保持するイメージ名を指定して docker run コマンドを実行することでコンテナの起動ができます。 試しに CentOS 上で Ubuntu のコンテナを実行し、ディストリビューション名を確認してみます。

[root@localhost etc]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m

[root@localhost etc]# docker run ubuntu:14.04 cat /etc/issue
Ubuntu 14.04.1 LTS \n \l

インタラクティブなコンテナの実行

run コマンドにオプション -t と -i を加えることでインタラクティブなコマンドを実施することができます。

[root@localhost etc]# docker run -t -i ubuntu:14.04 /bin/bash
root@b3a46f6f245c:/# cat /etc/issue
Ubuntu 14.04.1 LTS \n \l

root@b3a46f6f245c:/# pwd
/
root@b3a46f6f245c:/# ls
bin  boot  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var
root@b3a46f6f245c:/# exit
exit

デーモンとしてのコンテナの実行

コンテナをデーモンとして動作させることも可能です。ここでは"hello world"と出力し続けるスクリプトをコンテナで実行させます。

-d をオプションとすることでコンテナをデーモン化します。デーモンとして起動すると、すぐにプロンプトを返してコンテナIDを表示します。 ここでは稼働プロセスの確認と停止も行っています。

[root@localhost etc]# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
14bd7216b2fb3b18d5aab634e3a7c58fb07b81c2f80dbc43f6bed1bd284c33a2
[root@localhost etc]# 
[root@localhost etc]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS              PORTS               NAMES
14bd7216b2fb        ubuntu:14.04        /bin/sh -c 'while tr   About a minute ago   Up About a minute                       prickly_curie       
[root@localhost etc]# docker stop 14b
14b
[root@localhost etc]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost etc]# 

デーモンの標準出力の確認

デーモンとして起動した場合はコンテナの標準出力は抑制され、ログとして保存されています。ログを確認するにはコンテナIDを指定してログコマンド docker logs を発行します。

実行した際に名付けられる名前の指定でもログの確認などは実施できます。

docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
53288ff0393d55d959f6576ff19f469ce98b2432aa0710267172403c60420ed4
[root@localhost etc]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
53288ff0393d        ubuntu:14.04        /bin/sh -c 'while tr   5 seconds ago       Up 4 seconds                            sleepy_engelbart    
[root@localhost etc]# docker logs 53288ff0393d
hello world
hello world
hello world
<...>
[root@localhost etc]# docker logs sleepy_engelbart
hello world
hello world
hello world
<...>

run コマンドのオプション

docker run と打つことで、指定可能なオプション一覧が確認できます。

[root@localhost etc]# docker run

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

  -a, --attach=[]            Attach to stdin, stdout or stderr.
  -c, --cpu-shares=0         CPU shares (relative weight)
  --cidfile=""               Write the container ID to the file
  --cpuset=""                CPUs in which to allow execution (0-3, 0,1)
  -d, --detach=false         Detached mode: Run container in the background, print new container id
<...>