Container trong Docker giống như một máy ảo vậy, chúng ta có thể cài bất cứ ứng dụng gì trong nó mà chúng ta muốn. Trong bài viết này, mình sẽ hướng dẫn các bạn cách chạy một Container trong Docker các bạn nhé!
OK, bắt đầu nào các bạn!
Như các bạn đã biết, để khởi tạo và chạy một Container trong Docker, điều đầu tiên chúng ta cần phải có đó là một Image. Việc định nghĩa nội dung của Image sẽ quyết định những gì sẽ được cài đặt trong Container của chúng ta.
Khi chúng ta sử dụng Image để chạy một Container, đầu tiên Docker sẽ tìm Image đó trong máy của chúng ta trước. Nếu tìm thấy, nó sẽ sử dụng Image này. Ngược lại, Docker sẽ tải Image từ Remote Registry, cụ thể là Docker Hub, nếu có.
Hiện tại, trong máy mình không có một Image nào:
Để thuận lợi, mình sẽ sử dụng một Image được lưu trữ trên Docker Hub. Ví như như Image của hệ điều hành Ubuntu đi.
Thông tin của Image này trên Docker Hub như sau:
Trên trang này, nếu các bạn chuyển sang tab Tags bên cạnh tab Repo Info, các bạn sẽ thấy tất cả các phiên bản của Image Ubuntu.
Bây giờ, chúng ta hãy thử sử dụng Image này để chạy một Container của Ubuntu phiên bản 16.04 xem nha các bạn.
Cú pháp để chạy như sau:
1 |
docker run repository:phiên_bản |
Trong ví dụ này, mình sẽ chạy như sau:
1 |
docker run ubuntu:16.04 |
Kết quả:
Mặc định, khi chạy câu lệnh trên Docker sẽ tạo cho chúng ta một Container mới rồi tắt Container đó đi, chúng ta không truy cập vào Container đó được. Để kiểm tra Docker đã chạy cho chúng ta Container này hay chưa, các bạn hãy dùng câu lệnh sau:
1 |
sudo docker ps -a |
Kết quả:
Câu lệnh này sẽ liệt kê cho chúng ta thấy tất cả Container mà chúng ta đã tạo và chạy.
Nếu các bạn muốn truy cập vào Container sau khi chạy câu lệnh trên thì trong câu lệnh docker run các bạn thêm 2 options “-i -t” để tương tác được với Terminal của Container.
Ví dụ của mình như sau:
Các bạn thấy đó, sau khi chạy câu lệnh docker run với options -i -t, chúng ta đã truy cập vào Container luôn.
Để thoát khỏi Container, các bạn nhập command exit nhé.
Sau khi thoát thì Container của chúng ta cũng sẽ tắt luôn.