W skrypcie muszę sprawdzić:
a) Czy silnik Dockera działa?
b) Biorąc pod uwagę nazwę kontenera, czy ten kontener Docker działa?
[początkowe sformułowanie tego pytania było niejednoznaczne, niektórzy interpretują je jako „sprawdź silnik dokera”, a inni jako „sprawdź kontener dockera”]
docker attach containerName
docker ps
docker ps
----- To polecenie pokaże tylkoOdpowiedzi:
Jeśli szukasz konkretnego kontenera, możesz uruchomić:
if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...
Aby uniknąć problemów z kontenerem, który jest w pętli awaryjnej i ciągle uruchamia się ponownie po pokazaniu, że jest gotowy, powyższe można poprawić, zaznaczając
Status
pole:if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...
Jeśli chcesz wiedzieć, czy dockerd działa sam na komputerze lokalnym i masz zainstalowany systemd, możesz uruchomić:
Możesz także połączyć się z dockerem za pomocą
docker info
lub,docker version
a jeśli demon jest niedostępny, zostanie wyświetlony błąd.źródło
docker inspect …
wewnątrzif
oświadczenie skryptu bash?if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
docker inspect -f '{{.State.Restarting}}' $container_name
ponieważ zaczynam mój kontener z zasadą ponownego uruchamiania, chociaż tutaj „prawda” jest tym, czego chcesz uniknąć.if
stwierdzenie, gdy kontener nie jest uruchomiony. To ukrywa niechciane wyrzucenie z fałszywej sprawy:if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
Skończyło się na używaniu
aby sprawdzić skryptem bash, czy silnik Dockera jest uruchomiony.
źródło
docker info > /dev/null 2>&1
jeśli nie potrzebujesz wyjściamożesz sprawdzić stan dockera używając:
systemctl is-active docker
możesz go używać jako:
➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi is alive :) ➜ ~ sudo systemctl stop docker ➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi * empty response *
źródło
docker ps --filter name=pattern
, a następnie można sformatować dane wyjściowe, aby sprawdzić tylko stan, dodając tę flagę:--format {{.Status}}
Wyświetl wszystkie kontenery:
docker container ls -a
ls
= lista-a
= wszystkoSprawdź kolumnę „stan”
źródło
Dla użytkowników OS X (Mojave 10.14.3)
Oto, czego używam w moim skrypcie Bash, aby sprawdzić, czy Docker działa, czy nie
# Check if docker is running if ! docker info >/dev/null 2>&1; then echo "Docker does not seem to be running, run it first and retry" exit 1 fi
źródło
if [[ $? -ne 0 ]]
PrzefakturowałemDowolne polecenie dockera (oprócz
docker -v
), takie jakdocker ps
Jeśli Docker jest uruchomiony, otrzymasz prawidłową odpowiedź, w przeciwnym razie otrzymasz komunikat zawierający „Czy Twój demon Dockera jest uruchomiony i działa?”Możesz również sprawdzić swojego menedżera zadań.
źródło
Czasami nie znasz pełnej nazwy kontenera, w tym przypadku zadziałało to:
if docker ps | grep -q keyword then echo "Running!" else echo "Not running!" exit 1 fi
Wymieniamy wszystkie uruchomione procesy kontenera (
docker ps -a
pokazałby nam również niedziałające, ale nie tego potrzebowałem), szukamy określonego słowa (grep
części) i po prostu nie udaje nam się, jeśli nie znaleźliśmy co najmniej jednego działającego kontenera, którego nazwa zawiera nasze słowo kluczowe.źródło
Możesz sprawdzić za pomocą tego polecenia
systemctl status docker
, pokaże status dockera. Jeśli chcesz rozpocząć można użyćsystemctl start docker
zamiastsystemctl
można spróbować takżeservice
,service docker status
iservice docker start
odpowiednio.źródło
systemd
ich jako inicjatora.systemctl status docker
poprawnie pokaż, czy usługa docker jest uruchomiona. Dziękuję Ci.Możesz również sprawdzić, czy dany kontener docker jest uruchomiony, czy nie, używając następującego polecenia:
docker inspect postgres | grep "Running"
To polecenie sprawdzi, czy na przykład mój kontener postgres działa, czy nie, i zwróci wynik jako „Running”: true
Mam nadzieję że to pomoże.
źródło
Biegać:
Jeśli docker jest uruchomiony , zobaczysz:
Jeśli docker nie jest uruchomiony , zobaczysz:
źródło
Jeśli podstawowym celem jest „Jak mogę uruchomić kontener podczas uruchamiania platformy Docker?”
Możemy użyć polityki restartu Dockera
Aby dodać zasadę ponownego uruchamiania do istniejącego kontenera:
Docker: Dodaj zasady ponownego uruchamiania do kontenera, który został już utworzony
Przykład:
źródło
na komputerze Mac możesz zobaczyć obraz:
jeśli klikniesz prawym przyciskiem myszy ikonę Dockera, zobaczysz:
alternatywnie:
docker ps
i
docker run hello-world
źródło
Jak mogę sprawdzić w SSH.Run:
Jeśli odpowiedź: Nie udało się uzyskać połączenia D-Bus: Operacja niedozwolona
Jest to docker lub kontener WSL.
źródło
docker ps -a
Możesz zobaczyć wszystkie kontenery docker, niezależnie od tego, czy są żywe, czy martwe.
źródło