Sự khác biệt giữa docker-soạn lên và docker-soạn bắt đầu là gì?


124

Bất cứ khi nào tôi thực hiện

docker-compose start 
docker-compose ps

Tôi thấy vùng chứa của mình có trạng thái "LÊN". Nếu tôi làm

docker-compose up -d

Tôi sẽ thấy dài dòng hơn nhưng nó sẽ có cùng một trạng thái. Có sự khác biệt nào giữa cả hai lệnh không?

Câu trả lời:


166

docker-compile start
( https://docs.docker.com/compose/reference/start/ )

Bắt đầu các vùng chứa hiện có cho một dịch vụ.

docker-soạn lên
( https://docs.docker.com/compose/reference/up/ )

Xây dựng, (lại) tạo, bắt đầu và gắn vào vùng chứa cho một dịch vụ.

Trừ khi chúng đang chạy, lệnh này cũng bắt đầu bất kỳ dịch vụ được liên kết nào.

Các docker-compose uplệnh tập hợp đầu ra của mỗi container (chủ yếu là chạy docker-compose logs -f). Khi lệnh thoát, tất cả các vùng chứa sẽ dừng lại. Chạy docker-compose up -dbắt đầu các vùng chứa trong nền và để chúng chạy.

Nếu có các vùng chứa hiện có cho một dịch vụ và cấu hình hoặc hình ảnh của dịch vụ đã bị thay đổi sau khi tạo vùng chứa, hãy docker-compose upchọn các thay đổi bằng cách dừng và tạo lại các vùng chứa (giữ nguyên các ổ đĩa đã được gắn kết). Để ngăn Soạn thư nhận các thay đổi, hãy sử dụng --no-recreatecờ.

Để tham khảo CLI đầy đủ:
https://docs.docker.com/compose/reference/


3
cập nhật liên kết đến tham chiếu CLI docs.docker.com/compose/reference * docker -soạn lên: docs.docker.com/compose/reference/up * docker -compose start: docs.docker.com/compose/reference / start
michael

18

Trong docker Các câu hỏi thường gặp, điều này được giải thích rất rõ ràng:

Sự khác biệt giữa khởi động, chạy và bắt đầu là gì?

Thông thường, bạn muốn docker-compose up. Sử dụng upđể bắt đầu hoặc khởi động lại tất cả các dịch vụ được xác định trong a docker-compose.yml. Ở chế độ “đính kèm” mặc định, bạn thấy tất cả nhật ký từ tất cả các vùng chứa. Trong chế độ “tách rời” ( -d), Soạn thoát sau khi khởi động vùng chứa, nhưng vùng chứa tiếp tục chạy trong nền.

Các docker-compose runlệnh là để chạy “một lần” hoặc “adhoc” nhiệm vụ. Nó yêu cầu tên dịch vụ bạn muốn chạy và chỉ khởi động vùng chứa cho các dịch vụ mà dịch vụ đang chạy phụ thuộc vào. Sử dụng run để chạy thử nghiệm hoặc thực hiện một tác vụ quản trị chẳng hạn như xóa hoặc thêm dữ liệu vào vùng chứa khối lượng dữ liệu. Các runlệnh hoạt động như docker run -tiở chỗ nó sẽ mở ra một thiết bị đầu cuối tương tác để các thùng chứa và trả về một trạng thái thoát phù hợp với trạng thái thoát của quá trình trong các thùng chứa.

Các docker-compose startlệnh chỉ có ích cho container khởi động lại mà trước đây được tạo ra, nhưng đã bị chặn lại. Nó không bao giờ tạo ra các thùng chứa mới.


lệnh khởi động lại khác với bất kỳ lệnh nào trong số này - chạy, khởi động, khởi động?
Nag
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.