gpt4 book ai didi

docker - 根据分配的端口停止并删除Docker容器

转载 作者:行者123 更新时间:2023-12-02 19:57:52 26 4
gpt4 key购买 nike

下面的代码将停止并删除Docker容器-

docker rm -f CONTAINER_ID

但是它需要容器ID,我可以通过运行另一个代码 docker ps从容器PORTS列中获取使用典型端口(例如0.0.0.0:8383->8383/tcp)的ID。

我正在寻找一种方法,将这两个代码 bundle 在一起,以PORT作为变量,从而不再需要手动输入从 PORTS获得的容器ID。

有没有可能?

最佳答案

试试这个:

PORT=8383
docker container ls --format="{{.ID}}\t{{.Ports}}" |\
grep ${PORT} |\
awk '{print $1}'

第一个命令列出了正在运行的容器,但仅输出容器ID和端口。结果通过管道传递到 grep中,以获取感兴趣的容器。 awk命令获取容器ID。

测试
  • :7777:8888:9999上创建3个Nginx容器。
  • 然后,按端口查找容器,停止并删除它们。

  • for PORT in 7777 8888 9999
    do
    docker run --detach --publish=${PORT}:80 nginx
    done

    docker container ls

    for PORT in 7777 8888 9999
    do
    echo "Looking for a container on port: ${PORT}"
    ID=$(\
    docker container ls --format="{{.ID}}\t{{.Ports}}" |\
    grep ${PORT} |\
    awk '{print $1}')
    echo "Found Container ID: ${ID}"
    echo "Stopping and removing it"
    docker container stop ${ID} && docker container rm ${ID}
    done

    关于docker - 根据分配的端口停止并删除Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56719178/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com