Kiểm tra cài đặt docker theo chương trình (sh-script)


7

Có thể kiểm tra thông qua shell script nếu docker được cài đặt.

Tôi sẽ kiểm tra cái này bằng tay

sudo docker run --name hello-world-container hello-world
sudo docker rm hello-world-container

Nhưng tôi muốn kiểm tra chương trình này, vì vậy nếu thử nghiệm này thất bại, thói quen cài đặt có thể được bắt đầu.

Cập nhật

#!/bin/bash

which docker

if [ $? -eq 0 ]
then
    docker --version | grep "Docker version"
    if [ $? -eq 0 ]
    then
        echo "docker existing"
    else
        echo "install docker"
    fi
else
    echo "install docker" >&2
fi

Câu trả lời:


6

Bạn có thể thử thực hiện:

which docker

và kiểm tra mã thoát của lệnh đó. Nếu là 0 (thành công), thì bạn có thể thực thi:

docker --version

và grep cho một tên và mẫu phiên bản đã biết.


Nó không đủ để kiểm tra which docker? Tại sao tôi phải kiểm tra docker --versionsau này? Và làm thế nào tôi có thể kiểm tra mã thoát?
dùng3142695

Bạn có thể tự thỏa mãn với mã thoát khỏi whichlệnh, nhưng kiểm tra đầu ra từ docker --versionlệnh là đảm bảo thêm rằng đó là dockertệp thực thi mà bạn mong đợi thay vì một số tập lệnh thực thi hoặc tập lệnh khác có chung tên. Đối với việc kiểm tra mã thoát, tôi thấy rằng câu hỏi đã chỉnh sửa của bạn có chứa một giải pháp.
IvanGoneKrazy

Tôi nghĩ rằng docker --versionsẽ tốt hơn như bạn đã giải thích, nhưng tôi không biết làm thế nào để kiểm tra điều đó bởi vì đó là một chuỗi mà tôi muốn lấy số phiên bản (không nên xác định).
dùng3142695

Bạn sẽ thực hiện docker --version | grep "Docker version". Nếu mã thoát là 0, có một kết quả khớp thành công và khả năng thực thi có thể là Docker thực thi.
IvanGoneKrazy

Ồ được thôi. Hiểu điều đó. Có thể kết hợp cả hai thành một? Tôi đã cập nhật bài viết của mình. Như bạn có thể thấy nỗ lực của tôi trông rất tệ ... :-(
user3142695
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.