LoginSignup
7
8

More than 5 years have passed since last update.

Dockerまとめ

Last updated at Posted at 2015-07-03

導入

導入したPCがWindowsのため、Windowsをベースに説明します。
まずはこちらからインストーラをダウンロードし、インストールします。
インストールすると、Docker Quickstart Terminalというショートカットができます。
※2016-07-20追記:Docker Toolboxなるものが出たようで、上記リンクをそちらに変更しました。

ログイン

Docker Quickstart Terminalを起動すると、コマンドプロンプトが立ち上がります。
直接、dockerコマンドを打ってもいいですし、

$ docker
Usage: docker [OPTIONS] COMMAND [arg...]

A self-sufficient runtime for linux containers.

Options:
  -D, --debug=false                                                     Enable debug mode
  -d, --daemon=false                                                    Enable daemon mode
  -H, --host=[]                                                         Daemon socket(s) to connect to
  -h, --help=false                                                      Print usage
  -l, --log-level=info                                                  Set the logging level
  ・
  ・
  ・
    top       Lookup the running processes of a container
    unpause   Unpause a paused container
    version   Show the Docker version information
    wait      Block until a container stops, then print its exit code

Run 'docker COMMAND --help' for more information on a command.

$

または、boot2docker sshコマンドでVMにログインしてから、dockerコマンドを使うこともできます。

$ boot2docker ssh
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.6.2, build master : 4534e65 - Wed May 13 21:24:28 UTC 2015
Docker version 1.6.2, build 7c8fca2
docker@boot2docker:~$

Dockerイメージからのサーバ作成

dockerイメージからサーバを作ってみます。仮にcentosをベースにサーバを作るとします。その場合、docker searchコマンドを使うと簡単にdockerイメージを見つけることができます。

docker@boot2docker:~$ docker search centos
NAME                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                        The official build of CentOS.                   1094      [OK]
tutum/centos                  Centos image with SSH access. For the root...   13                   [OK]
blalor/centos                 Bare-bones base CentOS 6.5 image                9                    [OK]
torusware/speedus-centos      Always updated official CentOS docker imag...   6                    [OK]
million12/centos-supervisor   Base CentOS-7 with supervisord launcher, h...   5                    [OK]
jdeathe/centos-ssh            CentOS-6 6.6 x86_64 / EPEL Repo. / OpenSSH...   3                    [OK]
layerworx/centos              A general CentOS 6 image with the EPEL6 an...   2                    [OK]
jdeathe/centos-ssh-mysql      CentOS-6 6.6 x86_64 / MySQL.                    2                    [OK]
pdericson/centos              Docker image for CentOS                         0                    [OK]
nathonfowlie/centos-jre       Latest CentOS image with the JRE pre-insta...   0                    [OK]

野良Dockerイメージも多数いるとの情報もあるため、(企業で使う場合であれば特に)公式のイメージを使いましょう。今回はOFFICIALフラグが立っている「centos」を使います。

では早速。

docker@boot2docker:~$ docker pull centos
latest: Pulling from centos
c852f6d61e65: Pull complete
7322fbe74aa5: Already exists
f1b10cd84249: Already exists
centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:a4627c43bafc86705af2e8a5ea1f0ed34fbf27b6e7a392e5ee45dbd4736627cc
Status: Downloaded newer image for centos:latest
docker@boot2docker:~$

そして、、、

docker@boot2docker:~$ docker run -i -t --name guest centos:latest /bin/bash
[root@557d34c7c799 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@557d34c7c799 /]#

これでサーバが作成され、ログインできました。簡単すぎます。exitでログアウトできます。
一度ログアウトしてしまっても、docker startからのdocker attachで再度ログインすることができます。しかし、docker startdocker attachする際には、コンテナIDなるものが必要です。コンテナIDはdocker psで調べられます。

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

あれ?何も表示されないと驚いた方。docker ps -aと打ってみてください。

$ docker ps -a
CONTAINER ID        IMAGE                 COMMAND            CREATED             STATUS                       PORTS           NAMES
557d34c7c799        centos:latest         "/bin/bash"        24minutes ago       Exited (0) 15 minutes ago                    guest
・
・
・

表示されました。これはコンテナは存在するけど停止している状態です。コンテナを起動する際にはdocker start [コンテナID]と打ちます。
え??コンテナID??この10桁以上の乱数みたいなやつ??
コンテナIDをいちいち入力するのが面倒かと思いますが、コンテナIDを一意に特定できるところまで入力すればOKです。地味にこの仕様、個人的にはイケてます。

$ docker start 557
557
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS           PORTS    NAMES
557d34c7c799        centos:latest       "/bin/bash"         30 minutes ago      Up 17 seconds             guest

docker ps -aではなく、docker psで無事にコンテナが表示されました。さらにコンテナにログインするには、docker attach [コンテナID]と打ちます。

$ docker attach 557
[root@557d34c7c799 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

無事にCentOSにログインできました。

Dockerfileを使ってみる

Dockerfileのメンテナンス性を考えると、「boot2docker ssh」ではなく、「docker」コマンドを使うことの方が多いです。

(続く・・・)

7
8
1

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
7
8