エンジニアになりたい

立派なエンジニアに憧れるへっぽこエンジニアのメモ書き

Dockerのコマンドメモ

ドットインストールでDocker入門を受講したので学んだことをメモしておきます。
ほぼコマンドのみです。
詳細は公式サイトを。 https://www.docker.io/

1. VagrantUbuntu 環境構築

  1. Ubuntu Box の追加
    http://www.vagrantbox.es/ からUbuntu の64bit版のURLを取得して下記コマンドを実行

     $ vagrant box add trusty64 http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
    
  2. ディレクトリを作成してinit

     $ mkdir docker
     $ cd docker
     $ vagrant init trusty64
    
  3. Vagrantfile の編集

     $ vi Vagrantfile
    

    config.vm.networkの行をコメントインして適当なIPアドレスを割り振る

  4. Vagrantの起動/接続

     $ vagrant up
     $ vagrant ssh
    

2. Docker インストール

参考 : http://docs.docker.io/installation/ubuntulinux/

  • インストール

      $ sudo apt-get update
      $ sudo apt-get install docker.io
      $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
      # 確認
      $ docker --version      
    

3. Imageの操作

  • Docker Index から Image を取得
    サイトURL : https://index.docker.io/

      # コマンドでの検索
      $ sudo docker search centos | more
    
      # Imageの取得
      $ sudo docker pull centos
    
  • Imageの確認

      $ sudo docker images
    
  • Imageの詳細

      $ sudo docker inspect <名前[:タグ] or IMAGE ID>
    
  • Imageの削除

      $ sudo docker rmi <名前[:タグ] or IMAGE ID>
    

4. Containerの操作

  • Containerを起動してContainer上でコマンド実行

      $ sudo docker run <Image名> <コマンド>
      # 例
      $ sudo docker run <Image名> echo "Hello world"
    
  • 実行中のContainerを表示

      $ sudo docker ps
    
  • 動作が終了したContainerを表示

      $ sudo docker ps -a
    
  • 最新の5つのContainerを表示

      $ sudo docker ps -a -n=5
    
  • Containerを削除

      $ sudo docker rm <CONTAINER ID>
    
  • バックグラウンドで実行

      $ sudo docker run -d <Image名> <コマンド>
      # 例
      $ sudo docker run -d centos free -s 3
    
  • 実行中のContainerのログをみる

      $ sudo docker logs <CONTAINER ID>
    
  • バックグラウンドで実行中のものをフォアグラウンドへ

      $ sudo docker attach --sig-proxy=false <CONTAINER ID>
      # ctrl + c で抜ける
    
  • 実行中のタスクをkill

      $ sudo docker kill <CONTAINER ID>
    
  • タスクの再開

      $ sudo docker start <CONTAINER ID>
    
  • Containerの中に入る

      $ sudo docker run -i -t <Image名> /bin/bash
    

5. Imageの作成

  • Imageの作成

      $ sudo docker commit <CONTAINER ID> <作成するImageの名前>
    

6. Dockerfileの使用

  • Dockerfileを作成することによってImageからContainerを作成し、変更を加え、それを元にImageを作成する一連の処理をスクリプト化することができる.

      $ vi Dockerfile
    
  • DockerFileの書き方

      FROM <元になるImage名>
      MAINTAINER <作成者>
      RUN <buildする時に実行されるコマンド(インストールなど)>
      CMD <runするときに実行されるコマンド>
      # CMD ["コマンド", "コマンド"] のような書き方が推奨されている
      # 例えば 
      CMD echo "now, runninng..." 
      # ならば 以下のように書ける
      CMD ["echo", "now runninng..."]
    
    
      # 例)
      FROM centos
      MAINTAINER name <mailaddress@hoge.com>
      RUN echo "now building..."
      CMD ["echo", "now runninng..."]
    
  • カレントディレクトリにあるDockerfileを使用してビルドする場合のコマンド

      $ sudo docker build -t <新しいImage名> .