交互型容器
也可以创建交互型容器,例如创建一个 ubuntu 容器,开发者可能需要在 ubuntu 上面输入命令执行相关操作,交互型容器创建方式如下:
docker run --name ubuntu -it ubuntu /bin/bash
参数含义都和上文一致,除了 -it,-it 参数,i 表示开发容器的标准输入(STDIN),t 则表示告诉 docker,为容器创建一个命令行终端。执行结果如下:
该命令执行完后,会打开一个输入终端,读者就可以在这个终端里愉快的操作 ubuntu 了。
想要退出该终端,只需要输入 exit 命令即可。
容器启动
启动
如果开发者使用了 docker run
命令创建了容器,则创建完成后容器就已经启动了,如果使用了 docker create
命令创建了容器,则需要再执行 docker start
命令来启动容器,使用 docker start
命令结合容器 id 或者容器 name 可以启动一个容器,如下:
docker start
启动的是一个已经存在的容器,要使用该命令启动一个容器,必须要先知道容器的 id 或者 name ,开发者可以通过这两个属性启动一个容器(案例中,nginx 是通过 name 启动,而 ubuntu 则是通过 id 启动)。一般来说,第一次可以使用 docker run
启动一个容器,以后直接使用 docker start
即可。
重启
容器在运行过程中,会不可避免的出问题,出了问题时,需要能够自动重启,在容器启动时使用 --restart 参数可以实现这一需求。根据 docker 官网的解释,docker 的重启策略可以分为 4 种,如下:
四种的含义分别如下:
- no表示不自动重启容器,默认即此。
- on:failure:[max-retries]表示在退出状态为非0时才会重启(非正常退出),有一个可选择参数:最大重启次数,可以设置最大重启次数,重启次数达到上限后就会放弃重启。
- always表示始终重启容器,当docker守护进程启动时,也会无论容器当时的状态为何,都会尝试重启容器。
- ubless-stopped表示始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它。
容器停止
通过 docker stop
命令可以终止一个容器,如下:
可以通过 name 或者 id 终止一个容器。
容器删除
单个删除
容器停止后还依然存在,如果需要,还可以通过 docker start
命令再次重启一个容器,如果不需要一个容器,则可以通过 docker rm
命令删除一个容器。删除容器时,只能删除已经停止运行的容器,不能删除正在运行的容器。如下:
可以通过 name 或者 id 删除一个容器。如果非要删除一个正在运行的容器,可以通过 -f 参数实现,如下:
批量删除
容器也可以批量删除,命令如下:
docker rm $(docker ps -a -q)
docker ps-a-q
会列出所有容器的 id ,供 rm 命令删除。
如下命令也支持删除已退出的孤立的容器:
docker container prune
总结
本文主要向大家介绍了 Docker 容器的基本操作,更多高级操作我们将在下篇文章中介绍。