我正在尝试查找是否存在具有特定名称的 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
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1300b4021189 frostedflakez/php-mysql-webserver:0.9-beta.3-mysql-latest-8.0 "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp mysql80
4e83c877642b frostedflakez/php-mysql-webserver:0.9-beta.3-php-latest-7.4 "docker-php-entrypoi…" 8 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp php74
^^^ 这是我的docker ps
输出