程序员人生 网站导航

Docker 命令详解 命令示例

栏目:服务器时间:2014-12-30 10:27:36

Docker 子命令:

attach   commit  diff     export   history import   insert   kill    login    port    

pull    restart  rmi      save    start    tag      version build    cp       events  

help     images  info     inspect  load    logs     ps       push    rm       run     

search   stop    top      wait

 

docker help: 帮助

命令格式:

docker help [COMMAND]

例子:

docker help run

 

docker version: 显示Docker版本

 

docker info: 显示Docker信息

 

docker attach: 挂载正在后台运行的容器到前台

命令格式:

dockerattach [OPTIONS] CONTAINER

命令参数:

--no-stdin=false           不挂载输入流

--sig-proxy=true           代理接收系统信息,(SIGCHLDSIGKILLSIGSTOP之外)

例子:

ID=$(sudo docker run -d -i -tubuntu /bin/bash)

sudo docker attach $ID


docker run: 在1个新的容器中履行命令 (CTRL-p CTRL-q 退出至后台运行)

命令格式请参考 http://blog.csdn.net/hyzhou33550336/article/details/41703629

dockerrun [OPTIONS] IMAGE [COMMAND] [ARG...]

例子:

sudodocker run -i -t ubuntu:14.04 /bin/bash         启动1个新的Ubuntu容器

sudodocker run --rm -i -t ubuntu:14.04/bin/bash     启动1个新的Ubuntu容器,关闭时会自动删除,合适测试玩

sudo docker run -i -t --name "private_container" ubuntu:14.04 /bin/bash

 

docker ps: 列出当前容器

命令格式:

dockerps [OPTIONS]

命令参数:

-a, --all=false            显示所有容器,包括当前没有运行的容器

--before=""                显示在某1个指定IDName的容器之前的容器

--since=""                 显示在某1个指定IDName的容器以后的容器

-f, --filter=[]            按条件过滤容器, 可选的过滤选项:

                               exited=<int> 容器的返回值

-l, --latest=false         显示最新的1个容器

-n num                     显示最新的N个容器

--no-trunc=false           不要截断输出

-q, --quiet=false          仅显示容器ID

-s, --size=false           显示容器大小

例子:

dockerps                             当前正在运行的容器

dockerps -a                          当前正在运行或是停止的容器

dockerps -a -q --no-trunc            取得当前所有容器的ID,不截断输出

docker rm $(echo $(docker ps -q --no-trunc) $(dockerps -a -q --no-trunc) | sed 's|s| |g'  |sort | uniq -u)

                                      删除当前不在运行状态的容器ID,也能够把前面改成dockerrm

 

docker images: 列出当前镜像

命令格式:

dockerimages [OPTIONS] [NAME]

命令参数:

-a, --all=false            显示所有镜像,包括中间生成的临时镜像

-f, --filter=[]            通过标签过滤 (i.e. 'dangling=true')

--no-trunc=false           不要截断输出

-q, --quiet=false          仅显示容器ID

例子:

dockerimages                         显示当前仓库中的镜像

dockerimages -a                      显示当前仓库中的镜像与临时镜像

dockerimages -a -q --no-trunc        显示当前仓库中的镜像与临时镜像的ID,不截断输出

 

docker logs: 显示容器的日志

命令格式:

docker logs CONTAINER

命令参数:

-f, --follow=false         等待容器后续的输出(类似 tail -f)

-t, --timestamps=false     显示时间戳

--tail="all"

例子:

sudo docker logs 7bb0e258aefe

sudo docker logs --timestamps=true 7bb0e258aefe

sudo docker logs --timestamps=true 7bb0e258aefe > 7bb0e258aefe.log

终端A:

sudo docker logs --follow 7bb0e258aefe

终端B:

sudo docker attach 708cc7ec0f23         (随意履行1些命令可以看到终端A会有实时输出)

 

docker inspect: 显示镜像或容器的详细信息

命令格式:

dockerinspect CONTAINER|IMAGE [CONTAINER|IMAGE...]

命令参数:

-f, --format=""            选择输出内容,--format="{{.NetworkSettings.IPAddress}}"

例子:

sudo docker inspect 7bb0e258aefe

sudo docker inspect--format='{{.NetworkSettings.IPAddress}}' 7bb0e258aefe

 

docker stop: 停止运行中的容器 (CTRL-d 强迫退出, Exited (0))

命令格式:

dockerstop [OPTIONS] CONTAINER [CONTAINER...]

命令参数:

-t, --time=10              杀掉容器进程之前,等待的时间

例子:

sudo docker stop 7bb0e258aefe

 

docker kill: 杀掉1个运行中的容器 (Exited ())

命令格式:

docker kill [OPTIONS] CONTAINER [CONTAINER...]

命令参数:

-s, --signal="KILL"       选择向容器发出的Signal

例子:

sudo docker kill 7bb0e258aefe

 

docker start: 重启停止的容器

命令格式:

dockerstart CONTAINER [CONTAINER...]

命令参数:

-a,--attach=false         Attach container'sSTDOUT and STDERR and forward all signals to the process

-i,--interactive=false    Attach container'sSTDIN

例子:

sudo docker start 7bb0e258aefe

 

docker restart: 重启运行中的容器

命令格式:

dockerrestart [OPTIONS] CONTAINER [CONTAINER...]

命令参数:

-t, --time=10              杀掉容器进程之前,等待的时间

例子:

sudo docker restart 7bb0e258aefe

 

docker wait: 等待容器退出

命令格式:

dockerwait CONTAINER [CONTAINER...]

例子:

A终端:

sudodocker wait 708cc7ec0f23       A终端阻塞,等待容器关闭

B终端:

sudodocker restart 708cc7ec0f23    B终端关闭容器,A终端显示0,结束阻塞,返回

 

docker cp: 拷贝容器中的文件

命令格式:

dockercp CONTAINER:PATH HOSTPATH

例子:

dockercp c3f279d17e0a:/home/hyzhou/answer.txt .  将镜像中的/home/hyzhou/answer.txt文件拷贝到当前目录下

 

docker rm: 删除容器

命令格式:

dockerrm [OPTIONS] CONTAINER [CONTAINER...]

命令参数:

-f, --force=false          强迫删除容器(使用SIGKILL)

-l, --link=false           Removethe specified link and not the underlying container

-v, --volumes=false        Removethe volumes associated with the container

例子:

dockerrm my_ubuntu             删除容器

dockerrm 708cc7ec0f23          删除容器

dockerrm $(docker ps -a -q)    删除所有容器

 

docker top: 查看容器输出

命令格式:

dockertop CONTAINER [ps OPTIONS]

例子:

[ps OPTIONS]的意思是, 你可以在这个命令后面加上使用ps命令时的各种参数

sudo docker top 708cc7ec0f23

sudo docker top 708cc7ec0f23 aux

 

docker events: 实时监听容器的事件

命令格式:

dockerevents [OPTIONS]

命令参数:

--since=""                显示某1个时间戳以后的events

--until=""                实时监听到某个时间戳为止

例子:

A终端:

sudodocker events                  终端A等待Docker系统信息

sudo docker events --since 1378216169

sudo docker events --since '2013-09-03'

sudo docker events--since '2013-09-03 15:49:29'

sudo docker events --since'2013-09-03 15:49:29 +0200 CEST'

sudodocker events > docker.log &   后台记录Docker的容器事件

B终端:

sudodocker restart 708cc7ec0f23    B终端关闭容器

A终端显示:

2014-09-06T23:08:21+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2: (fromubuntu:latest) die

2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2: (fromubuntu:latest) start

2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2: (fromubuntu:latest) restart

 

 

docker history: 显示镜像的历史记录

命令格式:

dockerhistory [OPTIONS] IMAGE

命令参数:

--no-trunc=false          不要截断输出

-q, --quiet=false         仅显示容器ID

 

docker search: Docker Hub上寻觅镜像

命令格式:

dockersearch TERM

命令参数:

--automated=false         使用GithubBitBucket的源代码自动构建

--no-trunc=false          不要截断输出

-s, --stars=0             只显示Star数量超过N的镜像

例子:

docker search --starts=10 ubuntu

 

docker pull: 从远程拉取镜像

命令格式:

dockerpull NAME[:TAG]

例子:

docker pull ubuntu:latest

 

docker push: 推送镜像到远程仓库

命令格式:

dockerpush NAME[:TAG]

例子:

docker push hyzhou/ubuntu:3.2.3

 

docker diff: 列出镜像中文件和目录的变化

命令格式:

dockerdiff CONTAINER

命令输出: 输出1共有3种

A- Add

D- Delete

C- Change

例子:

diff显示的是镜像和当前运行的容器之间的区分,所以diff的基础是IMAGE

下面例子中的b705fc4f4a50708cc7ec0f23,内容实际上是1样的

sudo docker ps -a

CONTAINERID        IMAGE                    COMMAND                CREATED             STATUS

b705fc4f4a50        new:latest               "/bin/bash"            49 seconds ago      Up 49 seconds

708cc7ec0f23        ubuntu:latest            "/bin/bash"            9 minutes ago       Up 9 minutes

sudo docker diff 7bb0e258aefe

C/root

A/root/new.txt

sudo docker diff b705fc4f4a50

 

docker commit: 将容器打包成新的镜像

命令格式:

dockercommit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

命令参数:

-a, --author=""           作者信息,"John Hannibal Smith <hannibal@a-team.com>"

-m, --message=""          提交信息

-p, --pause=true          在提交镜像时暂停容器

例子:

sudo docker ps

ID                  IMAGE               COMMAND             CREAT

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐