How to get ENV variable when doing Docker Inspect

前端 未结 8 1253
鱼传尺愫
鱼传尺愫 2020-11-30 05:12

I wonder how I get an Environment variable from docker inspect.

when i run

docker inspect -f \"{{.Config.Env.PATH}} \" 1e2b8689cf06
8条回答
  •  自闭症患者
    2020-11-30 05:36

    This doesn't seem to be possible, you can list the environment variables but not just one.

    From the docker commit doc

    $ sudo docker inspect -f "{{ .Config.Env }}" c3f279d17e0a
    [HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
    
    $ sudo docker commit --change "ENV DEBUG true" c3f279d17e0a  SvenDowideit/testimage:version3
    f5283438590d
    
    $ sudo docker inspect -f "{{ .Config.Env }}" f5283438590d
    [HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]
    

    You can print them:

    docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}'
    

    (as in)

    $ docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' c3fa3ce1622b
    HOME=/
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    

    Add a grep PATH and you could get only the PATH=xxx value.


    user2915097 mentions in the comments jq, a lightweight and flexible command-line JSON processor, used in the article "Docker Inspect Template Magic " to format nicely the needed field:

    docker inspect -f '{{json .State}}' jenkins-data | jq '.StartedAt' 
      "2015-03-15T20:26:30.526796706Z"
    

提交回复
热议问题