Home > Dịch vụ Cloud > Cloud Server > Hệ Điều Hành Ubuntu > Làm thế nào để cài đặt và sử dụng Docker trên Ubuntu 18.04

Làm thế nào để cài đặt và sử dụng Docker trên Ubuntu 18.04

Giới thiệu

Docker là một ứng dụng đơn giản hóa quá trình quản lý các quy trình ứng dụng trong hộp đựng. Các thùng chứa cho phép bạn chạy các ứng dụng của mình trong các quy trình phân tách tài nguyên. Chúng tương tự như các máy ảo, nhưng các thùng chứa có tính di động cao hơn, thân thiện với tài nguyên hơn và phụ thuộc nhiều hơn vào hệ điều hành máy chủ.

Trong hướng dẫn này, bạn sẽ cài đặt và sử dụng Docker Community Edition (CE) trên Ubuntu 18.04. Bạn sẽ cài đặt Docker chính nó, làm việc với các thùng chứa và hình ảnh, và đẩy một hình ảnh vào một kho lưu trữ Docker.

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

Để làm theo hướng dẫn này, bạn sẽ cần những điều sau đây:

  • Một máy chủ Ubuntu 18.04.
  • Tài khoản trên Docker Hub nếu bạn muốn tạo hình ảnh của riêng mình và đẩy chúng vào Docker Hub, như trong các bước 7 và 8.

Bước 1 - Cài đặt Docker

Gói cài đặt Docker có sẵn trong kho lưu trữ Ubuntu chính thức có thể không phải là phiên bản mới nhất. Để đảm bảo chúng tôi nhận được phiên bản mới nhất, chúng tôi sẽ cài đặt Docker từ kho lưu trữ Docker chính thức. Để làm điều đó, chúng ta sẽ thêm một nguồn gói mới, thêm khóa GPG từ Docker để đảm bảo các bản tải xuống là hợp lệ và sau đó cài đặt gói.

Trước tiên, hãy cập nhật danh sách các gói hiện có của bạn:

sudo apt update

Tiếp theo, cài đặt một vài gói tiên quyết cho phép apt sử dụng các gói qua HTTPS:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Sau đó, thêm khóa GPG cho kho lưu trữ Docker chính thức vào hệ thống của bạn:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Thêm kho lưu trữ Docker vào các nguồn APT:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

Tiếp theo, cập nhật cơ sở dữ liệu gói với các gói Docker từ repo mới được bổ sung:

sudo apt update

Hãy chắc chắn rằng bạn sắp cài đặt từ repo Docker thay vì repo Ubuntu mặc định:

apt-cache policy docker-ce

Bạn sẽ thấy đầu ra như thế này, mặc dù số phiên bản cho Docker có thể khác nhau:

Output of apt-cache policy docker-ce

docker-ce:
  Installed: (none)
  Candidate: 18.03.1~ce~3-0~ubuntu
  Version table:
     18.03.1~ce~3-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages

Thông báo rằng docker-ce chưa được cài đặt, nhưng ứng cử viên để cài đặt là từ kho lưu trữ Docker cho Ubuntu 18.04 (bionic).

Cuối cùng, cài đặt Docker:

sudo apt install docker-ce

Docker bây giờ sẽ được cài đặt, daemon bắt đầu, và quá trình được kích hoạt để bắt đầu khởi động. Kiểm tra xem nó có đang chạy không:

sudo systemctl status docker

Đầu ra phải tương tự như sau, cho thấy dịch vụ đang hoạt động và đang chạy:

Output● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-05 15:08:39 UTC; 2min 55s ago
     Docs: https://docs.docker.com
 Main PID: 10096 (dockerd)
    Tasks: 16
   CGroup: /system.slice/docker.service
           ├─10096 /usr/bin/dockerd -H fd://
           └─10113 docker-containerd --config /var/run/docker/containerd/containerd.toml

Cài đặt Docker giờ đây không chỉ cung cấp cho bạn dịch vụ Docker (daemon) mà còn docker tiện ích dòng lệnh hoặc trình khách Docker. Chúng tôi sẽ khám phá cách sử dụng docker lệnh sau trong hướng dẫn này.

Bước 2 - Thực hiện lệnh Docker Không có Sudo (Tùy chọn)

Theo mặc định, docker lệnh chỉ có thể chạy nguồn gốc người dùng hoặc bởi người dùng trong docker nhóm được tạo tự động trong quá trình cài đặt của Docker. Nếu bạn cố gắng chạy docker lệnh mà không cần thêm tiền tố sudo hoặc không ở trong docker nhóm, bạn sẽ nhận được một đầu ra như thế này:

Outputdocker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.

Nếu bạn muốn tránh gõ sudo bất cứ khi nào bạn chạy docker lệnh, thêm tên người dùng của bạn vào docker nhóm:

sudo usermod -aG docker ${USER}

Để áp dụng tư cách thành viên nhóm mới, hãy đăng xuất khỏi máy chủ và đăng nhập lại hoặc nhập thông tin sau:

su - ${USER}

Bạn sẽ được nhắc nhập mật khẩu của người dùng để tiếp tục.

Xác nhận rằng người dùng của bạn hiện đã được thêm vào docker nhóm bằng cách gõ:

id -nG

Output
sammy sudo docker

Nếu bạn cần thêm người dùng vào docker nhóm mà bạn không đăng nhập bằng, khai báo tên người dùng đó một cách rõ ràng bằng cách sử dụng:

sudo usermod -aG docker username

Phần còn lại của bài viết này giả định bạn đang chạy docker lệnh như một người dùng trong docker nhóm. Nếu bạn chọn không, vui lòng thêm các lệnh sudo.

Hãy cùng khám phá docker lệnh tiếp theo.

Bước 3 - Sử dụng lệnh Docker

Sử dụng docker bao gồm việc truyền một chuỗi các tùy chọn và các lệnh theo sau bởi các đối số. Cú pháp có dạng này:

docker [option] [command] [arguments]

Để xem tất cả các tiểu ban có sẵn, hãy nhập:

docker

Kể từ Docker 18, danh sách đầy đủ các subcommands sẵn có bao gồm:

Output
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Để xem các tùy chọn có sẵn cho một lệnh cụ thể, hãy nhập:

docker docker-subcommand --help

Để xem thông tin toàn hệ thống về Docker, hãy sử dụng:

docker info

Hãy khám phá một số lệnh này. Chúng tôi sẽ bắt đầu bằng cách làm việc với hình ảnh.

Bước 4 - Làm việc với hình ảnh Docker

Docker container được xây dựng từ Docker images. Theo mặc định, Docker kéo những hình ảnh này từ [Docker Hub] (https://hub.docker.com], một đăng ký Docker được quản lý bởi Docker, công ty đứng sau dự án Docker. Bất cứ ai cũng có thể lưu trữ hình ảnh Docker của họ trên Docker Hub, vì vậy hầu hết các ứng dụng và bản phân phối Linux bạn cần sẽ có hình ảnh được lưu trữ ở đó.

Để kiểm tra xem bạn có thể truy cập và tải xuống hình ảnh từ Docker Hub hay không, hãy nhập:

docker run hello-world

Đầu ra sẽ chỉ ra rằng Docker hoạt động chính xác:

OutputUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef2718514bcec35d
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Docker ban đầu không thể tìm thấy hello-world hình ảnh cục bộ, do đó, nó đã tải xuống hình ảnh từ Docker Hub, là kho lưu trữ mặc định. Khi hình ảnh được tải xuống, Docker đã tạo một vùng chứa từ hình ảnh và ứng dụng trong vùng chứa được thực hiện, hiển thị thông báo.

Bạn có thể tìm kiếm hình ảnh có sẵn trên Docker Hub bằng cách sử dụng docker lệnh với search tiểu ban. Ví dụ: để tìm kiếm hình ảnh Ubuntu, hãy nhập:

docker search ubuntu

Tập lệnh sẽ thu thập thông tin Docker Hub và trả về một danh sách tất cả các hình ảnh có tên khớp với chuỗi tìm kiếm. Trong trường hợp này, đầu ra sẽ tương tự như sau:

OutputNAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating sys…   7917                [OK]
dorowu/ubuntu-desktop-lxde-vnc                            Ubuntu with openssh-server and NoVNC            193                                     [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of offi…   156                                     [OK]
ansible/ubuntu14.04-ansible                               Ubuntu 14.04 LTS with ansible                   93                                      [OK]
ubuntu-upstart                                            Upstart is an event-based replacement for th…   87                  [OK]
neurodebian                                               NeuroDebian provides neuroscience research s…   50                  [OK]
ubuntu-debootstrap                                        debootstrap --variant=minbase --components=m…   38                  [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5      ubuntu-16-nginx-php-phpmyadmin-mysql-5          36                                      [OK]
nuagebec/ubuntu                                           Simple always updated Ubuntu docker images w…   23                                      [OK]
tutum/ubuntu                                              Simple Ubuntu docker images with SSH access     18
i386/ubuntu                                               Ubuntu is a Debian-based Linux operating sys…   13
ppc64le/ubuntu                                            Ubuntu is a Debian-based Linux operating sys…   12
1and1internet/ubuntu-16-apache-php-7.0                    ubuntu-16-apache-php-7.0                        10                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10   ubuntu-16-nginx-php-phpmyadmin-mariadb-10       6                                       [OK]
eclipse/ubuntu_jdk8                                       Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, …   6                                       [OK]
codenvy/ubuntu_jdk8                                       Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, …   4                                       [OK]
darksheer/ubuntu                                          Base Ubuntu Image -- Updated hourly             4                                       [OK]
1and1internet/ubuntu-16-apache                            ubuntu-16-apache                                3                                       [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4         ubuntu-16-nginx-php-5.6-wordpress-4             3                                       [OK]
1and1internet/ubuntu-16-sshd                              ubuntu-16-sshd                                  1                                       [OK]
pivotaldata/ubuntu                                        A quick freshening-up of the base Ubuntu doc…   1
1and1internet/ubuntu-16-healthcheck                       ubuntu-16-healthcheck                           0                                       [OK]
pivotaldata/ubuntu-gpdb-dev                               Ubuntu images for GPDB development              0
smartentry/ubuntu                                         ubuntu with smartentry                          0                                       [OK]
ossobv/ubuntu
...

bên trong CHÍNH THỨC cột, được cho biết hình ảnh được xây dựng và hỗ trợ bởi công ty đằng sau dự án. Khi bạn đã xác định được hình ảnh mà bạn muốn sử dụng, bạn có thể tải nó xuống máy tính của mình bằng cách sử dụng pull tiểu ban.

Thực hiện lệnh sau để tải xuống chính thức ubuntu hình ảnh vào máy tính của bạn:

docker pull ubuntu

Bạn sẽ thấy kết quả sau:

OutputUsing default tag: latest
latest: Pulling from library/ubuntu
6b98dfc16071: Pull complete
4001a1209541: Pull complete
6319fc68c576: Pull complete
b24603670dc3: Pull complete
97f170c87c6f: Pull complete
Digest: sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d
Status: Downloaded newer image for ubuntu:latest

Sau khi một hình ảnh đã được tải xuống, bạn có thể chạy một vùng chứa bằng cách sử dụng hình ảnh đã tải xuống bằng run tiểu ban. Như bạn đã thấy với hello-world ví dụ: nếu hình ảnh chưa được tải xuống khi docker được thực hiện với run tiểu ban, khách hàng Docker trước tiên sẽ tải xuống hình ảnh, sau đó chạy một vùng chứa bằng cách sử dụng nó.

Để xem hình ảnh đã được tải xuống máy tính của bạn, hãy nhập:

docker images

Đầu ra sẽ trông giống như sau:

OutputREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        4 weeks ago         81.2MB
hello-world         latest              e38bc07ac18e        2 months ago        1.85kB

Như bạn sẽ thấy sau trong hướng dẫn này, các hình ảnh mà bạn sử dụng để chạy các thùng chứa có thể được sửa đổi và sử dụng để tạo ra các hình ảnh mới, những hình ảnh này sau đó có thể được tải lên (bị đẩy là thuật ngữ kỹ thuật) cho Docker Hub hoặc các đăng ký Docker khác.

Hãy xem cách chạy các thùng chứa chi tiết hơn.

Bước 5 - Chạy một Docker Container

Các hello-world vùng chứa bạn đã chạy ở bước trước là ví dụ về vùng chứa chạy và thoát sau khi phát ra thông báo thử nghiệm. Các thùng chứa có thể hữu ích hơn nhiều và có thể tương tác. Sau khi tất cả, họ là tương tự như máy ảo, chỉ có nhiều tài nguyên thân thiện.

Ví dụ, hãy chạy một container bằng cách sử dụng hình ảnh mới nhất của Ubuntu. Sự kết hợp của -tôi và -t công tắc cho phép bạn truy cập trình bao tương tác vào vùng chứa:

docker run -it ubuntu

Dấu nhắc lệnh của bạn sẽ thay đổi để phản ánh thực tế rằng bạn hiện đang làm việc bên trong vùng chứa và nên sử dụng biểu mẫu này:

Outputroot@d9b100f2f636:/#

Lưu ý id vùng chứa trong dấu nhắc lệnh. Trong ví dụ này, nó là d9b100f2f636. Bạn sẽ cần ID vùng chứa đó sau để xác định vùng chứa khi bạn muốn xóa nó.

Bây giờ bạn có thể chạy bất kỳ lệnh nào bên trong vùng chứa. Ví dụ, hãy cập nhật cơ sở dữ liệu gói bên trong vùng chứa. Bạn không cần phải tiền tố bất kỳ lệnh nào với sudobởi vì bạn đang hoạt động bên trong vùng chứa làm nguồn gốc người dùng:

apt update

Sau đó cài đặt bất kỳ ứng dụng nào trong đó. Hãy cài đặt Node.js:

apt install nodejs

Thao tác này sẽ cài đặt Node.js trong vùng chứa từ kho lưu trữ Ubuntu chính thức. Khi quá trình cài đặt kết thúc, hãy xác minh rằng Node.js đã được cài đặt:

node -v

Bạn sẽ thấy số phiên bản được hiển thị trong thiết bị đầu cuối của mình:

Outputv8.10.0

Mọi thay đổi bạn thực hiện bên trong vùng chứa chỉ áp dụng cho vùng chứa đó.

Để thoát khỏi vùng chứa, hãy nhập exit tại dấu nhắc.

Hãy xem xét quản lý các thùng chứa trên hệ thống của chúng tôi tiếp theo.

Bước 6 - Quản lý vùng chứa Docker

Sau khi sử dụng Docker trong một thời gian, bạn sẽ có nhiều thùng chứa hoạt động (đang chạy) và không hoạt động trên máy tính của mình. Để xem hoạt động, sử dụng:

docker ps

Bạn sẽ thấy đầu ra tương tự như sau:

OutputCONTAINER ID        IMAGE               COMMAND             CREATED             

Trong hướng dẫn này, bạn đã bắt đầu hai thùng chứa; một từ hello-world hình ảnh và hình ảnh khác từ ubuntu hình ảnh. Cả hai thùng chứa không còn chạy nữa nhưng chúng vẫn tồn tại trên hệ thống của bạn.

Để xem tất cả các vùng chứa - hoạt động và không hoạt động, hãy chạy docker ps với -a công tắc điện:

docker ps -a

Bạn sẽ thấy đầu ra tương tự như sau:

d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Exited (0) 8 minutes ago                           sharp_volhard
01c950718166        hello-world         "/hello"            About an hour ago   Exited (0) About an hour ago                       festive_williams

Để xem vùng chứa mới nhất bạn đã tạo, hãy chuyển nó -l công tắc điện:

docker ps -l

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES

d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Exited (0) 10 minutes ago                       sharp_volhard

Để bắt đầu vùng chứa đã ngừng, hãy sử dụng docker start, theo sau là ID vùng chứa hoặc tên của vùng chứa. Hãy bắt đầu vùng chứa dựa trên Ubuntu với ID của d9b100f2f636:

docker start d9b100f2f636

Vùng chứa sẽ bắt đầu và bạn có thể sử dụng docker ps để xem trạng thái của nó:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Up 8 seconds                            sharp_volhard

Để dừng một thùng chứa đang chạy, hãy sử dụng docker stop, theo sau là tên hoặc ID vùng chứa. Lần này, chúng ta sẽ sử dụng tên Docker đã gán vùng chứa, đó là sharp_volhard:

docker stop sharp_volhard

Khi bạn đã quyết định không còn cần một vùng chứa nữa, hãy xóa nó bằng docker rm lệnh, một lần nữa bằng cách sử dụng ID vùng chứa hoặc tên. Sử dụng docker ps -a lệnh để tìm ID vùng chứa hoặc tên cho vùng chứa được liên kết với hello-world hình ảnh và xóa nó.

docker rm festive_williams

Bạn có thể bắt đầu một vùng chứa mới và đặt tên cho nó bằng cách sử dụng --name công tắc điện. Bạn cũng có thể sử dụng --rm chuyển sang tạo vùng chứa tự xóa khi bị dừng. Xem docker run help lệnh để biết thêm thông tin về các tùy chọn này và các tùy chọn khác.

Thùng chứa có thể được chuyển thành hình ảnh mà bạn có thể sử dụng để tạo vùng chứa mới. Hãy xem cách hoạt động.

Bước 7 - Thực hiện thay đổi trong vùng chứa cho hình ảnh Docker

Khi bạn khởi động một hình ảnh Docker, bạn có thể tạo, sửa đổi và xóa các tập tin giống như bạn có thể làm với một máy ảo. Những thay đổi bạn thực hiện sẽ chỉ áp dụng cho vùng chứa đó. Bạn có thể bắt đầu và dừng nó, nhưng một khi bạn phá hủy nó với docker rm lệnh, các thay đổi sẽ bị mất cho tốt.

Phần này cho bạn thấy cách lưu trạng thái của vùng chứa làm hình ảnh Docker mới.

Sau khi cài đặt Node.js bên trong thùng chứa Ubuntu, bây giờ bạn có một thùng chứa đang chạy khỏi một hình ảnh, nhưng vùng chứa khác với hình ảnh bạn đã sử dụng để tạo ra nó. Nhưng bạn có thể muốn sử dụng lại vùng chứa Node.js này làm cơ sở cho các hình ảnh mới sau này.

Sau đó, cam kết các thay đổi đối với một cá thể hình ảnh Docker mới bằng cách sử dụng lệnh sau đây.

docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

Các -m chuyển đổi dành cho thông báo cam kết giúp bạn và những người khác biết những thay đổi bạn đã thực hiện, trong khi -a được sử dụng để chỉ định tác giả. Các container_id là một trong những bạn đã lưu ý trước đó trong hướng dẫn khi bạn bắt đầu phiên Docker tương tác. Trừ khi bạn tạo thêm kho lưu trữ trên Docker Hub, repository thường là tên người dùng Docker Hub của bạn.

Ví dụ: đối với người dùng sammy, với ID vùng chứa của d9b100f2f636, lệnh sẽ là:

docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs

Khi bạn cam kết một hình ảnh, hình ảnh mới được lưu cục bộ trên máy tính của bạn. Trong phần sau của hướng dẫn này, bạn sẽ tìm hiểu cách đẩy một hình ảnh vào một đăng ký Docker như Docker Hub để những người khác có thể truy cập nó.

Liệt kê các hình ảnh Docker một lần nữa sẽ hiển thị hình ảnh mới, cũng như hình ảnh cũ mà nó được lấy từ:

docker images

Bạn sẽ thấy đầu ra như thế này:

OutputREPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
sammy/ubuntu-nodejs   latest              7c1f35226ca6        7 seconds ago       179MB
ubuntu                   latest              113a43faa138        4 weeks ago         81.2MB
hello-world              latest              e38bc07ac18e        2 months ago        1.85kB

Trong ví dụ này, ubuntu-nodejs là hình ảnh mới, được bắt nguồn từ hiện tại ubuntu hình ảnh từ Docker Hub. Sự khác biệt kích thước phản ánh những thay đổi đã được thực hiện. Và trong ví dụ này, sự thay đổi là NodeJS đã được cài đặt. Vì vậy, lần sau khi bạn cần chạy một thùng chứa bằng cách sử dụng Ubuntu với NodeJS được cài đặt sẵn, bạn chỉ có thể sử dụng hình ảnh mới.

Bạn cũng có thể tạo hình ảnh từ Dockerfile, cho phép bạn tự động cài đặt phần mềm trong một hình ảnh mới. Tuy nhiên, đó là nằm ngoài phạm vi của hướng dẫn này.

Bây giờ hãy chia sẻ hình ảnh mới với những người khác để họ có thể tạo các thùng chứa từ nó.

Bước 8 - Đẩy hình ảnh Docker vào kho lưu trữ Docker

Bước hợp lý tiếp theo sau khi tạo một hình ảnh mới từ một hình ảnh hiện có là chia sẻ nó với một số ít bạn bè của bạn, toàn thế giới trên Docker Hub hoặc đăng ký Docker khác mà bạn có quyền truy cập. Để đẩy một hình ảnh vào Docker Hub hoặc bất kỳ đăng ký Docker khác, bạn phải có một tài khoản ở đó.

Phần này cho bạn thấy làm thế nào để đẩy một hình ảnh Docker đến Docker Hub. Để tìm hiểu cách tạo đăng ký Docker riêng của riêng bạn.

Để đẩy hình ảnh của bạn, trước tiên hãy đăng nhập vào Docker Hub.

docker login -u docker-registry-username

Bạn sẽ được nhắc xác thực bằng mật khẩu Trung tâm Docker. Nếu bạn chỉ định mật khẩu chính xác, xác thực sẽ thành công. Sau đó, bạn có thể đẩy hình ảnh của riêng mình bằng cách sử dụng:

docker push docker-registry-username/docker-image-name

Để đẩy ubuntu-nodejs hình ảnh cho sammy kho lưu trữ, lệnh sẽ là:

docker push sammy/ubuntu-nodejs

Quá trình này có thể mất chút thời gian để hoàn thành khi tải lên hình ảnh nhưng khi hoàn thành, đầu ra sẽ trông như sau:

OutputThe push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed

...

Sau khi đẩy hình ảnh vào sổ đăng ký, nó sẽ được liệt kê trên trang tổng quan của tài khoản của bạn, như hiển thị trong hình dưới đây.