Nhược điểm của việc sử dụng docker exec
là nó yêu cầu một container đang chạy , vì vậy docker inspect -f
có thể hữu ích nếu bạn không chắc chắn một container đang chạy.
Ví dụ 1. Xuất ra một danh sách các biến môi trường được phân tách bằng dấu cách trong vùng chứa được chỉ định:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{$value}} {{end}}' container_name
đầu ra sẽ như thế này:
ENV_VAR1=value1 ENV_VAR2=value2 ENV_VAR3=value3
Ví dụ # 2. Xuất ra từng var env trên dòng mới và grep
các mục cần thiết, ví dụ, cài đặt của bộ chứa mysql có thể được truy xuất như sau:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' \
container_name | grep MYSQL_
sẽ xuất ra:
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_USER=demo
MYSQL_DATABASE=demodb
MYSQL_MAJOR=5.5
MYSQL_VERSION=5.5.52
Ví dụ # 3. Hãy sửa đổi ví dụ trên để có đầu ra thân thiện với bash có thể được sử dụng trực tiếp trong tập lệnh của bạn:
docker inspect -f \
'{{range $index, $value := .Config.Env}}export {{$value}}{{println}}{{end}}' \
container_name | grep MYSQL
sẽ xuất ra:
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
Nếu bạn muốn lặn sâu hơn, hãy truy cập tài liệu gói văn bản / mẫu của Go với tất cả các chi tiết của định dạng.