この記事で使っているdockerは以下の通りです。
Docker version 1.12.1, build 6f9534c
ここまでチュートリアル的なものを4編やってきました。
Docker初心者による、初心者のためのDocker入門 #1
http://qiita.com/furu8ma/items/e8249ddd48fab42eb7a3
Docker初心者による、初心者のためのDocker入門 #2
DockerfileでApache+PHPの環境を構築する
http://qiita.com/furu8ma/items/5d0c35c29e53429e4f10
Docker初心者による、初心者のためのDocker入門 #3
DockerでapacheとMemcachedを起動してPHP7から接続してみる
http://qiita.com/furu8ma/items/10be650bc38b170b8cc6
Docker初心者による、初心者のためのDocker入門 #4
DockerでapacheとMemcachedを起動してPHP5.4から接続してみる
http://qiita.com/furu8ma/items/10be650bc38b170b8cc6
手元のPC上でDockerを使う分にはだいぶ困らなくなってきたのでは、と思います。
ここらでユーケース別に使用するDockerコマンドをまとめてみます。
docker imageをpullしすぎて容量が足りない
2G超とかどてかいイメージもあるのでガンガンpullしてるとわりとすぐ発生しますね。
そんな時はまず手元にあるimageを確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest 88e010fa60ea 43 hours ago 419.4 MB
redis latest d017c068a149 44 hours ago 182.9 MB
mysql latest 18f13d72f7f0 47 hours ago 383.4 MB
sameersbn/gitlab latest 5b2ae4a2a4a4 3 days ago 758.7 MB
nginx latest 4efb2fcdb1ab 4 weeks ago 183.4 MB
memcached 1.4 bb1778ef7d3a 4 weeks ago 128.2 MB
centos 6 a3c09d36ab4a 8 weeks ago 194.6 MB
centos 6.8 a374fd62f97f 12 weeks ago 194.5 MB
こんな感じで手元にあるimageが全て表示されます。この中で例えばngixを消したい場合には
$ docker rmi 4efb2fcdb1ab #nginxのIMAGEID
Untagged: nginx:latest
Untagged: nginx@sha256:d33834dd25d330da75dccd8add3ae2c9d7bb97f502b421b02cecb6cb7b34a1b6
Deleted: sha256:4efb2fcdb1ab05fb03c9435234343c1cc65289eeb016be86193e88d3a5d84f6b
Deleted: sha256:cecce1fbb03126a5fdc7a04401af744f060da808d33efb6872f689b3b4792b9e
Deleted: sha256:d53955d1e5caf011fc6b877266af9db6c575517c791dd1cd59ee1cf00e06086a
このイメージに依存しいてるイメージがなければさくっと消えます。
ちなみに、IMAGEIDはフルで指定する必要はなく、先頭の3文字くらいでもOKです。この場合4efでもOK。
ようは手元にあるimageの中で一意に識別できる部分だけで良いということです。楽ですね〜。
今走っているdockerコンテナを確認したい
コンテナは勝手にお亡くなりになることもよくあるので、今存命中のコンテナを確認したいこともよくあります。
そんなときは
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a81565c00340 wordpress "/entrypoint.sh apach" 46 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp tmp_wordpress_1
a64041f63295 mysql "docker-entrypoint.sh" 47 seconds ago Up 7 seconds 3306/tcp tmp_mysql_1
9b06bdf8dc6a sameersbn/mysql:latest "/sbin/entrypoint.sh " 47 minutes ago Up 45 minutes 3306/tcp tmp_gitlab-mysql_1
4c31d20f9190 sameersbn/redis:latest "/sbin/entrypoint.sh" 47 minutes ago Up 45 minutes 6379/tcp tmp_gitlab-redis_1
走っているコンテナがたくさん見えます。
今走っているdockerコンテナを停止したい
そんな時はdocker ps
でCONTAINER IDを確認したあと
$ docker kill 4c31d20f9190 # killしたいCONTAINER ID
で停止します。
既に停止したコンテナも含めて全て確認したい
停止したコンテナ群も含めて全て確認できます。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a81565c00340 wordpress "/entrypoint.sh apach" 5 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp tmp_wordpress_1
a64041f63295 mysql "docker-entrypoint.sh" 5 minutes ago Up 4 minutes 3306/tcp tmp_mysql_1
2734d0bd3dd3 sameersbn/gitlab:latest "/sbin/entrypoint.sh " 52 minutes ago Exited (1) 49 minutes ago tmp_gitlab_1
9b06bdf8dc6a sameersbn/mysql:latest "/sbin/entrypoint.sh " 52 minutes ago Up 50 minutes 3306/tcp tmp_gitlab-mysql_1
4c31d20f9190 sameersbn/redis:latest "/sbin/entrypoint.sh" 52 minutes ago Exited (137) About a minute ago tmp_gitlab-redis_1
STATUSにexitedと出ているのが停止したコンテナです。
この停止したコンテナが残っていると、コンテナが使用しているdocker imageが削除できなくなるので削除します。
既に停止したコンテナを削除したい
$ docker rm 4c31d20f9190 # CONTAINER ID
コンテナにログインしたい
なんでこのコンテナはちゃんとうごいてくれないんだーとか、中を覗きたいことは結構あります。
そんな時はこれ。
$ docker exec -it a81565c00340 /bin/bash
-itの後に指定しているのはdocker ps
でわかるCONTAINER IDです。
日常的なコンテナの起動にはComposeを使うので、停止、削除関連にdockerコマンドが大活躍です。
参考になれば。