いちあおの日記

いちあおの日記です

Docker をはじめて少し使ってみました

Docker を少しさわってみたので、基本的な使い方とコマンドについて簡単に書きます。

環境は Windows 10 (64bit) です。

Docker とは

アプリケーションの実行に必要なもの(OS、WEBサーバー、データベースとか)をまるごとまとめて簡単に管理できる便利ツールです。

設定をまとめたものを Docker イメージと呼びます。

Ubuntu 用イメージや MySQL 用イメージ、nginx 用イメージなどがあり、これらを組み合わせて Docker コンテナ を作成します。

Docker コンテナが独立したサーバー機能を実現します。

Docker Hub

Docker Hub にいろいろイメージがあります:https://hub.docker.com

準備

Windows なら公式サイトから Docker Tools をインストールします。

いちあおは DockerToolbox-1.12.2.exe という名前のインストールファイルでした。

Git や VirtualBox も一緒にインストールできますが、いらなければチェックを外しておきます。

Docker Quickstart Terminal からコンソールを起動します。

Docker を実行:

docker-machine ssh default

適当な ssh クライアントを使うと便利です:

  • ホスト名 : 192.168.99.100
  • ユーザー名 : docker
  • パスワード : tcuser

イメージ関連のコマンド

Docker イメージのダウンロード:

docker pull ubuntu:latest

latest の箇所はタグ名で、latest は最新バージョンを意味します。

タグ名を省略すると最新バージョンになります。

イメージの一覧:

docker images

イメージの情報:

docker inspect ubuntu

イメージの情報のうち OS の値を表示

docker inspect --format="{{ .Os }}" ubuntu

イメージの検索:

docker search ubuntu

スター 30 以上のイメージを検索:

docker search ubuntu --stars=30

イメージの削除:

docker rmi ubuntu

Docker Hub 関連のコマンド

Docker Hub にログイン:

docker login [サーバ名]

Docker Hub にアップロード:

docker push ユーザー名/イメージ名:[タグ名] [サーバ名]

Docker Hub からログアウト:

docker logout [サーバ名]

コンテナ関連のコマンド

コンテナ生成/起動の対話的実行:

docker run -it --name "test" ubuntu /bin/bash

"test" の箇所はコンテナ名です。

コマンドの引数のコンテナIDの代わりに使えます。

下記のようにすると exitbash から抜けても再起動がかかるようになります:

docker run -it --restart=always ubuntu /bin/bash

コンテナ生成/起動のバックグラウンド実行:

docker run -d ubuntu /bin/ping localhost  

このように -d オプションをつけるとバックグラウンドで実行されます。

ログの確認:

docker logs [コンテナID]

オプション -t をつけるとタイムスタンプも表示します。

稼働コンテナ一覧:

docker ps

オプション -a をつけると停止中のものも表示します。

オプション --format で出力形式を指定できます:

docker ps -a --format="table {{ .CreatedAt}}\t{{ .ID }}\t{{ .Image}}\t{{ .Status }}\t{{ .RunningFor }}"

コンテナの稼働確認:

docker stats [コンテナID]

コンテナの中断:

docker pause [コンテナID]

コンテナの再開:

docker restart [コンテナID]

コンテナ再起動:

docker restart [コンテナID]

コンテナ停止:

docker stop [コンテナID]

コンテナ起動:

docker start [コンテナID]

コンテナ削除:

docker rm [コンテナID]

コンテナ一括削除:

docker rm $(docker ps -a -q)

コンテナ一括削除(起動中のも):

docker rm -f $(docker ps -a -q)

コンテナの名前変更:

docker rename [変更前コンテナ名] [変更後コンテナ名]

Docker Content Trust (DCT)

第三者からのなりすまし、改ざんを防ぐための機能です。

デフォルトでは無効です。

DCT の有効化:

export DOCKER_CONTENT_TRUST=1

DCT の無効化:

export DOCKER_CONTENT_TRUST=0

一時的に無効/有効化することもできます:

docker pull --disable-content-trust=false ubuntu:latest
docker pull --disable-content-trust ubuntu:latest

つづく..._〆(≡q )