検索
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