Cách nâng cấp docker -omp lên phiên bản mới nhất


102

Tôi đã cài đặt docker-comp bằng lệnh

sudo apt install docker-compose

Nó đã cài đặt docker-comp phiên bản 1.8.0 và bản dựng không xác định

Tôi cần phiên bản mới nhất của docker-doing hoặc ít nhất là phiên bản 1.9.0

Bất cứ ai có thể vui lòng cho tôi biết tôi nên thực hiện cách tiếp cận nào để nâng cấp nó hoặc gỡ cài đặt và cài đặt lại phiên bản mới nhất.

Tôi đã kiểm tra trang web của docker và có thể thấy rằng họ đang giới thiệu điều này để cài đặt phiên bản mới nhất '

sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Nhưng trước đó, tôi phải gỡ cài đặt phiên bản hiện tại, có thể thực hiện bằng lệnh

sudo rm /usr/local/bin/docker-compose

nhưng điều này chỉ có thể được sử dụng khi cài đặt hoàn tất bằng curl. Tôi không chắc liệu quá trình cài đặt có được thực hiện bằng curl như tôi đã sử dụng hay không

sudo apt install docker-compose

Vui lòng cho tôi biết tôi nên làm gì bây giờ để gỡ cài đặt và cài đặt lại docker-comp.

Câu trả lời:


131

Trước tiên, hãy xóa phiên bản cũ :

Nếu được cài đặt qua apt-get

sudo apt-get remove docker-compose

Nếu cài đặt qua curl

sudo rm /usr/local/bin/docker-compose

Nếu được cài đặt qua pip

pip uninstall docker-compose

Sau đó, tìm phiên bản mới nhất trên trang phát hành tại GitHub hoặc bằng cách sử dụng API nếu bạn đã jqcài đặt (cảm ơn dragon788frbl về cải tiến này):

VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)

Cuối cùng, tải xuống vị trí có thể truy cập $ PATH yêu thích của bạn và đặt quyền:

DESTINATION=/usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION

2
thử cập nhật đường dẫn trong / usr / local / bin / docker -omp và sau đó chạysudo chmod +x /usr/bin/docker-compose
Raj Kumar Goyal

2
Không cần phải di chuyển tệp. Đường /usr/local/bindẫn $PATHđã có sẵn. Chỉ chmodtại chỗ. Câu trả lời được cập nhật để phản ánh điều này.
Vàng

4
Bạn có thể muốn làm sudo chmod 755 $DESTINATIONthay vì chỉ+x
Neo

2
Neo, bắt tốt. Tôi thường chỉ điều chỉnh quyền hạn theo nhu cầu của mình trong trường hợp những thứ khác đã thiết lập mọi thứ theo cách họ cần. Nhưng ở đây chúng tôi đang tải xuống một tệp mới. Đặt tất cả các quyền có ý nghĩa.
Vàng

2
@Rebar Bạn có thể vui lòng nói cụ thể hơn về những gì bạn muốn cập nhật đường dẫn không? /usr/local/binlà một nơi khá tiêu chuẩn để đặt các tệp nhị phân toàn cầu không được quản lý bởi hệ thống đóng gói. Câu trả lời cũng đề cập đến việc chỉ định "vị trí có thể truy cập $ PATH yêu thích của bạn" cho biết điều chỉnh nếu vị trí của bạn $PATHkhác biệt.
Eric M. Johnson

37

Cách dễ nhất để có một giải pháp lâu dài và bền vững cho cài đặt Docker Compose và cách nâng cấp nó, là chỉ sử dụng pip trình quản lý gói với:

pip install docker-compose

Tôi đang tìm kiếm một giải pháp tốt cho vấn đề xấu xí "cách nâng cấp lên số phiên bản mới nhất" - vấn đề xuất hiện sau khi bạn đọc tài liệu chính thức - và thỉnh thoảng mới tìm thấy nó - chỉ cần xem qua docker-compip gói - nó phải phản ánh (chủ yếu) số lượng hiện tại của phiên bản Docker Compose được phát hành mới nhất .

Trình quản lý gói luôn là giải pháp tốt nhất nếu nói đến quản lý cài đặt phần mềm! Vì vậy, bạn chỉ cần tóm tắt từ việc xử lý các phiên bản của riêng bạn.


2
+1 câu trả lời tuyệt vời. Trước đây: Tôi đã có phiên bản docker-compo: docker-compile phiên bản 1.21.2, build a133471 Vì vậy, để nâng cấp lên phiên bản không phải RC mới nhất, tôi thấy điều này hoạt động để nâng cấp: 1) apt install python-pipcài đặt PIP sau đó pip install docker-composecài đặt phiên bản mới nhất và sau đó để kiểm tra phiên bản: docker-compose --versionđã cho tôi: docker-compile phiên bản 1.23.2, bản dựng 1110ad0
therobyouknow

pip install docker-composeđã đưa ra cho tôi "Yêu cầu đã được thỏa mãn: docker-compos" nên tôi phải thực hiện apt-get purge docker-composehash -d docker-composesau đó pip install docker-composeđể tải docker-compos 1.24 trên Ubuntu 18.04.
krubo

Sau khi cài đặt docker-soạn bằng pip, tôi gặp lỗi này:ImportError: cannot import name 'Context'
Benyamin Jafari

Vì vậy, để đối phó với lỗi này, tôi cài đặt lại dockergói bằngpip
Benyamin Jafari

17

Dựa trên câu trả lời của @ eric-johnson, tôi hiện đang sử dụng câu này trong một script:

#!/bin/bash
compose_version=$(curl https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
output='/usr/local/bin/docker-compose'
curl -L https://github.com/docker/compose/releases/download/$compose_version/docker-compose-$(uname -s)-$(uname -m) -o $output
chmod +x $output
echo $(docker-compose --version)

nó lấy phiên bản mới nhất từ ​​api GitHub.


Tôi gặp lỗi ở dòng thứ 4 zsh: parse error near :) ''
Benyamin Jafari

chỉ mới thử nghiệm nó ở đây, nhưng nó có vẻ hoạt động tốt (debian 10 với zsh). Bạn có chắc là bạn đã sao chép nó một cách chính xác?
frbl

Hãy thử trích dẫn hai lần các URL vì đôi khi trình bao có thể bị lỗi một chút.
dragon788

15

Nếu các phương pháp trên không hiệu quả với bạn, hãy tham khảo câu trả lời sau: https://stackoverflow.com/a/40554985

curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" > ./docker-compose
sudo mv ./docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose

3
Mặc dù liên kết này có thể trả lời câu hỏi, nhưng tốt hơn hết bạn nên đưa các phần thiết yếu của câu trả lời vào đây và cung cấp liên kết để tham khảo. Các câu trả lời chỉ có liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi. - Từ đánh giá
Luuklag

@Luuklag Đã cập nhật câu trả lời. Cảm ơn bạn đã gợi ý
kpratihast 19/07/18

Nó dường như là một lựa chọn cực kỳ chậm
TeoTN

10

Nếu bạn đã thử sudo apt-get remove docker-composevà nhận được E: Unable to locate package docker-compose, hãy thử phương pháp này:

Lệnh này phải trả về một kết quả, để kiểm tra xem nó đã được cài đặt ở đây chưa:

ls -l /usr/local/bin/docker-compose

Xóa phiên bản cũ:

sudo rm -rf docker-compose

Tải xuống phiên bản mới nhất (kiểm tra repo chính thức: docker / soạn / phát hành ):

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

( thay thế 1.24.0 nếu cần )

Cuối cùng, áp dụng các quyền thực thi cho hệ nhị phân:

sudo chmod +x /usr/local/bin/docker-compose

Kiểm tra phiên bản:

docker-compose -v

5

Đây là một trình duyệt khác để cài đặt phiên bản mới nhất của trình soạn thảo bằng cách sử dụng curl và sed.

curl -L "https://github.com/docker/compose/releases/download/`curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/docker/compose/releases/latest | sed 's#.*tag/##g' && echo`/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

2

sử dụng cái này từ dòng lệnh: sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Viết ra phiên bản phát hành mới nhất

Áp dụng quyền thực thi cho hệ nhị phân:

sudo chmod +x /usr/local/bin/docker-compose

Sau đó, phiên bản thử nghiệm:

$ docker-compose --version

1

Sau nhiều lần xem xét các cách để thực hiện điều này, tôi đã kết thúc sử dụng jqvà hy vọng tôi có thể mở rộng nó để xử lý các repo khác ngoài Docker-Compose mà không cần quá nhiều việc.

# If you have jq installed this will automatically find the latest release binary for your architecture and download it
curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | jq --arg PLATFORM_ARCH "$(echo `uname -s`-`uname -m`)" -r '.assets[] | select(.name | endswith($PLATFORM_ARCH)).browser_download_url' | xargs sudo curl -L -o /usr/local/bin/docker-compose --url

1

Nếu bạn có homebrew, bạn cũng có thể cài đặt qua brew

$ brew install docker-compose

Đây là một cách tốt để cài đặt trên hệ thống Mac OS


1

Trên máy tính để bàn ubuntu 18.04.2, tôi đã xóa 'cục bộ' khỏi đường dẫn khi sử dụng lệnh curl để cài đặt gói và nó phù hợp với tôi. Xem câu trả lời ở trên của Kshitij.


1

Nếu bạn đã cài đặt bằng pip, để nâng cấp, bạn chỉ cần sử dụng:

 pip install --upgrade docker-compose

hoặc như Mariyo nói rõ ràng với pip3:

 pip3 install --upgrade docker-compose

trong trường hợp của tôi thì đó làpip3 install --upgrade docker-compose
Mariyo

1

Tôi đã cố gắng cài đặt docker-compos trên "Ubuntu 16.04.5 LTS" nhưng sau khi cài đặt nó như thế này:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Tôi đã nhận được:

-bash: / usr / local / bin / docker -omp: Quyền bị từ chối

và trong khi tôi sử dụng nó với sudo, tôi đã nhận được:

sudo: docker-compo: không tìm thấy lệnh

Vì vậy, đây là các bước tôi đã thực hiện và giải quyết vấn đề của mình:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
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.