CodeGym /Các khóa học /Docker SELF /Kết nối với container đang chạy

Kết nối với container đang chạy

Docker SELF
Mức độ , Bài học
Có sẵn

5.1 Những điều cơ bản về lệnh docker exec

Lệnh docker exec — công cụ để tương tác với các container đang chạy. Nó cho phép chạy lệnh và mở session interactive bên trong container. Điều này hữu ích cho các tác vụ quản trị, debug và monitoring. Trong bài giảng này, tụi mình sẽ xem chi tiết cách sử dụng lệnh docker exec, các tham số khả dụng và sẽ đưa ra một vài ví dụ áp dụng thực tế của nó.

Lệnh docker exec được sử dụng để thực hiện lệnh trong container đang chạy. Bằng nó, cậu có thể vào container và tương tác với nó, như thể cậu đang làm việc trực tiếp với server.

Cú pháp


docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Ở đây:

  • CONTAINER: tên hoặc ID của container mà cậu muốn truy cập.
  • COMMAND: lệnh mà cậu muốn thực hiện bên trong container.
  • ARG...: các tham số cho lệnh.

Ví dụ sử dụng cơ bản

Ví dụ này sẽ thực hiện lệnh ls /app bên trong container my_container, cho phép cậu xem nội dung của thư mục /app trong container.

Terminal


docker exec my_container ls /app

5.2 Các tham số của lệnh docker exec

Lệnh docker exec hỗ trợ một số tùy chọn cho phép cấu hình hành vi thực thi các lệnh bên trong container.

1. Mở phiên làm việc tương tác

Để bắt đầu phiên làm việc tương tác, dùng kết hợp các tùy chọn -i (interactive) và -t (pseudo-TTY).

Terminal


docker exec -it my_container /bin/bash 

Trong ví dụ này, terminal tương tác Bash sẽ được mở bên trong container my_container. Điều này cho phép bạn thực thi lệnh trong thời gian thực.

2. Thực thi lệnh ở chế độ tách rời

Nếu bạn cần thực thi một lệnh trong container mà không cần đợi nó hoàn thành, bạn có thể dùng tùy chọn -d (detached mode).

Terminal


docker exec -d my_container touch /app/newfile.txt

Trong ví dụ này, lệnh sẽ tạo một file rỗng newfile.txt trong thư mục /app của container my_container. Quyền kiểm soát terminal sẽ được trả về ngay sau khi lệnh thực thi, không cần đợi nó hoàn thành.

3. Chỉ định môi trường người dùng

Bạn có thể truyền biến môi trường vào container bằng tham số -e.

Terminal

docker exec -e MY_VAR=value my_container env

Ví dụ này sẽ truyền biến môi trường MY_VAR vào container và chạy lệnh env, để hiển thị tất cả các biến môi trường bên trong container.

5.3 Ví dụ sử dụng

Ví dụ 1: Xem các process đang chạy bên trong container

Ví dụ này sẽ chạy lệnh ps aux bên trong container my_container và hiển thị danh sách tất cả các process đang chạy.

Terminal
docker exec my_container ps aux

Ví dụ 2: Kiểm tra trạng thái service trong container

Ví dụ này sẽ chạy lệnh service nginx status bên trong container my_container và hiển thị trạng thái của service nginx.

Terminal
docker exec my_container service nginx status

Ví dụ 3: Cài đặt package bên trong container

Ví dụ này sẽ cập nhật danh sách package và cài đặt trình soạn thảo vim bên trong container my_container.

Terminal
docker exec my_container apt-get update && apt-get install -y vim

5.4 Các kịch bản thực tế

1. Quản lý container

Lệnh docker exec cho phép admin thực hiện các nhiệm vụ bảo trì bên trong container: chỉnh sửa file cấu hình, kiểm tra logs hoặc thay đổi quyền truy cập file.

Terminal
docker exec -it my_container vim /etc/nginx/nginx.conf

2. Debug ứng dụng

Trong lúc phát triển và kiểm thử ứng dụng, lệnh docker exec giúp lập trình viên kiểm tra trạng thái app, debug và phân tích lỗi.

Terminal
docker exec -it my_container python /app/scripts/debug.py

3. Giám sát và chẩn đoán

Với docker exec, bạn có thể chạy các lệnh chẩn đoán và theo dõi trạng thái của container: kiểm tra việc sử dụng tài nguyên, kết nối mạng và các chỉ số khác.

Terminal
docker exec my_container top

Câu lệnh này sẽ chạy tiện ích top bên trong container my_container và hiển thị việc sử dụng tài nguyên hiện tại.

5.5 Khuyến nghị bổ sung

1. Đảm bảo an toàn

Khi sử dụng lệnh docker exec, cần phải chú ý đến vấn đề an ninh. Hãy đảm bảo rằng quyền truy cập vào các container được giới hạn và chỉ những người dùng được ủy quyền mới có thể thực thi lệnh bên trong các container.

2. Tự động hóa nhiệm vụ

Bạn có thể tự động hóa các tác vụ thường xuyên bằng cách sử dụng script sử dụng lệnh docker exec. Điều này cho phép tạo các luồng công việc phức tạp và tự động hóa việc quản lý container.

Terminal
#!/bin/bash
for container in $(docker ps -q); do
 docker exec $container uptime
done

Script này sẽ thực thi lệnh uptime trên tất cả các container đang chạy và xuất thời gian hoạt động của chúng.

3. Log và gỡ lỗi

Đôi khi việc thực thi lệnh có thể kết thúc với lỗi. Trong những trường hợp này, việc xem log của container rất hữu ích để xác định nguyên nhân.

Terminal
docker logs my_container
1
Опрос
Tạo container đầu tiên,  11 уровень,  4 лекция
недоступен
Tạo container đầu tiên
Tạo container đầu tiên
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION