Docker Container常用命令

原创转载请注明出处:http://agilestyle.iteye.com/blog/2354873

 

docker run —— 交互式容器

docker run是最常用也是最复杂的命令,通过docker help run可以看到该命令有很多选项。

Docker Container常用命令
 

其中最常用的的选项包括:

  • -i -t 这两个选项经常一起使用,可以缩写为-it,用于创建交互式容器
  • -d 让容器运行在后台,用于创建守护式容器
  • --name 为容器指定一个名称

容器运行成功后,会返回一个64字符的容器ID,作为容器的唯一标识。

 

通过如下命令运行一个交互式容器

sudo docker run -it centos:6 /bin/bash
  • -it 指定要创建交互式容器
  • centos:6 以仓库:TAG的形式指定镜像名称
  • /bin/bash 容器对应的进程,会启动一个新的shell

Docker Container常用命令
Note:

刚开始如果没有使用docker pull将镜像拉下来的话,执行上述命令会提示没有找到镜像,会首先将镜像pull下来,这就会遇到一个国内Docker源下载非常慢的问题,推荐的解决办法是使用DaoCloud,会大大加快下载镜像的速度

使用官方源:

Docker Container常用命令
使用DaoCloud源:

Docker Container常用命令
 

通过命令sudo docker run -it centos:6 /bin/bash,会启动一个新的shell,并运行在容器环境中。由于是一个交互式容器,所以当离开当前的shell,被这个新的shell带入到容器的虚拟世界中,此后会在这个shell里面执行的任何命令,都是相对于这个虚拟世界的。

 

当在新的shell里面执行exit,就结束了这个bash进程,从而也结束了这个容器,这样就从虚拟世界又返回到宿主机的现实世界

Docker Container常用命令
 

docker run —— 守护式容器

交互式容器适合一些临时性的任务,当退出bash的时候,交互式容器的生命也将结束。大多数场合,需要的是守护式容器。通过如下方式运行守护式容器:

sudo docker run -d daocloud.io/daocloud/dao-redis:master-init
  • -d 创建守护式容器
  • 没有指定命令,那么就会使用镜像所提供的默认命令。redis镜像的默认命令是/run.sh

Note:

守护式容器运行在后台,这样就可以继续留在当前的shell进行其他操作 

 

docker ps

通过docker ps命令可以查看容器的基本信息,包括容器ID、命令、状态等

sudo docker ps

Docker Container常用命令
 

docker inspect

docker ps命令只能查看容器的基本信息;docker inspect命令则可以查看容器的详细信息。 

sudo docker inspect [容器ID]

Docker Container常用命令
Note:

docker inspect返回的信息是JSON格式的 

 

docker inspect -f

可以指定查看某种信息,例如查看容器的IP

sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' [容器ID]

Docker Container常用命令
 

docker stop

docker stop命令用来停止一个正在运行的守护式容器(如果想快速停止可以使用docker kill

sudo docker stop [容器ID]

Docker Container常用命令
 

docker rm

容器停止后,不会被删除,docker rm命令用来删除容器

sudo docker rm [容器ID]

Docker Container常用命令
Note:

删除完之后,再次运行sudo docker ps -a,容器已经消失了

 

docker logs

使用docker logs查看容器日志

sudo docker logs [-f] [-t] [--tail] [容器ID]
  • -f    --follows=true | false 默认为false
  • -t   --timestamps=true | false 默认为false
  • --tail="all" 

Docker Container常用命令
 

docker top

使用docker top查看守护式容器内进程

sudo docker top [容器ID]

Docker Container常用命令
 

docker exec

使用docker exec在运行的守护式容器内启动新进程

sudo docker exec [-d] [-i] [-t] [容器ID] [COMMAND][ARG...] 

Docker Container常用命令
 

 

 

启动交互式容器后,可以使用Ctrl + P和Ctrl + Q组合将交互式容器转为守护式容器,之后可以使用docker attach命令将守护式容器转为交互式容器

Docker Container常用命令