问题描述:
这个主要是由于我是在本机的虚拟机中用docker,自己部署了harbor以后,harbor是由多个docker服务支撑的,每次关机下班,都需要把虚拟机挂起,这些容器也就被停止了,每次手动启动很麻烦,所以回想了下学习的linux命令,用一行命令可以直接重启所有的停止容器。
解决办法:
- 查看所有的docker已停止的容器的办法:
docker ps -a | grep Exited
可以显示出所有已停止的容器,那么只需要取到第一列容器id就可以用启动命令来启动它们了。 -
获取停止的容器id:
可以用cut,也可以用awk。
cut: docker ps -a | grep Exited | cut -d' ' -f1 awk: docker ps -a | grep Exited | awk '{print $1}'
-
将查到的停止的容器id作为参数传给启动命令:
docker ps -a | grep Exited | awk '{print $1}' |xargs docker start
xargs可以将前面命令得到的结果作为参数传递给下个命令,用到这里刚好合适。