Docker được cài đặt nhưng Docker Compose thì không? tại sao?


127

Tôi đã cài đặt docker trên centos 7. bằng cách chạy các lệnh sau,

curl -sSL https://get.docker.com/ | sh
systemctl enable docker && systemctl start docker
docker run hello-world

LƯU Ý: helloworld chạy chính xác và không có vấn đề gì.

tuy nhiên khi tôi cố gắng chạy docker-compile (docker-compile.yml tồn tại và hợp lệ), nó chỉ cho tôi lỗi trên Centos (phiên bản Windows hoạt động tốt với tệp docker-compile)

/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found

5
Funnily đủ, dành cho Windows & Mac tất cả mọi thứ được nạp và sẵn khi người dùng Linux phải đi qua cực nhọc đánh máy và cài đặt công cụ riêng biệt và tìm ra công cụ (đó là niềm vui dĩ nhiên)
killjoy

Câu trả lời:


277

Bạn cũng cần cài đặt Docker Compose. Xem sách hướng dẫn . Đây là các lệnh bạn cần thực hiện

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 mv /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose

4
Khi chạy dòng thứ hai tôi nhận được phản hồi:mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
kuanb

4
@kuanb nếu nó nói phép không được phép làm cho chắc chắn u có quyền sudo đầy đủ
killstreet

Hiện tại, phiên bản 1.7.0 đã cũ. Theo docs.docker.com/compose/install phiên bản mới là 1.11.2. Có nghĩa là thay vì curl -L github.com/docker/compose/releases/download/1.7.0/…uname -s - uname -m> ./docker-compose nên sử dụng curl -L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy

1
Đảm bảo rằng liên kết trỏ đến bản phát hành GitHub không lỗi thời! Kiểm tra các bản phát hành mới nhất trên GitHub . Bạn cũng có thể tải xuống tệp mới nhất từ ​​trình duyệt, sau đó chỉ cần di chuyển và cấp quyền thực thi cho nó.
totymedli 18/10/17

1
Tôi vẫn đang tìm hiểu về docker, nhưng theo tôi hiểu không nên sử dụng docker-comp cho các cài đặt mới, vì tất cả các tính năng của nó đã được tích hợp vào docker-cli với docker stackvà docker swarm chính. vsupalov.com/difference-docker-compose-and-docker-stack . Có lẽ câu trả lời này nên đề cập đến điều đó, vì nó xuất hiện đầu tiên trên google khi tìm kiếm
docker

40

Tôi đang cài đặt trên Raspberry Pi 3, với Raspbian 8. Phương pháp curl không thành công với tôi (gặp line 1: Not: command not foundlỗi khi yêu cầu docker-compose --version) và giải pháp của @ sunapi386 có vẻ hơi lỗi thời, vì vậy tôi đã thử cách này.

Đầu tiên hãy dọn dẹp mọi thứ từ những nỗ lực trước đây:

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

Sau đó làm theo hướng dẫn này để soạn lại trên Rpi :

sudo apt-get -y install python-pip
sudo pip install docker-compose

Đối với tôi (vào ngày 1 tháng 11 năm 2017), điều này dẫn đến phản hồi sau docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219

6
Giải pháp của bạn hoạt động hoàn hảo! Nếu bạn không cần phiên bản mới nhất của trình soạn thảo văn bản, bạn cũng có thể sử dụng apt-get install docker-compose. Tất nhiên, điều này yêu cầu bạn thêm kho lưu trữ docker vào sources.list của apt (tập lệnh cài đặt từ get.docker.com thực hiện điều này tự động cho bạn). Tuy nhiên, trên Raspberry Pi 3 của tôi với Raspian Stretch Lite này dẫn đến một phiên bản thực sự cũ: docker-compose version 1.8.0, build unknown. Phiên bản này đã quá cũ nên nó chỉ hỗ trợ phiên bản 2 của định dạng tệp do docker-soạn.
robert

Tuyệt vời, điều này đã giúp tôi gặp lỗi docker-comps trên aws. Cảm ơn
Laser Hawk

1
Tôi đã gặp một số rắc rối và sử dụng 'apt purge' và 'pip uninstall' cho docker -omp và sau đó cài đặt lại (không chắc là một hay cả hai), nhưng phần quan trọng của giải pháp cũng là: pip install --upgrade docker-py
mirek

Hoàn hảo! mà không có bất kỳ kiểm tra curl, chmod và phiên bản. Chỉ cần tự động cài đặt phiên bản cuối cùng. Nên được chấp nhận là câu trả lời.
Cherry

Gặp rất nhiều lỗi khi sử dụng pip để cài đặt docker-comp. Nếu bạn cũng vậy, hãy thử câu trả lời này stackoverflow.com/a/43012312/430773
Vik

10

Tôi đang cài đặt trên Raspberry Pi 3, trên hệ điều hành Raspbian. Các curlphương pháp này không giải quyết được sự trả lời hợp lệ. Nó cũng cho biết {error: Not Found}, tôi đã xem qua URLhttps://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7l và nó không hợp lệ. Tôi đoán không có công trình nào ở đó.

Hướng dẫn này https://github.com/hypriot/arm-compose phù hợp với tôi.

sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://packagecloud.io/Hypriot/Schatzkiste/debian/ jessie main" | sudo tee /etc/apt/sources.list.d/hypriot.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 37BBEE3F7AD95B3F
sudo apt-get update
sudo apt-get install docker-compose

9

Nếu bạn đã cài đặt docker bằng cách thêm kho lưu trữ chính thức của họ vào danh sách kho lưu trữ của mình, như:

curl -L https://nightly.odoo.com/odoo.key | apt-key add -
sudo echo "deb http://nightly.odoo.com/10.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
sudo apt-get update && sudo apt-get install odoo

Cứ làm đi:

$ sudo apt-get install docker-compose

Trong trường hợp trên bản phân phối dựa trên RHEL / Fedora:

$ sudo dnf install docker-compose

1
Apt get - ngay cả sau khi thêm các kho lưu trữ mà họ chỉ định cho docker CE, dường như chỉ chứa docker-compose1.8, tương thích với docker-compose.ymltệp tối đa của phiên bản 2. Nói cách khác, họ không còn xuất bản docker-composelên các apt-getkho lưu trữ mặc định hoặc apt- lấy kho lưu trữ. Để có được các phiên bản mới hơn, có vẻ như bạn cần sử dụng pip. Điều này làm tôi khó chịu, vì nó là thứ duy nhất tôi sử dụng pip theo nghĩa đen.
Groostav

6

Tôi đang sử dụng debian, tôi thấy một việc khá tự nhiên để làm:

apt-get install docker-compose

và nó đã thực hiện công việc (không được thử nghiệm trên centos)


5

trước hết, hãy kiểm tra xem docker -omp đã được cài đặt chưa,

$ docker-compose -v

Nếu nó chưa được cài đặt, hãy tham khảo hướng dẫn cài đặt https://docs.docker.com/compose/install/ Nếu được cài đặt, hãy cấp quyền thực thi cho tệp nhị phân.

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

kiểm tra xem điều này có hiệu quả không.


1

Đề cập đến các câu trả lời được đưa ra ở trên (tôi không có đủ danh tiếng để đề cập riêng đến các giải pháp riêng lẻ, do đó tôi làm điều này chung ở nơi này), tôi muốn bổ sung chúng bằng một số gợi ý quan trọng:

  1. docker-compo bạn có thể cài đặt từ kho lưu trữ (nếu bạn có gói này trong kho lưu trữ, nếu không, bạn có thể thêm vào hệ thống kho lưu trữ với gói này) hoặc tải xuống nhị phân bằng cách sử dụng curl - totourial trên trang web chính thức của dự án - src: https://docs.docker.com/compose/install /

  2. docker-compos từ kho lưu trữ là phiên bản 1.8.0 (ít nhất là với tôi). Phiên bản docker-compile này không hỗ trợ các tệp cấu hình trong phiên bản 3. Nó chỉ hỗ trợ phiên bản = <2. Trong trang web chính thức của dự án là một khuyến nghị sử dụng cấu hình vùng chứa trong phiên bản 3 - src: https://docs.docker.com/compose/compose-file / compile-phiên bản /. Từ kinh nghiệm của riêng tôi với công việc trong docker, tôi khuyên bạn nên sử dụng cấu hình vùng chứa trong phiên bản 3 - có nhiều tùy chọn cấu hình để sử dụng hơn so với phiên bản <3. Nếu bạn muốn sử dụng cấu hình cấu hình trong phiên bản 3, bạn phải cập nhật / cài đặt docker-soạn lên phiên bản ít nhất 1.17 - tốt nhất là phiên bản ổn định mới nhất. Trang web chính thức của dự án là toàn bộ cách thực hiện quá trình này - src:https://docs.docker.com/compose/install/

  3. khi bạn cố gắng xóa các tệp nhị phân do docker-soạn cũ theo cách thủ công, bạn có thể có thông tin về tệp bị thiếu trong đường dẫn mặc định /usr/local/bin/docker-compose. Trong trường hợp của tôi, docker-soạn ở đường dẫn mặc định / usr / bin / docker-comp. Trong trường hợp này, tôi khuyên bạn nên sử dụng công cụ tìm trong hệ thống của bạn để tìm tập tin nhị phân Docker-soạn - Cú pháp Ví dụ: sudo find / -name 'docker-compose'. Nó đã giúp đỡ tôi. Nhờ đó, tôi đã xóa phiên bản docker-compile cũ và thêm ổ đĩa ổn định vào hệ thống - tôi sử dụng công cụ curl để tải xuống tệp nhị phân docker-compile, đặt nó vào đúng đường dẫn và cấp cho nó quyền phù hợp - tất cả quá trình này có đã được mô tả trong các bài viết trên.

Trân trọng, Adam


0

Cài đặt docker không có nghĩa là bạn đã cài đặt docker-comp. Nó có điều kiện tiên quyết là bạn đã cài đặt công cụ docker mà bạn đã thực hiện. Sau đó, bạn có thể cài đặt docker-soạn theo liên kết này cho Centos 7.


Không, tôi đã chạy lệnh đó "yum install docker-engine" nhưng tôi gặp lỗi. Gói docker-engine-1.11.0-1.el7.centos.x86_64 đã được cài đặt và phiên bản mới nhất nhưng vẫn không có docker-soạn nó khiến tôi bị lỗi / usr / local / bin /
docker

Giống như tôi đã nói: Docker engine là một cái gì đó khác với Docker soạn. Vì vậy, bạn có thể cài đặt công cụ docker và chỉ làm việc với docker nhưng khi bạn muốn sử dụng docker soạn, bạn cần cài đặt nó riêng biệt (trong đó việc cài đặt công cụ là điều kiện tiên quyết (bạn đã đọc xong điều này)). Vì vậy, cố gắng bây giờ là liên kết Tôi đưa trong câu trả lời (bạn có thể sử dụng curl hoặc pip để cài đặt Docker-soạn)
lvthillo

0

docker-compile hiện là một công cụ sử dụng docker (-engine) nhưng không được bao gồm trong bản phân phối của docker.

Đây là liên kết đến hướng dẫn cài đặt: https://docs.docker.com/compose/install/

TL; DR:

curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/bin/docker-compose

(1.8.0 sẽ thay đổi trong tương lai)



0

Các giải pháp trên không hiệu quả với tôi. Nhưng tôi thấy điều này đã hoạt động:

sudo apt-get update -y && sudo apt-get install -y python3-pip python3-dev
sudo apt-get remove docker docker-engine docker.io
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo pip3 install docker-compose
#sudo docker-compose -f docker-compose-profess.yml pull ofw
sudo usermod -a -G docker $USER
sudo reboot

0

Trên Linux, bạn có thể tải xuống tệp nhị phân Docker Compose từ trang phát hành kho lưu trữ Compose trên GitHub. Thực hiện theo các hướng dẫn từ liên kết, liên quan đến việc chạy lệnh curl trong thiết bị đầu cuối của bạn để tải xuống các tệp nhị phân. Các hướng dẫn từng bước này cũng được bao gồm bên dưới.

1: Chạy lệnh này để tải xuống bản phát hành ổn định hiện tại của Docker Compose:

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

Để cài đặt phiên bản Soạn thư khác, hãy thay thế 1.26.2 bằng phiên bản Soạn thư bạn muốn sử dụng.

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

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

Lưu ý: Nếu lệnh docker-soạn không thành công sau khi cài đặt, hãy kiểm tra đường dẫn của bạn. Bạn cũng có thể tạo một liên kết tượng trưng đến / usr / bin hoặc bất kỳ thư mục nào khác trong đường dẫn của bạn.

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.