emahiro/b.log

日々の勉強の記録とか育児の記録とか。

※ 随時更新 - Docker で よく使うコマンド

Document

https://docs.docker.com/

Commands

pull

 https://docs.docker.com/engine/reference/commandline/pull

rmi

rmi

ImageID か ImageName を指定して docker image を削除する。

docker rmi $ImageID( or $ImageName)

ex. docker rmi (-f) docker/whalesay

images の削除はタグ名を指定しない限りは latest が削除される。

remove images all

https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes

docker images を削除してもコンテナで使用中だと conflict (使用中だよ!)エラーが発生する。
そのため docker ps -a で起動していないか確認し、まず docker stop CONTAINER_ID でコンテナを停止する。
その後 docker rm コンテナID でコテな削除 さらにその後に docker rmi する。

remove none images

qiita.com

tag

docker tag IMAGE_ID {{ REPO_NAME:TAG_NAME }}

none の imageに REPO_NAME と TAG_NAME をつけることができるので none があるときは暫定的な名前とつけることもある。

run

docker コンテナを実行する。これは pull -> create -> start の3コマンドがセットになったもの。

docker コンテナの shell でログインするときに使う

docker run -it {{ IMAGE }} /bin/bash

これが一番簡単。 IMAGE に入るのは mysql:5.7 など {tag}:{version} がイメージ名

ex. docker run -it ubuntu bash
ubuntu の最新のイメージを取得して bash でログインすることができる。

exec

docker コンテナ状でプロセスを実行したいときに使う

例えば mysql のクエリを打ちたい時は以下

docker exec -it {{ container name }} mysql -u root -e "select * from hoge ....;"

※ {{ container name }} は docker ps で出力される NAMES の部分

ImageID, Image Name, ContainerID ContainerName はそれぞれ違う。docker においては Image をベースに作られるのがコンテナ。

inspect

docker inspect emahiro_whalesay

$ docker inspect emahiro_whalesay
[
    {
        "Id": "sha256:6b362a9f73eb8c33b48c95f4fcce1b6637fc25646728cf7fb0679b2da273c3f4",
        "RepoTags": [
            "docker/whalesay:latest",
            "emahiro_whalesay:emahiro",
            "emahiro_whalesay:latest"
        ],
        "RepoDigests": [
            "docker/whalesay@sha256:178598e51a26abbc958b8a2e48825c90bc22e641de3d31e18aaf55f3258ba93b"
        ],
# 略
}

コンテナの設定情報(host名や環境変数、コンテナ実行時のコマンド情報など) が入ってくる。 その他 OS の情報やサイズ、ファイルシステムの情報も含まれる。

stop

コンテナを停止する。

  • 起動中の全コンテナの停止: docker stop $(docker ps -q)
  • 起動中の全コンテナの削除: docker rm $(docker ps -q -a)
  • 前イメージの削除: docker rmi $(docker images -q)

-q optison は ContainerID や ImageID のみを表示する option.

qiita.com