无法从容器中删除所有泊坞窗

时间:2020-08-23 06:01:06

标签: docker ubuntu

我正在尝试删除停止ubuntu服务器上的所有docker容器,但我不断得到"docker stop" requires at least 1 argument.,这是我的Github Action文件的相关部分:

  - name: Deploy
    env:
        DOCKER_USER: ${{ secrets.DOCKER_USER }}
        DOCKER_PW: ${{ secrets.DOCKER_PW }}
    uses: appleboy/ssh-action@master
    with:
        host: ${{ secrets.DEVELOP_HOST }}
        username: ${{ secrets.DEVELOP_USERNAME }}
        password: ""
        key: ${{ secrets.DEVELOP_PRIVATE_KEY }}
        port: 22
        script: |
        ls
        sudo chmod 666 /var/run/docker.sock
        sudo docker pull username/reponame
        sudo docker stop $(docker ps -a -q)
        sudo docker rm $(sudo docker ps -q)
        sudo docker run -d -e NODE_ENV=develop -p 3000:3000 username/reponame

输出:"docker stop" requires at least 1 argument.

有人知道这里会发生什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这意味着$(docker ps -a -q)的评估结果为零。

sudo docker stop $(docker ps -a -q)

输出:“ docker stop”至少需要1个参数。

这就像您是否执行:

sudo docker stop 

它不起作用。一个或多个容器应作为args。

要么忽略该错误:

sudo docker stop $(docker ps -a -q) || true

或在以下条件下停止:

containerIds=$(docker ps -a -q)
if [[ -n $containerIds ]] ; then
  sudo docker stop $containerIds
fi