Docker-3-容器的基本操作II

接着上文,还是来看一些对容器的操作

启动容器

在上文中,我们分别使用了docker rundocker create的方式创建了一个容器,前者创建完容器之后就直接启动了,那对于docker create我们可以使用docker start命令来启动,命令如下:

1
docker start 容器id/容器名称

image

如图,就是通过容器的id去启动容器的,docker start启动的是一个已经存在的容器,要使用该命令启动一个容器,必须要先知道容器的id或者
name

一般来说,第一次启动容器可以直接用docker run以后就用docker start就好了

重启容器

容器在运行过程中,会不可避免的出问题,出了问题的时候,需要容器能够自动重启,我们可以在容器启动的时候使用–restart参数实现这一需求. docker的重启策略有以下几种:

  • no: 表示不重启,默认即此
  • on:failure:[max-retries]: 在容器非正常退出(退出状态非0),才会重启容器,可以指定一个最大重试次数,重启次数达到上限之后会放弃重启
  • always: 始终重启容器,当docker守护进程启动时,无论容器当时的状态为何,都会尝试重启容器
  • ubless-stopped: 表示始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它

停止容器

通过docker stop命令可以停止一个容器

1
docker stop 容器id/容器名称

image

删除容器

容器停止后,还是存在的,如果我们不需要了,可以通过docker rm去删除一个容器,删除容器只能删除已经停止的容器

1
docker rm 容器id/容器名

image

如图,只能删除停止状态的容器 , 如果非要删除一个运行状态的容器的话,可以通过加 -f参数实现,语法如下:

1
docker rm -f 容器id/容器名

批量删除

批量删除命令如下:

1
docker rm $(docker ps -a -q)

docker ps -a -q会列出所有的容器的id,供删除,同样的,这里也是只能删除停止的容器

image

还有一个命令,可以删除所有的停止状态的容器,如下:

1
docker container prune

查看容器信息

容器创建成功后,可以通过docker inspect查看容器的详细信息,包括容器的id,容器名称,环境变量,运行命令,主机配置,网络配置以及数据卷等信息

1
docker inspect 容器id/名称

返回值如下:
image

format参数

上面返回的数据实在是太多了,看起来也不方便,使用format参数可以只查看用户关心的数据,如下:

查看容器运行状态:

1
docker inspect -f='{{.State.Running}}'  容器id/名称

image

查看容器的id和名称:

1
docker inspect -f='{{.Name}} {{.ID}}' 容器id/名称

image

查看容器内的进程

查看某个容器中有哪些正在运行的进程,可以用以下命令:

1
docker top 容器id/名称

这里要确保查询的容器是启动的

image

查看容器日志

要查看容器的日志可以使用以下命令:

1
docker logs 容器id/名称

我这里查看了一个redis容器的日志,返回值如下:
image

详细参数

默认情况下只能看到历史日志,不能看到实时的日志,我们可以使用-f参数查看实时日志

1
docker logs -f 容器id/名称

image

这样看到的就是实时的日志了,但是日志又太多了,可以使用--tail参数控制日志输出行数,同时可以用-t来显示日志的输出时间,如下:
image