Dockerコマンドを学ぶ

■ 目次

  1. 概要
  2. おさらい
  3. インストール
  4. 最低限実行するコマンド
  5. その他コマンド

■ 概要

前回 Docker入門の入門 にて
Dockerがどういった物かについて調べたので今回は実際にどういうコマンドで実現していくかを見て行きます

続き → Docker Hubを使ってGitHubにあるDockerfileからimageを自動生成する
さらにその続き → 個人開発環境作成のためのDockerfileメモ

■ おさらい

前回こんな図を使って軽く説明しました

docker03

今回は①~④まで
Docker Hubからimageを取得してcontainerを立ち上げてDocker Hubに登録するところまでを学びます

■ インストール

CentOS 6系の人向け

$ cat /etc/redhat-release
CentOS release 6.6 (Final)

epelリポジトリを追加する ※既に入っている人は不要

// それっぽいファイルがあれば大丈夫
$ ls -l /etc/yum.repos.d/epel*
-rw-r--r--. 1 root root 1056 11月  5 12:52 2012 /etc/yum.repos.d/epel-testing.repo
-rw-r--r--. 1 root root  957 11月  5 12:52 2012 /etc/yum.repos.d/epel.repo

// epelがない人は以下を使って追加する
$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
$ sudo rpm -ivh epel-release-6-8.noarch.rpm

dockerをinstallする

$ sudo yum install -y docker-io

// サービススタート
$ sudo service docker start

// システム起動時に自動起動する
$ sudo chkconfig docker on

versionの確認

$ docker -v
Docker version 1.7.1, build 786b29d/1.7.1

■ 最低限実行するコマンド

いきなりあれやこれ言われても想像しづらいと思いますので①~④を実行する上での最低限必要なコマンドを使います

Docker Hubからimageを持ってくる

$ sudo docker pull centos

imageからcontainerを作成し
containerの中でターミナルを立ち上げる

// -i:インタラクティブモードにする
// -t:imageを指定して/bin/bashとしてシェルを立ち上げる
// -d:コンテナをバックグランドで動かす
// --name:コンテナの名前
$ sudo docker run -itd --name mycentos centos /bin/bash

containerに接続する

$ sudo docker attach mycentos

※ 注意
一度attachしてexitするとcontainerは停止してしまう
再度起動させる場合はdocker start mycentosとして立ち上げてから再度attachする

何かファイルを作成してそのファイルを含めて新しいimageを作成する
まずはファイル作成してcontainerを抜ける

# touch /tmp/test.txt
# exit

imageを作成する

$ sudo docker commit mycentos tomsato/hello

DockerHubにimageをpushする

$ sudo docker login
Username: tomsato
Password:
Email: xxxxx@gmail.com
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded

$ sudo docker push tomsato/hello

DockerHubで検索すると追加されていることが分かる
https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=tomsato&starCount=0

■ その他コマンド

imageを検索する
DockerHubのサイトで調べられるがコマンドライン上からでも調べられる

$ sudo docker search [search word]
$ sudo docker search centos | head
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                          The official build of CentOS.                   2054      [OK]
jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8...   18                   [OK]
jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   14                   [OK]

所持しているimage一覧を取得する

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED                  VIRTUAL SIZE
centos              latest              bb3d629a7cbc        Less than a second ago   196.6 MB
tomsato/hello       latest              5d13dc0dd584        17 minutes ago           196.6 MB

所持しているimageの削除

$ sudo docker rmi [image name]
$ sudo docker rmi tomsato/hello

container一覧を取得する

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

// -a:動作が終了したコンテナも含めて取得する
$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
94eb737d2cc1        centos              "/bin/bash"         27 minutes ago      Exited (0) 21 minutes ago                       mycentos

containerの削除

$ sudo docker rm [container name]
$ sudo docker rm mycentos

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です