详解docker的基本命令

Jan 21, 2017


详解docker的基本命令

从镜像运行容器

docker run flags 镜像名 命令   容器可以分为交互式和非交互式两类,交互式容器可以提供一个终端程序,运行容器之后可以通过这个终端程序与容器进行交互,例如docker run -i -t ubuntu会基于名为ubuntu的镜像来运行一个容器,容器运行后会马上进入交互模式,可以通过命令行进行交互(-t意思就是创建一个tty中断,-i当然就是捕捉输入流了);-d的flag可以创建一个守护式容器,docker run -d ubuntu /bin/prog这样创建的容器会在后台运行,容器运行后会执行/bin/prog程序。当然交互式容器也可附带运行时的命令。   用–name的flag可以给新容器命名,如果不加这个flag,docker会给新容器起一个随机的名字,格式是两个单词中间一个下划线,随机的名字都比较一颗赛艇,所以我觉得不加这个flag也没关系。   docker run命令格式非常丰富灵活,但最好将容器的相关信息写在配置文件中而不是每次用run命令来实现。

容器的启动与停止

docker start 容器名|容器ID   启动已停止的容器。容器ID不需要完整,只要能够标识唯一即可,实际上docker会根据给出的id进行搜索找到对应的容器。

docker stop 容器名|容器ID   停止运行中的容器,如果容器没有响应,可以用docker kill来停止。

查看镜像与容器

docker images

  列出所有镜像。

docker ps

  列出所有正在运行的容器。

docker ps -a

  列出所有容器。对于已经结束的会列出其结束了多久,对于正在运行的会列出运行了多久。

docker attach 容器名|容器ID

  附着到正在运行的容器,查看其内部状态。

docker logs flags 容器名|容器ID

  查看容器的日志。这个命令同样支持多种格式,例如-f的flag可以对日志进行跟踪(效果类似于attach),-ft可以在跟踪的同时给日志加上时间戳,–tail n的flag可以指定显示最后n条日志等等,十分灵活。

docker top 容器名|容器ID

  可以查看容器内的进程。

docker stats 容器名|容器ID

  可以查看容器的统计信息,得到一张包含CPU、内存等资源占用的列表,容器名/ID可以是多个。返回的信息有限,主要是一些运行中的统计信息。

docker inspect 容器名|容器ID

  查看一个容器的详细信息,返回指定容器的详细信息,这个命令得到的信息要比docker stats详细得多,包括很多配置信息。这个命令支持用–format这个flag进行有效信息的筛选,使其只输出用户关心的内容。

docker exec

  用于在容器中执行命令,这种方式可以在非交互的膜式下管理运行中的容器。例如docker exec -i -t ubuntu_docker /bin/bash能够在一个已经运行的叫ubuntu_docker的容器中打开命令行并进入交互模式。

容器与镜像的删除

docker rm 容器名|容器ID

  删除容器,容器名/容器ID可以是一个或多个,比如docker rm 'docker ps -a -q'就可以删除所有容器,因为单引号部分的命令已经把所有容器的ID都列出来了。

docker rmi 镜像名|镜像ID

  删除镜像,这个命令与docker rm格式是一样的。