3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker コマンド逆引き(基礎)

Last updated at Posted at 2018-11-06

検索

Docker hub から Docker イメージの検索 search

jenkins のイメージを検索してみる。

$ docker search jenkins
NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jenkins                                Official Jenkins Docker image                   3946                [OK]                
jenkins/jenkins                        The leading open source automation server       1103                                    
jenkinsci/jenkins                      Jenkins Continuous Integration and Deliver...   343                                     
jenkinsci/blueocean                    https://jenkins.io/projects/blueocean           282                                     
jenkinsci/jnlp-slave                   A Jenkins slave using JNLP to establish co...   96                                      [OK]
jenkins/jnlp-slave                     a Jenkins agent (FKA "slave") using JNLP t...   54                                      [OK]
jenkinsci/slave                        Base Jenkins slave docker image                 45                                      [OK]
jenkinsci/ssh-slave                    A Jenkins SSH Slave docker image                34                                      [OK]

Official のイメージのみを検索する。

$ docker search jenkins --filter "is-official=true"
NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jenkins                                Official Jenkins Docker image                   3946                [OK]
ローカル上にある Docker イメージの表示 images
$ docker images
jenkins                    latest              194289d0fefd        9 months ago        809MB
centos                     centos6             609c1f9b5406        10 months ago       195MB
redis                      latest              1fb7b6c8c0d0        13 months ago       107MB
実行中のコンテナの表示 ps
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                          NAMES
6445db2e5bd1        zookeeper           "/docker-entrypoin..."   13 months ago       Up About an hour    2181/tcp, 2888/tcp, 3888/tcp   zookeeper-00
コンテナの詳細情報の表示 inspect
$ docker inspect [CONTAINER_ID]
[
    {
        "Id": "f7be7e43043ea5939c307191fdaecc2cd9eaee55082a9a5a64c6d1b10f9ebe07",
        "Created": "2018-07-10T13:51:19.313846932Z",
        "Path": "/cmd.sh",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
...

実行中のコンテナ内で操作されたファイル一覧表示 diff
$ docker diff [CONTAINER_NAME]
コンテナ内で出力されたSTDOUTとSTDERRを表示 logs
$ docker logs [CONTAINER_NAME]

# -f でリアルタイム更新
$ docker logs -f [CONTAINER_NAME]

# -t でタイムスタンプ表示
$ docker logs -t [CONTAINER_NAME]

ネットワーク

IPアドレスの表示(旧シンタックス) inspect --format
$ docker inspect --format '{{.NetworkSettings.IPAddress}}' [CONTAINER_ID]
172.28.0.2
IPアドレスの表示(新シンタックス) inspect -f
$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [CONTAINER_ID]
172.28.0.2
Docker ネットワーク一覧の表示 network ls
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
292caef72faf        10_pl_nw            bridge              local
d76c9b040907        2433_default        bridge              local

ビルド

Dockerfile からイメージをビルド build
$ docker build -t [IMAGE_NAME] [Dockerfile path]
Docker Hub へイメージを push

コンテナレジストリにログインしてから

$ docker login

push します。[REPOSITORY]:[TAG] は docker images で確認。

$ docker push [REPOSITORY]:[TAG]
既存 Dockerコンテナからイメージをコミット(ビルド) commit
$ docker commit [CONTAINER_NAME] [IMAGE_NAME]
# 例) my_container コンテナを元に、my_image 名でコミットする。
$ docker commit my_container blueskyareahm/my_image:latest
Dockerイメージ名を変更する tag
$ docker tag [変更したいIMAGE_ID] [変更後のIMAGE_NAME]
# 例) a2e19ac0d514 という IMAGE_ID のイメージの名前を updated_image という名前にする。
$ docker tag a2e19ac0d514 updated_image


# 実際は名前を変更したというより、別名で新しく作成されているため、元のイメージも残っている。不要であれば削除すること。
$ docker rmi a2e19ac0d514

実行

イメージからコンテナを生成し、実行する run

echo "Hello docker!"を表示してみる。

$ docker run centos:centos6 echo "Hello docker!"
コンテナにログイン(bashを使う) -it
$ docker run -it centos:centos6 /bin/bash
コンテナをバックグラウンドで「デタッチド」(detached )モードで実行する -d
$ docker run -d [IMAGE_NAME]
実行中のコンテナにログインする exec -it
$ docker exec -it [CONTAINER_NAME] /bin/bash
コンテナに任意のホスト名を付与する -h
$ docker run -h my-host-name
コンテナに任意のコンテナ名を付与する --name
$ docker run --name my-container-name
コンテナにホストのディレクトリをマウントする -v
$ docker run -v [host absolute path]:[container absolute path] [IMAGE_NAME] /bin/bash
停止中のコンテナの起動 start
$ docker start [CONTAINER_NAME]
実行中のコンテナの停止 stop
$ docker stop [CONTAINER_NAME]
実行中のコンテナの再起動 restart
$ docker restart [CONTAINER_NAME]
dockerデーモンもしくは、マシン再起動時にコンテナを自動起動 --restart=always
$ docker run --restart=always centos:centos6
コンテナの自動起動設定を解除する update --restart=no
$ docker update --restart=no [CONTAINER_NAME]
ホストからコンテナにファイルをコピー cp
$ docker cp [file] [CONTAINER_NAME]:[container absolute path]
Ex) docker cp my.txt [CONTAINER_NAME]:/tmp/my.txt
Docker イメージを tar ファイルに保存 save
$ docker save -o [FILE_NAME].tar [IMAGE_NAME]
Ex) docker save -o my_image.tar my_img:latest
tar ファイルにした Docker イメージをロード load
$ docker load -i [FILE_NAME].tar
Ex) docker load -i my_image.tar

管理

コンテナが使用中のリソースなど表示 stats
$ docker stats
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
23d2b1ac475c        practical_euclid    33.43%              3.259GiB / 7.79GiB   41.83%              3.6MB / 8.54MB      1.85GB / 145MB      868
コンテナのログの保存場所を表示 inspect
$ docker inspect [CONTAINER_NAME] | grep log
"LogPath": "/var/lib/docker/containers/9b38f592fd572a7f9793c6d4645d49c9de3bf08bab2ecad97879d4255946d678/9b38f592fd572a7f9793c6d4645d49c9de3bf08bab2ecad97879d4255946d678-json.log"

# ログのサイズが大きくなってきたので空にしたいとき
$ sudo truncate -s 0 [LogPath]
Docker 環境のシステム情報を表示 info
$ docker info
Containers: 10
 Running: 4
 Paused: 0
 Stopped: 6
(省略)

削除

コンテナの削除 rm
$ docker rm [CONTAINER_NAME]
全てのコンテナの削除 rm
$ docker rm $(docker ps -a -q)
イメージの削除 rmi
$ docker rmi [IMAGE_NAME]
none イメージの削除 prune
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
deleted: sha256:769e4daa71b2d3e4842f27efb9967c4c21ef51773b0c071290d101be99dc5cde
deleted: sha256:75a74c88393f0b419763ea0cbb3de58c8de02cf526dca6e19f92785e451d98d6
deleted: sha256:653af94a24b9f0e0d732ecef11228eedba7b83358b217358182982f6d6665789
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?