Docker không gốc

Docker Khong Goc



Docker là một trong những công cụ mạnh mẽ và có ảnh hưởng nhất để phát triển và triển khai ứng dụng hiện đại. Với tư cách là nhà phát triển, chúng tôi sử dụng nó trên các máy cục bộ của mình để nhanh chóng thiết lập và định cấu hình các môi trường phù hợp với nhu cầu ứng dụng của mình trong vài giây.

Tuy nhiên, khi làm việc trong Docker, chúng ta có thể gặp phải các trường hợp cần tạo và sử dụng tài nguyên Docker nhưng không có quyền truy cập root.

Hoặc có lẽ bạn muốn cho phép nhiều người dùng trên một hệ thống nhất định truy cập và sử dụng Docker mà không cần cấp quyền root cho tất cả người dùng.







Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Docker không root, ý nghĩa, cách thức hoạt động và cách chúng ta có thể sử dụng nó để cho phép người dùng không có quyền truy cập root sử dụng Docker và các dịch vụ liên quan của nó.



Docker không root là gì?

Theo mặc định, sau khi bạn cài đặt Docker, daemon Docker và các công cụ của nó yêu cầu quyền root trên hệ thống máy chủ. Điều này có thể dẫn đến rủi ro bảo mật đáng kể nếu Docker bị xâm phạm, điều này có thể cấp quyền truy cập root cho kẻ tấn công.



Rootless Docker là một tính năng cho phép chúng ta sử dụng và chạy daemon Docker cũng như các vùng chứa liên quan mà không cần quyền root.





Làm thế nào nó hoạt động

Mặc dù việc đi sâu vào hoạt động kỹ thuật của môi trường docker không root có thể gặp khó khăn, nhưng sau đây là phần tổng quan cấp cao giải thích chức năng của docker không root và cách thức hoạt động của nó.

Không gian tên người dùng – Một trong những tính năng quan trọng mà docker không root sử dụng là không gian tên người dùng. Tính năng cơ bản này của nhân Linux cho phép các tiến trình có ID người dùng và nhóm khác nhau bên trong không gian tên so với bên ngoài. Điều này có nghĩa là một tiến trình có thể chạy với tư cách người dùng root bên trong không gian tên của nó, nhưng bên ngoài không gian tên đó, nó chạy như một người dùng thông thường.



Mạng – Tính năng tiếp theo của Docker không root là kết nối mạng. Theo mặc định, trình nền docker thông thường dựa trên các ngăn xếp mạng như iptables và cầu nối yêu cầu quyền root.

Docker tận dụng các tính năng như slirp4netns, cung cấp ngăn xếp TCP/IP ở chế độ người dùng trong docker không cần root. Điều này cho phép Docker truy cập mạng mà không cần quyền root trên hệ thống máy chủ.

Kho – Phần thiết yếu tiếp theo của docker không root là trình điều khiển lưu trữ. Theo mặc định, Docker sử dụng trình điều khiển lưu trữ lớp phủ 2, như bạn có thể đoán, trình điều khiển này yêu cầu quyền root. Thay vào đó, phiên bản docker không root sử dụng trình điều khiển Fuse-overlayfs. Trình điều khiển này dựa trên fs lớp phủ FUSE, cho phép chúng tôi gắn kết nó mà không cần quyền root.

Trên đây là một số thành phần thiết yếu của phiên bản docker không root. Hãy nhớ rằng phần này không khám phá toàn bộ hoạt động của một docker không root. Hãy xem xét các tài liệu để tìm hiểu thêm.

Docker không root – Yêu cầu

Chúng ta hãy chuyển từ lý thuyết sang tìm hiểu cách tạo và định cấu hình môi trường Docker không cần root.

Để làm theo bài đăng này, hãy đảm bảo bạn có những điều sau:

  1. Một hệ thống dựa trên Linux có quyền root.
  2. Truy cập mạng.

Định cấu hình hệ thống với UIDMap

Trước khi cài đặt và cấu hình Docker, chúng ta phải cài đặt và cấu hình hệ thống bằng tiện ích uidmap.

UIDMap cho phép chúng tôi quản lý ánh xạ UID và GUI của các quy trình trong hệ thống Linux trong nội dung của không gian tên người dùng. Bạn có nhớ khi chúng tôi đề cập rằng Docker không root tận dụng không gian tên người dùng không? Công cụ này sẽ cho phép chúng tôi chỉ định ánh xạ UID và GID cũng như các không gian tên tương ứng của chúng.

Bắt đầu bằng cách làm mới các gói hệ thống như sau:

$ sudo cập nhật apt-get

Tiếp theo cài đặt tiện ích uidmap như hình:

$ sudo cài đặt apt-get bản đồ uid -Và

Cài đặt Docker không cần root

Bước tiếp theo là xử lý và cài đặt Docker không cần root. Chúng ta có thể làm điều này bằng cách làm theo các bước đơn giản được nêu dưới đây:

Bắt đầu bằng cách tải xuống tập lệnh cài đặt docker không cần root từ liên kết hiển thị bên dưới:

https://get.docker.com/rootless

Bạn có thể sử dụng cURL hoặc WGET.

$ Xoăn -sSL https: // get.docker.com / không có rễ | sh

Lưu ý rằng bạn không thể chạy lệnh trên với tư cách là người dùng root.

Sau khi quá trình cài đặt hoàn tất, hãy chỉnh sửa tệp .bashrc bằng trình soạn thảo văn bản yêu thích của bạn:

$ nano .bashrc

Tiếp theo, thêm các mục sau vào tệp cấu hình bashrc:

xuất khẩu XDG_RUNTIME_DIR = / trang chủ / Ubuntu / .docker / chạy

xuất khẩu CON ĐƯỜNG = / trang chủ / Ubuntu / thùng rác: $PATH

xuất khẩu DOCKER_HOST =unix: /// trang chủ / Ubuntu / .docker / chạy / docker.sock

Đảm bảo thay đổi người dùng từ “ubuntu” thành người dùng bạn muốn cài đặt Docker. Đầu ra tập lệnh sẽ cung cấp cho bạn nội dung để thêm vào tệp .bashrc.

Lưu các thay đổi và đóng trình chỉnh sửa.

Trong bước tiếp theo, chúng ta cần khởi chạy daemon Docker không cần root. Chúng ta có thể thực hiện việc này bằng systemctl, như trong lệnh bên dưới:

hệ thống --ubuntu bắt đầu docker

Sau khi bắt đầu, bạn có thể sử dụng các lệnh Docker để khởi động và định cấu hình vùng chứa Docker.

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu chức năng của Docker không cần root, cách thức hoạt động và cách chúng ta có thể định cấu hình nó trên hệ thống Linux. Vui lòng kiểm tra tài liệu docker không root để tìm hiểu thêm.