サーバ構築

CentOSにdockerインストールしてみる

投稿日:

これからdocker勉強してこうと思うので、とりあえずインストールしてみる。

インストール

  • installスクリプトで依存パッケージ含めてインストールする。
# curl https://get.docker.com > /tmp/install.sh
# cat /tmp/install.sh

# chmod +x /tmp/install.sh
# /tmp/install.sh
  • sudoなしでdocker使用する為の設定
# usermod -aG docker vagrant
  • 起動
$ sudo systemctl start docker
  • 確認
$ docker version
Client:
 Version:   18.04.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    3d479c0
 Built: Tue Apr 10 18:21:36 2018
 OS/Arch:   linux/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.04.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   3d479c0
  Built:    Tue Apr 10 18:25:25 2018
  OS/Arch:  linux/amd64
  Experimental: false

簡単な動作確認

HeloWorld

  • debianイメージを起動してechoコマンドを実行(初回)
$ docker run debian echo "Hello World"
Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
c73ab1c6897b: Pull complete 
Digest: sha256:c908a4fcb2b2a1953bd40ebc12d9a4116868d72540efc27502ee6c2395b8a1e9
Status: Downloaded newer image for debian:latest
Hello World

初回はdebianイメージがないのでダウンロードしてくる。

  • debianイメージを起動してechoコマンドを実行(2回目以降)
$ docker run debian echo "Hello World"
Hello World

2回目以降はdebianイメージがあるので、echoコマンドがすぐ実行される

 コンテナにログイン

  • debianイメージ起動して/bin/bashコマンドを実行
$ docker run -it debian /bin/bash
root@5900060cd16d:/# echo "Hello World"
Hello World
root@5900060cd16d:/# exit
exit

-it をつけることでtty付きインタラクティブモードでプロセス起動する

  • host名をつけてコンテナ起動
$ docker run -h CONTAINER -it debian /bin/bash
root@CONTAINER:/# uname -n
CONTAINER

コンテナ状態確認

  • 実行中のコンテナ確認
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
dcbacd85d7cf        debian              "/bin/bash"         About a minute ago   Up About a minute                       upbeat_mahavira

NAMES はdockerが適当にランダムな名前(有名な科学者、エンジニアなどの名前)をつける。
自分で指定したい場合は、 --name で指定可能

  • 停止したコンテナ含めて全て表示
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES
9cea63df7407        debian              "/bin/bash"              8 minutes ago       Exited (0) 21 seconds ago                          zealous_villani
7b09b5ee8c78        debian              "/bin/bash"              10 minutes ago      Exited (0) 8 minutes ago                           hogehoge
78ead5c47879        debian              "/bin/bash --name ho…"   10 minutes ago      Exited (2) 10 minutes ago                          mystifying_bhabha
dcbacd85d7cf        debian              "/bin/bash"              20 minutes ago      Exited (0) 10 minutes ago                          upbeat_mahavira
3249b6c001f8        debian              "/bin/bash"              25 minutes ago      Exited (0) 25 minutes ago                          trusting_clarke
daadc628ae29        debian              "/bin/bash"              25 minutes ago      Exited (0) 19 minutes ago                          eloquent_ardinghelli
a14cb87cc897        debian              "/bin/bash"              26 minutes ago      Exited (0) 19 minutes ago                          cranky_montalcini
1e9623281757        debian              "/bin/bash"              26 minutes ago      Exited (0) 26 minutes ago                          awesome_mendeleev
8fd27600a847        debian              "/bin/bash"              26 minutes ago      Exited (0) 26 minutes ago                          nifty_cori
5900060cd16d        debian              "/bin/bash"              40 minutes ago      Exited (0) 30 minutes ago                          brave_bose
3f1bf4fa08b9        debian              "/bin/bash"              About an hour ago   Exited (0) About an hour ago                       relaxed_jones
6a9467d90b44        hello-world         "echo 'Hello World'"     About an hour ago   Created                                            quizzical_ride
61d7b3255714        debian              "echo 'Hello World'"     About an hour ago   Exited (0) About an hour ago                       xenodochial_hugle
a4b0ca9be900        debian              "echo 'Hello World'"     About an hour ago   Exited (0) About an hour ago                       quirky_ritchie
fead03fd892a        hello-world         "/hello"                 About an hour ago   Exited (0) About an hour ago                       upbeat_hodgkin
de81e1d114a3        hello-world         "/hello"                 About an hour ago   Exited (0) About an hour ago                       happy_hopper
  • コンテナ詳細(フィルタなし)
$ docker inspect upbeat_mahavira
[
    {
        "Id": "dcbacd85d7cf3aeb96e46b1b0f72ec51a4fc856c37146e6c336d95ee07520c23",
        "Created": "2018-04-18T15:32:27.891120305Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
ry
  • コンテナ詳細(フィルタあり)
$ docker inspect --format {{.NetworkSettings.IPAddress}} upbeat_mahavira 
172.17.0.2
  • 変更履歴
$ docker diff zealous_villani
A /basket
A /basket/bash
A /basket/cat
ry
A /basket/znew
D /bin

A は追加、Dは削除されたファイル

  • そのコンテナでやったこと確認
$ docker logs zealous_villani
root@CONTAINER:/#  
root@CONTAINER:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@CONTAINER:/# 
root@CONTAINER:/# mv /bin /basket

コンテナ削除

  • 名前指定して削除
$ docker rm zealous_villani
zealous_villani
  • 全部削除(statusがexitedのもの)
$ docker rm -v $(docker ps -aq -f status=exited)

コンテナ保存して実行

  • cowsay(コンテナの名前)、イメージ名(cowsayimage)、リポジトリ名(test)を指定
$ docker commit cowsay test/cowsayimage
$ docker run -it test/cowsayimage bash

-サーバ構築
-

Copyright© 明日から頑張ります。 , 2025 All Rights Reserved Powered by STINGER.