스크립트에서 다음을 확인해야합니다.
a) 도커 엔진이 작동하고 있습니까?
b) 컨테이너 이름이 주어지면 해당 도커 컨테이너가 실행되고 있습니까?
[이 질문의 초기 문구는 모호했습니다. 일부 사람들은이를 “도커 엔진 검사”로 해석하고 다른 사람들은 “도커 컨테이너 검사”로 해석했습니다.]
답변
특정 컨테이너를 찾고 있다면 다음을 실행할 수 있습니다.
if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...
크래시 루프에있는 컨테이너의 문제를 방지하고 계속해서 작동 중임을 표시하기 위해 다시 시작하는 경우 Status
필드 를 확인하여 위의 내용을 개선 할 수 있습니다 .
if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...
dockerd가 로컬 컴퓨터에서 자체적으로 실행되고 있고 systemd가 설치되어 있는지 알고 싶다면 다음을 실행할 수 있습니다.
systemctl show --property ActiveState docker
docker info
또는 로 도커에 연결할 수도 docker version
있으며 데몬을 사용할 수없는 경우 오류가 발생합니다.
답변
나는 결국 사용했다
docker info
도커 엔진이 실행 중인지 bash 스크립트로 확인합니다.
답변
다음을 사용하여 도커 상태를 확인할 수 있습니다. systemctl is-active docker
➜ ~ systemctl is-active docker
active
다음과 같이 사용할 수 있습니다.
➜ ~ 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 *
답변
모든 컨테이너 나열 :
docker container ls -a
ls
= 목록
-a
= 모두
“상태”열 확인
답변
OS X 사용자 (Mojave 10.14.3)
Docker가 실행 중인지 여부를 테스트하기 위해 Bash 스크립트에서 사용하는 내용은 다음과 같습니다.
# 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
답변
때로는 전체 컨테이너 이름을 모를 때도 있습니다.이 경우 다음이 저에게 효과적이었습니다.
if docker ps | grep -q keyword
then
echo "Running!"
else
echo "Not running!"
exit 1
fi
실행중인 모든 컨테이너 프로세스를 나열합니다 (실행중인 컨테이너 프로세스 docker ps -a
도 표시되지만 필요한 것은 아닙니다). 특정 단어 ( grep
부분)를 검색하고 이름에 우리가 포함 된 실행중인 컨테이너를 하나 이상 찾지 못하면 실패합니다. 예어.
답변
Docker가 실행중인 경우 docker -v
와 같은 모든 docker 명령 (제외 ) docker ps
은 유효한 응답을 받게됩니다. 그렇지 않으면 “Is your docker daemon up and running?”이 포함 된 메시지가 표시됩니다.
작업 관리자를 확인할 수도 있습니다.