Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查看是否存在具有特定名称的Docker容器_Docker_Sh_Docker Cli - Fatal编程技术网

查看是否存在具有特定名称的Docker容器

查看是否存在具有特定名称的Docker容器,docker,sh,docker-cli,Docker,Sh,Docker Cli,我试图找到是否存在具有特定名称的Docker容器,但似乎没有成功。我从其他帖子中找到了多个答案,其中最值得注意的是一个,但我似乎无法重现他们的成功。当容器处于多个状态(有时停止,有时运行)时,他们的回答不会返回任何结果,但我似乎无法获得输出。如果容器现在正在运行,它不应该做任何事情。我一直在使用的代码块是: if [ ! "$(docker ps -q -f name=mysql80)" ]; then if [ "$(docker ps -aq -f st

我试图找到是否存在具有特定名称的Docker容器,但似乎没有成功。我从其他帖子中找到了多个答案,其中最值得注意的是一个,但我似乎无法重现他们的成功。当容器处于多个状态(有时停止,有时运行)时,他们的回答不会返回任何结果,但我似乎无法获得输出。如果容器现在正在运行,它不应该做任何事情。我一直在使用的代码块是:

if [ ! "$(docker ps -q -f name=mysql80)" ]; then
    if [ "$(docker ps -aq -f status=exited -f name=mysql80)" ]; then
        # cleanup
        docker rm mysql80
    fi
    # run your container
    docker run -d -p 3306:3306 -p 33060:33060 --volume "$MYSQLFOLDERLOCATION":/var/lib/mysql --name mysql80 frostedflakez/php-mysql-webserver:0.9-beta.3-mysql-latest-8.0
fi
我希望这段代码能够找到容器,并在容器退出时将其删除。我知道这有时是危险的。我正在运行macOS 10.15.6 Catalina(最新更新),带有
Docker Desktop 2.3.0.4(46911)


^^^这是我的
docker ps
output

你的脚本适合我。首次运行:

> t
Unable to find image 'frostedflakez/php-mysql-webserver:0.9-beta.3-mysql-latest-8.0' locally
0.9-beta.3-mysql-latest-8.0: Pulling from frostedflakez/php-mysql-webserver
...
5e500ef7181b: Pull complete
af7528e958b6: Pull complete
Digest: sha256:ef35b9e2b11b0b42a40205eba89a2b8320ace58a3c073b43e1770a52a044484b
Status: Downloaded newer image for frostedflakez/php-mysql-webserver:0.9-beta.3-mysql-latest-8.0
8b01dd743c554a8fb79d73bccf683097e531e8eeea3af1062e0414b35401a000
>
第二轮:

> t
>
如果我停止容器,然后运行脚本:

> t
deleting mysql80
mysql80
35ca48875efdc60032b00325dd0563da64a834df0074580051c25e0601573180
>
(我添加了一个
echo“deleting mysql80”
,以帮助了解发生了什么)

如果我停止并删除容器,然后运行脚本,我会得到:

> t
971309690a97d0b2ffb730feb9f19ab03db10df730d19c91c3482a952a9ebb18
>

我正在运行Docker版本19.03.12,在Mac上构建48a66213fe。

你的Docker版本是什么,你使用的是什么操作系统?另外,请在原始问题中添加一个
$Docker ps
输出。@AlexandreJuma我添加了要求的信息。
> t
971309690a97d0b2ffb730feb9f19ab03db10df730d19c91c3482a952a9ebb18
>