Is it possible to show the restart policy of a running Docker container?

前端 未结 4 2076
清歌不尽
清歌不尽 2021-02-04 23:50

When I create containers I\'m specifying a restart policy, but this is not shown in docker ps, and it doesn\'t appear any format string shows this either.

D

相关标签:
4条回答
  • 2021-02-05 00:05

    For single line of the code:

    docker ps|grep -v CON|awk '{print $1}'|while read line; do  docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" $line |xargs echo $line ;done
    
    0 讨论(0)
  • 2021-02-05 00:19

    You can get this via docker inspect.

    Just the policy name:

    docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' <container-id>
    

    Or the entire policy (including e.g. max retry count):

    docker inspect --format '{{json .HostConfig.RestartPolicy}}' <container-id>
    
    0 讨论(0)
  • 2021-02-05 00:20

    Yes, it is possible using docker inspect which is json format and just need to query it.

    Here is relevant output of docker inspect for a running container zen_easley. Note to change container name as suitable for your environment.

    • docker inspect zen_easley
    "HostConfig": {
                "Binds": null,
                "ContainerIDFile": "",
                "LogConfig": {
                    "Type": "json-file",
                    "Config": {}
                },
                "NetworkMode": "default",
                "PortBindings": {},
                "RestartPolicy": {
                    "Name": "no",
                    "MaximumRetryCount": 0
                },
                "AutoRemove": true,
    

    You can just run the following command to get the same and its output.

    $ docker inspect -f "{{ .HostConfig.RestartPolicy }}"  zen_easley
    {no 0}
    

    If you see RestartPolicy has two properties Name, MaximumRetryCount and no, 0 are the values respectively in the above output

    You may also get the individual property value, say Name by using below command, appending .Name to the above command:

    docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}"  zen_easley
    no
    
    0 讨论(0)
  • 2021-02-05 00:20

    I did this little script to check all the containers and their policy:

    #!/usr/bin/env bash
    #Script to check the restart policy of the containers
    
    readarray -t CONTAINERS < <(docker ps -a | grep -v NAMES | awk '{print $NF}')
    
    for item in "${CONTAINERS[@]}"; do
    
        #Hard-Bash way
        #data=$(docker inspect "${item}" | grep -A 1 RestartPolicy | awk -F '"' '{print $4}' | tail -n 1)
    
        #Docker-pr0 way
        data=$(docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" "${item}")
    
        echo "Container: ${item} / RestartPolicy: ${data}"
    done
    

    Hope it helps to somebody!

    0 讨论(0)
提交回复
热议问题