ข้อเสียของการใช้งานdocker exec
คือต้องใช้คอนเทนเนอร์ที่กำลังทำงานอยู่ดังนั้นdocker inspect -f
อาจเป็นประโยชน์หากคุณไม่แน่ใจว่าคอนเทนเนอร์กำลังทำงานอยู่
ตัวอย่าง # 1. แสดงรายการตัวแปรสภาพแวดล้อมที่คั่นด้วยช่องว่างในคอนเทนเนอร์ที่ระบุ:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{$value}} {{end}}' container_name
ผลลัพธ์จะมีลักษณะดังนี้:
ENV_VAR1=value1 ENV_VAR2=value2 ENV_VAR3=value3
ตัวอย่าง # 2. แสดงผล env var แต่ละรายการในบรรทัดใหม่และgrep
รายการที่ต้องการตัวอย่างเช่นการตั้งค่าของ mysql container สามารถเรียกดูได้ดังนี้:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' \
container_name | grep MYSQL_
จะส่งออก:
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_USER=demo
MYSQL_DATABASE=demodb
MYSQL_MAJOR=5.5
MYSQL_VERSION=5.5.52
ตัวอย่าง # 3. ลองแก้ไขตัวอย่างด้านบนเพื่อให้ได้ผลลัพธ์ที่เป็นมิตรกับ bashซึ่งสามารถใช้โดยตรงในสคริปต์ของคุณ:
docker inspect -f \
'{{range $index, $value := .Config.Env}}export {{$value}}{{println}}{{end}}' \
container_name | grep MYSQL
จะส่งออก:
export MYSQL_PASSWORD=secret
export MYSQL_ROOT_PASSWORD=supersecret
export MYSQL_USER=demo
export MYSQL_DATABASE=demodb
export MYSQL_MAJOR=5.5
export MYSQL_VERSION=5.5.52
หากคุณต้องการเจาะลึกมากขึ้นให้ไปที่เอกสารแพ็คเกจข้อความ / เทมเพลตของ Go พร้อมรายละเอียดทั้งหมดของรูปแบบ