Cách thiết lập một Docker Registry riêng tư trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Nếu bạn đang làm việc cho một tổ chức và muốn giữ hình ảnh Docker của mình tại chỗ để triển khai nhanh chóng, thì việc lưu trữ kho lưu trữ Docker riêng là hoàn hảo. Có sổ đăng ký Docker riêng cho phép bạn sở hữu đường ống phân phối hình ảnh của mình và kiểm soát chặt chẽ hơn đối với việc lưu trữ và phân phối hình ảnh. Bạn có thể tích hợp sổ đăng ký của mình với hệ thống CI/CD để cải thiện quy trình làm việc của mình.

Hướng dẫn này sẽ hướng dẫn bạn cách thiết lập và sử dụng sổ đăng ký Docker riêng trên máy chủ Ubuntu 22.04 bằng cách sử dụng Amazon S3 làm vị trí lưu trữ.

Điều kiện tiên quyết​


  • Hai máy chủ Linux chạy Ubuntu 22.04. Một máy chủ sẽ hoạt động như máy chủ lưu trữ sổ đăng ký, trong khi máy chủ còn lại sẽ được sử dụng như máy khách để gửi yêu cầu và nhận hình ảnh từ máy chủ.

  • Tên miền đã đăng ký trỏ đến máy chủ lưu trữ. Chúng tôi sẽ sử dụng registry.example.com cho hướng dẫn của mình.

  • Người dùng không phải root có quyền sudo trên cả hai máy.

  • Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
[*]
Một số gói mà hệ thống của bạn nhu cầu.
Mã:
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Ubuntu mặc định có ufw (Uncomplicated Firewall).

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Bạn sẽ nhận được thông báo sau đầu ra.
Mã:
Status: inactive
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Mã:
$ sudo ufw allow OpenSSH
Cho phép các cổng HTTP và HTTPS như tốt.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Bật Tường lửa
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Kiểm tra trạng thái của tường lửa một lần nữa.
Mã:
$ sudo ufw status
Bạn sẽ thấy kết quả tương tự.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)

Bước 2 - Cài đặt Docker và Docker Compose​

Bước này là bắt buộc trên cả máy chủ và máy khách.

Ubuntu 22.04 đi kèm với phiên bản Docker cũ hơn. Để cài đặt phiên bản mới nhất, trước tiên, hãy nhập khóa GPG của Docker.
Mã:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Tạo tệp kho lưu trữ Docker.
Mã:
$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Cập nhật kho lưu trữ hệ thống danh sách.
Mã:
$ sudo apt update
Cài đặt phiên bản Docker mới nhất.
Mã:
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Xác minh rằng đó là đang chạy.
Mã:
$ sudo systemctl status docker
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-04-13 09:37:09 UTC; 3min 47s ago
TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 2106 (dockerd) Tasks: 7 Memory: 26.0M CPU: 267ms CGroup: /system.slice/docker.service ??2106 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Theo mặc định, Docker yêu cầu quyền root. Nếu bạn muốn tránh sử dụng sudo mỗi khi bạn chạy lệnh docker, hãy thêm tên người dùng của bạn vào docker nhóm.
Mã:
$ sudo usermod -aG docker $(whoami)
Bạn sẽ cần phải đăng xuất khỏi máy chủ và đăng nhập lại với cùng một người dùng để kích hoạt thay đổi này hoặc sử dụng lệnh sau lệnh.
Mã:
$ su - ${USER}
Xác nhận rằng người dùng của bạn đã được thêm vào nhóm Docker.
Mã:
$ groups
navjot wheel docker

Bước 3 - Cấu hình Docker Registry​

Tạo thư mục người dùng​

Tạo thư mục cho sổ đăng ký cấu hình.
Mã:
$ mkdir ~/docker-registry
Chuyển sang thư mục docker-registry.
Mã:
$ cd ~/docker-registry
Tạo thư mục để lưu trữ mật khẩu xác thực HTTP, tệp cấu hình Nginx và SSL chứng chỉ.
Mã:
$ mkdir auth
Tạo một thư mục khác để lưu trữ nhật ký Nginx.
Mã:
$ mkdir logs

Tạo Amazon S3 Bucket​

Bạn có thể lưu trữ dữ liệu sổ đăng ký và hình ảnh trên máy chủ của mình hoặc sử dụng dịch vụ lưu trữ đám mây. Đối với hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng dịch vụ đám mây Amazon S3.

Bước tiếp theo là thiết lập tệp cấu hình với một số cài đặt quan trọng. Các cài đặt này cũng có thể được xác định trong tệp docker-compose.yml, nhưng có một tệp riêng sẽ tốt hơn nhiều.

Tạo một bucket với các cài đặt sau.
  • ACL phải bị vô hiệu hóa.
  • Quyền truy cập công khai vào bucket phải bị vô hiệu hóa.
  • Phiên bản bucket phải bị vô hiệu hóa.
  • Bật mã hóa Bucket bằng khóa do Amazon S3 quản lý. (SSE-S3)
  • Khóa đối tượng phải bị vô hiệu hóa.
Tạo người dùng IAM với chính sách sau.
Mã:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::S3_BUCKET_NAME" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::S3_BUCKET_NAME/*" } ]
}
Thay thế S3_BUCKET_NAME bằng tên thùng S3 của bạn.

Ghi lại khóa bí mật, giá trị bí mật và vùng thùng của thùng để sử dụng sau.

Tạo tệp Docker Compose​

Tạo tệp docker-compose.yml và mở tệp để chỉnh sửa.
Mã:
$ nano docker-compose.yml
Dán mã sau vào nó.
Mã:
services: registry: image: registry:2 restart: always environment: - REGISTRY_STORAGE=s3 - REGISTRY_STORAGE_S3_REGION=us-west-2 - REGISTRY_STORAGE_S3_BUCKET=hf-docker-registry - REGISTRY_STORAGE_S3_ENCRYPT=true - REGISTRY_STORAGE_S3_CHUNKSIZE=5242880 - REGISTRY_STORAGE_S3_SECURE=true - REGISTRY_STORAGE_S3_ACCESSKEY=AKIA3FIG4NVFNXKQXMSJ - REGISTRY_STORAGE_S3_SECRETKEY=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 - REGISTRY_STORAGE_S3_V4AUTH=true - REGISTRY_STORAGE_S3_ROOTDIRECTORY=/image-registry - REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=inmemory - REGISTRY_HEALTH_STORAGEDRIVER_ENABLED=false nginx: image: "nginx:alpine" ports: - 443:443 links: - registry:registry volumes: - ./auth:/etc/nginx/conf.d - ./auth/nginx.conf:/etc/nginx/nginx.conf:ro - ./logs:/var/log/nginx - /etc/letsencrypt:/etc/letsencrypt
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Chúng ta hãy xem qua những gì chúng ta đã thiết lập trong tệp compose của mình.

  1. Bước đầu tiên là lấy hình ảnh mới nhất của phiên bản 2 của sổ đăng ký Docker từ trung tâm. Chúng tôi không sử dụng thẻ mới nhất vì nó có thể gây ra sự cố trong trường hợp nâng cấp phiên bản lớn. Đặt thành 2 cho phép bạn lấy tất cả các bản cập nhật 2.x trong khi ngăn chặn việc tự động nâng cấp lên phiên bản chính tiếp theo, điều này có thể gây ra những thay đổi đột ngột.

  2. Bộ chứa sổ đăng ký được thiết lập để luôn khởi động lại trong trường hợp xảy ra lỗi hoặc tắt máy đột ngột.

  3. Chúng tôi đã thiết lập nhiều biến môi trường khác nhau cho bộ lưu trữ Amazon S3. Chúng ta hãy cùng xem qua chúng một cách nhanh chóng.
  • REGISTRY_STORAGE thiết lập loại lưu trữ. Chúng tôi đã chọn s3 vì chúng tôi đang sử dụng Amazon S3.
  • REGISTRY_STORAGE_S3_REGION thiết lập vùng của thùng S3 của bạn.
  • REGISTRY_STORAGE_S3_BUCKET thiết lập tên của thùng S3 của bạn.
  • REGISTRY_STORAGE_S3_ENCRYPT - thiết lập thành true nếu bạn đã bật mã hóa Thùng.
  • REGISTRY_STORAGE_S3_CHUNKSIZE thiết lập kích thước của các khối tải lên. Kích thước phải lớn hơn 5MB (5 * 1024 * 1024).
  • REGISTRY_STORAGE_S3_SECURE - đặt thành true nếu bạn định sử dụng HTTPS.
  • REGISTRY_STORAGE_S3_ACCESSKEYREGISTRY_STORAGE_S3_SECRETKEY - Thông tin xác thực người dùng bạn đã lấy sau khi tạo người dùng IAM.
  • REGISTRY_STORAGE_S3_V4AUTH - đặt thành true nếu bạn sử dụng xác thực AWS v4. Nếu bạn gặp lỗi liên quan đến đăng nhập S3, hãy đặt thành false.
  • REGISTRY_STORAGE_S3_ROOTDIRECTORY - đặt thư mục gốc trong thùng của bạn, nơi dữ liệu sổ đăng ký của bạn sẽ được lưu trữ.
  • REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR - đặt vị trí cho Bộ nhớ đệm. Trong trường hợp của chúng tôi, chúng tôi đang lưu trữ nó trong bộ nhớ. Bạn cũng có thể đặt nó để sử dụng Redis.
  • REGISTRY_HEALTH_STORAGEDRIVER_ENABLED - Đặt thành false để tắt dịch vụ kiểm tra tình trạng lưu trữ của Sổ đăng ký. Có một lỗi với Registry có thể gây ra sự cố nếu bạn không đặt thành false.
[*]
Docker registry giao tiếp qua cổng 5000, đây là cổng mà chúng tôi đã đưa ra trên máy chủ của mình với docker.

[*]
./auth:/etc/nginx/conf.d ánh xạ đảm bảo rằng tất cả các thiết lập của Nginx đều có sẵn trong container.

[*]
./auth/nginx.conf:/etc/nginx/nginx.conf:ro ánh xạ tệp cài đặt Nginx từ hệ thống sang tệp trong container ở chế độ chỉ đọc.

[*]
./logs:/var/log/nginx cho phép truy cập vào nhật ký của Nginx trên hệ thống bằng cách ánh xạ vào thư mục nhật ký Nginx trong container.

[*]
Thiết lập của sổ đăng ký Docker được lưu trữ trong tệp /etc/docker/registry/config.yml trong vùng chứa và chúng tôi đã ánh xạ tệp này tới tệp config.yml trong thư mục hiện tại, chúng tôi sẽ tạo tệp này ở bước tiếp theo.

Thiết lập xác thực​

Để thiết lập xác thực HTTP, bạn cần để cài đặt gói httpd-tools.
Mã:
$ sudo apt install apache2-utils -y
Tạo tệp mật khẩu trong ~/docker-registry/auth thư mục.
Mã:
$ htpasswd -Bc ~/docker-registry/auth/nginx.htpasswd user1
New password:
Re-type new password:
Adding password for user user1
Cờ -c hướng dẫn lệnh tạo tệp mới và cờ -B dùng để sử dụng thuật toán bcrypt được Docker hỗ trợ. Thay thế user1 bằng tên người dùng bạn chọn.

Nếu bạn muốn thêm nhiều người dùng hơn, hãy chạy lại lệnh nhưng không có -c flag.
Mã:
$ htpasswd -B ~/docker-registry/auth/registry.password user2
Bây giờ, tệp sẽ được ánh xạ tới vùng chứa sổ đăng ký để xác thực.

Bước 4 - Cài đặt SSL​

Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.

Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn đã được cập nhật.
Mã:
$ sudo snap install core && sudo snap refresh core
Cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Chạy lệnh sau để tạo SSL Chứng chỉ.
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d registry.example.com
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/registry.example.com trên máy chủ của bạn.

Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Mã:
$ sudo systemctl list-timers
Bạn sẽ tìm thấy snap.certbot.renew.service là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Sun 2023-04-14 00:00:00 UTC 19min left Sat 2023-02-25 18:04:05 UTC n/a snap.certbot.renew.timer snap.certbot.renew.service
Sun 2023-04-14 00:00:20 UTC 19min left Sat 2023-02-25 10:49:23 UTC 14h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2023-04-14 00:44:06 UTC 3h 22min left Sat 2023-02-25 20:58:06 UTC 7h ago apt-daily.timer apt-daily.service
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Mã:
$ sudo certbot renew --dry-run
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Sao chép tệp Dhparam vào vùng chứa​

Sao chép chứng chỉ nhóm Diffie-Hellman vào thư mục ~/docker-registry/auth, thư mục này sẽ được ánh xạ tới container.
Mã:
$ sudo cp /etc/ssl/certs/dhparam.pem ~/docker-registry/auth

Bước 5 - Cấu hình Nginx​

Bước tiếp theo liên quan đến việc cấu hình máy chủ Nginx làm proxy giao diện người dùng cho máy chủ đăng ký Docker. Đăng ký Docker đi kèm với một máy chủ tích hợp hoạt động ở cổng 5000. Chúng tôi sẽ đặt nó sau Nginx.

Tạo và mở tệp ~/docker-registry/auth/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano ~/docker-registry/auth/nginx.conf
Dán mã sau vào nó.
Mã:
events { worker_connections 1024;
}
http { upstream docker-registry { server registry:5000; } ## Set a variable to help us decide if we need to add the ## 'Docker-Distribution-Api-Version' header. ## The registry always sets this header. ## In the case of nginx performing auth, the header is unset ## since nginx is auth-ing before proxying. map $upstream_http_docker_distribution_api_version $docker_distribution_api_version { '' 'registry/2.0'; } server { listen 443 ssl http2; server_name registry.example.com; # SSL ssl_certificate /etc/letsencrypt/live/registry.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/registry.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/registry.example.com/chain.pem; access_log /var/log/nginx/registry.access.log; error_log /var/log/nginx/registry.error.log; # Recommendations from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers on; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_session_cache shared:SSL:10m; ssl_dhparam /etc/nginx/conf.d/dhparam.pem; resolver 8.8.8.8; # disable any limits to avoid HTTP 413 for large image uploads client_max_body_size 0; # required to avoid HTTP 411: see Issue #1486 (https://github.com/moby/moby/issues/1486) chunked_transfer_encoding on; location /v2/ { # Do not allow connections from docker 1.5 and earlier # docker pre-1.6.0 did not properly set the user agent on ping, catch "Go *" user agents if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" ) { return 404; } # To add basic authentication to v2 use auth_basic setting. auth_basic "Registry realm"; auth_basic_user_file /etc/nginx/conf.d/nginx.htpasswd; ## If $docker_distribution_api_version is empty, the header is not added. ## See the map directive above where this variable is defined. add_header 'Docker-Distribution-Api-Version' $docker_distribution_api_version always; proxy_pass http://docker-registry; proxy_set_header Host $http_host; # required for docker client's sake proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 900; } }
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Bước 6 - Khởi chạy Docker Registry​

Chuyển sang Docker Registry thư mục.
Mã:
$ cd ~/docker-registry
Khởi chạy container docker.
Mã:
$ docker compose up -d
Kiểm tra trạng thái của container.
Mã:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3328b7e36bb2 nginx:alpine "/docker-entrypoint.…" About a minute ago Up 3 seconds 80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp docker-registry-nginx-1
bf7cdfc0e013 registry:2 "/entrypoint.sh /etc…" About a minute ago Up About a minute 5000/tcp docker-registry-registry-1
Đăng nhập vào sổ đăng ký Docker.
Mã:
$ docker login -u=user1 -p=password https://registry.example.com
Bạn sẽ nhận được thông tin sau đầu ra.
Mã:
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/username/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Bạn cũng có thể mở URL https://registry.example.com/v2/ trong trình duyệt của mình và nó sẽ yêu cầu tên người dùng và mật khẩu. Bạn sẽ thấy một trang trống có {} trên đó.

Bạn có thể kiểm tra URL trên thiết bị đầu cuối bằng cách sử dụng curl.
Mã:
$ curl -u user1 -X GET https://registry.example.com/v2/
Enter host password for user 'user1':
{}
Tải xuống Ubuntu docker mới nhất hình ảnh.
Mã:
$ docker pull ubuntu:latest
Gắn thẻ hình ảnh này cho sổ đăng ký riêng tư.
Mã:
$ docker tag ubuntu:latest registry.example.com/ubuntu2204
Đẩy hình ảnh vào đăng ký.
Mã:
$ docker push registry.example.com/ubuntu2204
Kiểm tra xem việc đẩy có thành công không.
Mã:
$ curl -u user1 -X GET https://registry.example.com/v2/_catalog
Enter host password for user 'user1':
{"repositories":["ubuntu2204"]}
Nhập mật khẩu xác thực Nginx của bạn khi được nhắc và bạn sẽ thấy danh sách các kho lưu trữ có sẵn thông qua sổ đăng ký.

Đăng xuất bằng thiết bị đầu cuối để xóa credentials.
Mã:
$ docker logout https://registry.example.com
Removing login credentials for registry.example.com
Kiểm tra danh sách hình ảnh Docker hiện có thể sử dụng.
Mã:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry 2 8db46f9d7550 2 weeks ago 24.2MB
nginx alpine 8e75cbc5b25c 2 weeks ago 41MB
ubuntu latest 08d22c0ceb15 5 weeks ago 77.8MB
registry.example.com/ubuntu2204 latest 08d22c0ceb15 5 weeks ago 77.8MB

Bước 7 - Truy cập và sử dụng sổ đăng ký Docker từ Máy khách​

Đăng nhập vào máy khách-máy chủ của bạn. Ở bước 1, chúng tôi đã cài đặt Docker trên máy khách.

Đăng nhập vào sổ đăng ký Docker riêng từ máy khách.
Mã:
$ docker login -u=user1 -p=password https://registry.example.com
Kéo ảnh Ubuntu từ sổ đăng ký.
Mã:
$ docker pull registry.example.com/ubuntu2204
Liệt kê tất cả ảnh trên máy khách của bạn máy.
Mã:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.example.com/ubuntu2204 latest 08d22c0ceb15 5 weeks ago 77.8MB
Tạo và khởi chạy một container bằng cách sử dụng hình ảnh đã tải xuống.
Mã:
$ docker run -it registry.example.com/ubuntu2204 /bin/bash
Bạn sẽ được đăng nhập vào Shell bên trong Ubuntu container.
Mã:
root@647899f255db:
Chạy lệnh sau để kiểm tra phiên bản Linux.
Mã:
root@a2da49fdbea9$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
Bây giờ, bạn có thể bắt đầu sử dụng sổ đăng ký Docker từ máy khách của mình.

Kết luận​

Đây là phần kết thúc hướng dẫn của chúng tôi về cách thiết lập sổ đăng ký Docker riêng trên máy chủ Ubuntu 22.04 sử dụng Amazon S3 làm bộ lưu trữ. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng vào phần bình luận bên dưới.
 
Back
Bên trên