Sự khác biệt giữa lệnh ‘docker run’ và ‘docker exec’ | Khi bạn cần chạy một lệnh nào đó trong Docker container, thì bạn sẽ nghĩ đến hai phương án thực hiện đó là chạy ‘docker run‘ hoặc ‘docker exec‘ . Nhưng đâu là sự khác biệt giữa 2 lệnh này khi sử dụng docker client. Chúng ta sẽ cùng bàn đến qua bài viết nho nhỏ này nhé.
Có thể bạn quan tâm chủ đề khác
– Cài đặt Docker trên CentOS 7
– Hướng dẫn tạo, copy và huỷ AMI trong AWS EC2
– AMI là gì ? Tìm hiểu Amazon Machine Image trong EC2
– Video khoá học Docker cơ bản
Lệnh ‘docker run’
Lệnh ‘docker run‘ thường được sử dụng cho một Docker container mới, tức là sử dụng trong trường hợp bạn chưa có container và bạn muốn tạo một container mới từ một file image, khởi động nó và chạy tiến trình được gán cho docker container đấy.
Cú pháp ‘docker run‘
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Ví dụ :
# docker run --name ubuntu_bash --rm -i -t ubuntu bash
Lệnh ở trên sẽ tạo một container mới với tên ‘ubuntu_bash‘ và khởi động một phiên shell Bash trong container.
Lệnh ‘docker exec’
Nếu mà bạn muốn thực hiện một câu lệnh nào đó trong container đang đang chạy. Thì bạn sẽ dùng ‘docker run‘ để thay đổi thông tin hoặc lấy thông tin từ docker container đang chạy. Như vậy ‘exec‘ sử dụng khi bạn muốn vận hành trong một Docker container đã tồn tại bằng các câu lệnh docker client.
Cú pháp ‘docker exec‘
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Ví dụ:
– Mở terminal shell trong container đang chạy .
# docker exec -it ubuntu_bash /bin/bash
– Xem các tiến trình đang hoạt động trong container.
# docker exec -it ubuntu_bash ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 18500 1816 pts/0 Ss+ 16:16 0:00 /bin/bash root 31 0.0 0.1 34392 1468 pts/1 Rs+ 17:06 0:00 ps aux
Tổng kết
Vậy là bạn đã biết sự khác nhau cơ bản khi sử dụng lệnh ‘docker run‘ và ‘docker exec‘ khi tương tác vận hành các Docker Container rồi. Chúc các bạn thành công.
Nguồn: https://cuongquach.com/