2016-09-23 24 views
13

tôi khởi động một container Docker từ một hình ảnh với lệnh sau:Làm thế nào khởi động lại một container Docker ngừng

$ docker run -d myimage /bin/bash -c "mycommand" 

Khi "mycommand" xong, container dừng lại (Tôi cho rằng nó được dừng lại), nhưng nó không phải là xóa, vì tôi có thể nhìn thấy nó bằng lệnh này:

$ docker ps -a 

có cách nào để restart chứa này với các thông số tương tự và giữ cho dữ liệu được tạo ra bởi mycommand?

+0

"Âm lượng" hoặc "gắn thư mục máy chủ" có thỏa mãn bạn không? Giống như tài liệu được đề cập: https://docs.docker.com/engine/tutorials/dockervolumes/ –

Trả lời

14

Có, khi lệnh ban đầu kết thúc thực hiện thì vùng chứa sẽ dừng.

Bạn có thể bắt đầu một container đã ngừng sử dụng:

docker start container_name

Nếu bạn muốn nhìn thấy đầu ra của lệnh của bạn thì bạn nên thêm -ai lựa chọn:

docker start -ai container_name

PS. có một số docker restart container_name nhưng được sử dụng để khởi động lại vùng chứa đang chạy - tôi tin rằng đó không phải là trường hợp của bạn.

1

Đầu tiên, $ docker ps -a hiển thị tất cả các vùng chứa (các vùng đang chạy và các vùng chứa đã dừng), vì vậy đó là lý do bạn nhìn thấy vùng chứa đã dừng được liệt kê.

Thứ hai, bạn có thể dễ dàng bắt đầu một container dừng lại bởi:

$ docker start container_name 

Khi container đã được bắt đầu, bạn có thể chạy lệnh của bạn bằng cách:

$ docker exec -it container_name bash -c "mycommand" 

Những thứ bạn tạo ra trong container của bạn sẽ vẫn còn trong thùng chứa của bạn miễn là nó tồn tại. Nếu bạn muốn giữ dữ liệu ngay cả khi vùng chứa của bạn bị xóa, bạn có thể sử dụng volume.

Các vấn đề liên quan