简体   繁体   English

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

[英]Cannot remove all dockers from container

I am trying to remove stop all docker containers on my ubuntu server but i keep getting "docker stop" requires at least 1 argument.我正在尝试删除 ubuntu 服务器上的所有 docker 容器,但我不断收到"docker stop" requires at least 1 argument. Here is the relevant part of my Github Action file:这是我的 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

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

Anyone know what might be going on here?有谁知道这里会发生什么?

Thanks in advance!提前致谢!

That means that $(docker ps -a -q) was evaluated to nothing.这意味着$(docker ps -a -q)被评估为空。

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

Output: "docker stop" requires at least 1 argument.输出:“docker stop”至少需要 1 个参数。

That is like whether you execute :这就像你是否执行:

sudo docker stop 

It cannot work.它不能工作。 One or more container are expected as args.需要一个或多个容器作为参数。

Either ignore the error :要么忽略错误:

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

Or perform the stop on condition :或在条件下执行停止:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM