19. tháng 3 2025
Trong quá trình làm việc với chuỗi bài viết về Docker gần đây, tôi thường xuyên phải truy cập vào bên trong container Docker. Như đã giới thiệu ở bài trước, hầu hết các image này đều dựa trên hệ điều hành Linux như Ubuntu hoặc Alpine. Nếu không thay thế nguồn (source) khi xây dựng image, do vấn đề mạng đặc thù, việc cài đặt một trình soạn thảo văn bản như bảng xếp hạng ngoại hạng anh 2025 mới nhất Vim từ bên trong container có thể rất chậm, giống như cảnh "hai nghìn năm sau" trong video!
Ngoài ra, nếu bạn muốn sửa đổi cấu hình nguồn trong container, cũng cần dùng đến trình soạn thảo. Điều này tạo ra một tình huống "trứng gà và gà trứng" khó giải quyết. Đối với các chuyên gia Linux, chắc hẳn họ có hàng ngàn cách để xử lý vấn đề này. Tuy nhiên, với người mới như tôi, chỉ nghĩ ra được một phương pháp khá đơn giản: trước tiên sao lưu (backup) file sources.list bằng lệnh cp, sau đó sử dụng lệnh echo "xxx" > sources.list.
Tuy nhiên, ở đây xuất hiện một vấn đề: file sources.list thường chứa nhiều dòng nội dung, nên không thể trực tiếp sử dụng echo để ghi toàn bộ nội dung vào file. May mắn thay, lệnh echo hỗ trợ ký tự thoát "\n" khi thêm tùy chọn -e. Để hiểu rõ hơn về cách sử dụng, bạn có thể xem tài liệu tldr (có thể cài đặt bằng npm install -g tldr), hoặc sử dụng lệnh man hoặc --help.
Khi cần cài đặt các công cụ như Vim, bạn cần biết hệ điều hành cơ sở của image đang sử dụng là gì. Lưu ý rằng lệnh uname sẽ hiển thị thông tin về hệ điều hành của máy chủ (host machine), chứ không phải của container. Do đó, để kiểm tra chính xác, bạn nên sử dụng lệnh cat /etc/issue
.
Đây là một điểm quan trọng cần ghi nhớ khi làm việc với Docker.
Hiện nay, tại Trung Quốc, nguồn được sử dụng phổ biến nhất là Alibaba Cloud Repository. Tuy nhiên, tôi cũng muốn giới thiệu thêm hai nguồn đáng tin cậy bóng đá anh khác là Tsinghua Repository vàUSTC Repository. Đặc biệt, tôi xin phép quảng bá nhẹ nguồn của trường đại học alma mater của mình, mặc dù nó vẫn còn chưa hoàn thiện hoàn toàn. Hy vọng trong tương lai sẽ có thêm nhiều cải tiến.
Lưu ý: Bài viết này chỉ mang tính chất tham khảo và chia sẻ kinh nghiệm cá nhân. Hãy luôn đảm bảo rằng bạn đã đọc kỹ tài liệu chính thức trước khi thực hiện bất kỳ thao tác nào với Docker.