Docker - 基本的な使い方
Windows10でDocker Toolboxを使っています。
Dockerのアップデート
今のバージョンを確認します。
$ docker -vDocker version 1.12.2, build bb80604
まずDocker Toolbox自体をアップデートさせます。ここからWin用をダウンロードして実行したらできると思います。
$ docker -vDocker version 17.03.0-ce, build 60ccb22 なんだこれは全然違う。半年も経ってないのに。
$ docker versionClient: Version: 17.03.0-ce API version: 1.24 (downgraded from 1.26) Go version: go1.7.5 Git commit: 60ccb22 Built: Thu Mar 2 01:11:00 2017 OS/Arch: windows/amd64
Server: Version: 1.12.2 API version: 1.24 (minimum version ) Go version: go1.6.3 Git commit: bb80604 Built: Tue Oct 11 17:00:50 2016 OS/Arch: linux/amd64 Experimental: falseClient/Serverのバージョンのようです。ちょっと前までは、docker -vとやるとサーバのバージョンが出てたけど、今はクライアントのバージョンがでているようです。
Dockerの使い方概要
Docker Hubからdockerイメージを探して、docker pullでイメージをダウンロードして、docker runでコンテナを作成・実行します。
Docker Hub
ここにDocker Hubがあります。沢山イメージがあります。
dockerイメージを落とす
docker pullコマンドでイメージをローカルに落とせます。docker pull rubyとやるとrubyのイメージがダウンロードされます。このrubyは何かというと、ここにあります。ruby:2.4.1というように、[:]の後にタグをつけることもできます。タグは、基本バージョンになります。latestというタグを使うと、最新版をpullできます。
$ docker pull ruby:latestdockerイメージ一覧を確認する
docker imagesコマンドで、ローカルのイメージ一覧が確認できます。
$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEruby latest d2cee8adb148 5 days ago 678 Mコンテナを作成・実行する
docker runコマンドでコンテナを作ります。コマンドの使い方は下記です。
$ docker run [オプション] [—name {コンテナー名}] {イメージ名}[:{タグ名}] [コンテナーで実行するコマンド] [引数]
コンテナ名rubyのrubyイメージのコンテナを作成する場合下記になります。
$ docker run --name ruby ruby:latest-i オプションをつけると、標準入力が開きます。rubyコンテナの標準入力を開いたらirbが起動しました。一度docker runで作成・実行したコンテナは、処理が終わるとすぐに停止しますが、コンテナとしては停止中の状態で存在しています。よって、再度上記docker runコマンドを実行すると下記のようなエラーになります。docker runコマンドはコンテナが存在しない状態で新たに作成する際に使用するコマンドです。
Error response from daemon: Conflict. The name “/ruby” is already in use by container 8504a9a10098ff4a5f3b680adc74ba625a3b39dd6cc332485d96d9cbbdac951f. You have to remove (or rename) that container to be able to reuse that name.
停止中のコンテナを再実行する場合は、docker startコマンドを利用します。使い方は下記になります。コンテナIDは、次のdockerコンテナの一覧を表示させるとCONTAINER IDというのが確認できます。
$ docker start [-i] {コンテナー名}|{コンテナーID}
先程のrubyコンテナの標準入力を開く場合は、下記のようにします。
$ dcoker start -i rubydockerコンテナの一覧を確認する
docker psコマンドを使います。-a オプションを使うと停止中コンテナも表示されます。
$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8504a9a10098 ruby:latest "irb" 2 minutes ago Exited (0) 50 seconds ago rubydockerコンテナを削除する
docker rmコマンドを使います。削除対象を指定するには、コンテナ名かコンテナIDを使います。
$ dcoker rm ruby