Một vài tip/trick docker

Tram Ho

Tailing logs

Thỉnh thoảng ta muốn truy cập logs của docker nhanh chóng thì có thể sử dụng lệnh dưới đây:

Ố ồ chờ tý

Trong docker-compose, đôi khi ta muốn chạy nhiều service mà service A phụ thuộc vào service B chạy xong mới chạy. Nếu về thứ tự chạy thì dùng depend_on, còn phụ thuộc chạy xong hoàn toàn (tức tính available -sẵn dùng) thì ta sẽ phải dùng cách khác.
Dưới đây là một ví dụ:

Chạy cron tasks trong docker Alpine container

Docker Alpine là một Docker image nhẹ phổ biến có chứa một danh sách các tiện ích Linux cơ bản. Trong đó có crond.
Để chạy các nhiệm vụ của theo định kỳ, ta có thể gắn các tập lệnh của mình dựa trên thời điểm ta muốn thực hiện nó. Trong ví dụ này, các tập lệnh được đặt trong cron_tasks_folder sẽ được thực thi hàng giờ

Volumes trong docker-compose

Host mounted volumes

/host/path : có thể là đường dẫn tương đối hoặc tuyệt đối. Nên sử dụng loại volume này khi đang chạy cơ sở hạ tầng (container) trong một máy duy nhất (sử dụng Docker hoặc docker compose).
Named volumes

Với loại volumes này có thể sử dụng trên một máy hoặc mở rộng trên một cụm máy (sử dụng Docker, docker composer hoặc docker swarm).
Docker volumes có thể là internal hoặc external. Internal volumes có phạm vi trong docker-compose file trong khi external thì cần khai báo trước khi sử dụng:

Sử dụng .dockerignore

Khái niệm về .dockerignore tương tự .gitignore nhưng lần nó được sử dụng để xây dựng image Docker tốt hơn. Với tệp này, ta có thể tránh tải lên các tệp không cần thiết làm giảm thời gian build và kích thước image.
Tạo một file tên là .dockerignore, thêm vào các config file, tệp ta không muốn chúng được thêm vào image.
Ví dụ 1:

Ví dụ 2 dưới đây loại trừ tất cả file và thư mục, ngoại trừ thư mục src:

Truyền các biến môi trường vào docker

Có 2 option là -e–env.file (khi muốn truyền nhiều biến môi trường)

Tham khảo thêm tại đây

Backup of container

Đôi khi ta cần backup một container đang chạy và đem nó sang một máy khác để chạy

Sau khi copy file .tar bên trên sang máy khác có thể restore nó

thực hiện list docker images trên máy host vừa copy sang sẽ thấy một image mới vừa được restore từ file .tar kia

Minimal base image nhất có thể

Đôi khi không cần thiết phải tạo image từ “ubuntu” mà có thể tạo các image từ các image base nhỏ hơn như debian, alpine, scratch.
ubuntu -> debian -> alpine -> scratch

Chạy nhiều container

Hãy nghĩ ngay tới docker-compose.

Xem docker internal files

Đầu tiên lấy docker container_id qua lệnh sau

sau đó thực hiện như bên dưới

Hiển thị thông tin với –format

Đôi khi thông tin hiển thị rườm rà, ta có thể config lại cho ngắn gọn với tham số –format rồi sort và in ra dạng table chẳng hạn

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo