Pare o contêiner do Docker pelo nome da imagem:
imagename='mydockerimage'
docker stop $(docker ps | awk '{split($2,image,":"); print $1, image[1]}' | awk -v image=$imagename '$2 == image {print $1}')
Pare o contêiner do docker por nome e tag da imagem:
imagename='mydockerimage:latest'
docker stop $(docker ps | awk -v image=$imagename '$2 == image {print $1}')
Se você criou a imagem, poderá adicionar uma etiqueta a ela e filtrar os contêineres em execução por etiqueta.
docker ps -q --filter "label=image=$image"
Métodos não confiáveis
docker ps -a -q --filter ancestor=<image-name>
nem sempre funciona
docker ps -a -q --filter="name=<containerName>"
filtra pelo nome do contêiner, não pelo nome da imagem
docker ps | grep <image-name> | awk '{print $1}'
é problemático, pois o nome da imagem pode aparecer em outras colunas para outras imagens