Mục lục

Không có mục lục
Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly

Cách cài đặt và sử dụng Docker trên Ubuntu 16.04

Ngày đăng: 18 tháng 3 năm 2025

Giới thiệu

Docker là một ứng dụng giúp chạy các quy trình ứng dụng trong một container, giống như máy ảo, nhưng dễ dàng và di động 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ủ.

Có hai phương pháp để cài đặt Docker trên Ubuntu 16.04. Một phương pháp liên quan đến việc cài đặt nó trên một bản cài đặt hệ điều hành hiện có. Phương pháp còn lại liên quan đến việc khởi động một máy chủ bằng một công cụ có tên là Docker Machine để tự động cài đặt Docker trên đó.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt và sử dụng nó trên một bản cài đặt Ubuntu 16.04 hiện có.

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

Để làm theo hướng dẫn này, bạn sẽ cần những thứ sau:

  • Một máy chủ Ubuntu 16.04 được thiết lập với non-root user có quyền sudo và tường lửa cơ bản, như đã giải thích trong Hướng dẫn thiết lập ban đầu cho Ubuntu 16.04
  • Một 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 lên Docker Hub, như được hiển thị trong Bước 7 và 8

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

Gói cài đặt Docker có trong kho lưu trữ Ubuntu 16.04 chính thức có thể không phải là phiên bản mới nhất. Để có phiên bản mới nhất này, hãy cài đặt Docker từ kho lưu trữ Docker chính thức. Phần này sẽ hướng dẫn bạn cách thực hiện điều đó.

Đầu tiên, để đảm bảo các bản tải xuống hợp lệ, hãy thêm khóa GPG cho kho lưu trữ Docker chính thức vào hệ thống của bạn:

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

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

  1. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Tiếp theo, cập nhật cơ sở dữ liệu gói bằng các gói Docker từ kho lưu trữ mới được thêm vào:

  1. sudo apt-get update

Hãy đảm bảo rằng bạn sắp cài đặt từ kho lưu trữ Docker thay vì kho lưu trữ Ubuntu 16.04 mặc định:

  1. apt-cache policy docker-ce

Bạn sẽ thấy kết quả tương tự như sau:

Output of apt-cache policy docker-ce
docker-ce:
  Installed: (none)
  Candidate: 18.06.1~ce~3-0~ubuntu
  Version table:
     18.06.1~ce~3-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages

Lưu ý rằng docker-ce chưa được cài đặt, nhưng ứng viên để cài đặt là từ kho lưu trữ Docker cho Ubuntu 16.04 (xenial).

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

  1. sudo apt-get install -y docker-ce

Docker bây giờ sẽ được cài đặt, daemon đã được khởi động và quy trình đã được bật để khởi động khi khởi động. Kiểm tra xem nó có đang chạy không:

  1. sudo systemctl status docker

Đầu ra sẽ tương tự như sau, cho thấy dịch vụ đang hoạt động và 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-10-18 20:28:23 UTC; 35s ago Docs: https://docs.docker.com Main PID: 13412 (dockerd) CGroup: /system.slice/docker.service ├─13412 /usr/bin/dockerd -H fd:// └─13421 docker-containerd --config /var/run/docker/containerd/containerd.toml

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

Bước 2 — Thực thi lệnh Docker mà không cần Sudo (Tùy chọn)

Theo mặc định, việc chạy lệnh docker yêu cầu quyền root — nghĩa là bạn phải thêm tiền tố sudo vào lệnh. Người dùng trong nhóm docker cũng có thể chạy lệnh này, nhóm này được tạo tự động trong quá trình cài đặt Docker. Nếu bạn cố gắng chạy lệnh docker mà không thêm tiền tố sudo hoặc không nằm trong nhóm docker, bạn sẽ nhận được kết quả như sau:

Output
docker: 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 phải nhập sudo mỗi khi chạy lệnh docker, hãy thêm tên người dùng của bạn vào nhóm docker:

  1. sudo usermod -aG docker ${USER}

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

  1. su - ${USER}

Bạn sẽ được nhắc nhập mật khẩu người dùng để tiếp tục. Sau đó, bạn có thể xác nhận rằng người dùng của bạn hiện đã được thêm vào nhóm docker bằng cách nhập:

  1. id -nG
Output
sammy sudo docker

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

  1. sudo usermod -aG docker username

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

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

Khi Docker đã được cài đặt và hoạt động, giờ là lúc làm quen với tiện ích dòng lệnh. Sử dụng docker bao gồm việc truyền cho nó một chuỗi các tùy chọn và lệnh theo sau là các đối số. Cú pháp có dạng sau:

  1. docker [option] [command] [arguments]

Để xem tất cả các lệnh phụ có sẵn, hãy nhập:

  1. docker

Tính đến Docker 18.06.1, danh sách đầy đủ các lệnh phụ khả dụng 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 công tắc có sẵn cho một lệnh cụ thể, hãy nhập:

  1. docker docker-subcommand --help

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

  1. docker info

Bước 4 — Làm việc với Docker Images

Các container Docker được chạy từ các image Docker. Theo mặc định, nó sẽ kéo các image này từ Docker Hub, một sổ đăng ký Docker do Docker quản lý, công ty đứng sau dự án Docker. Bất kỳ ai cũng có thể xây dựng và lưu trữ các image 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 mà bạn cần chạy các container Docker đều có các image được lưu trữ trên Docker Hub.

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

  1. docker run hello-world

Trong kết quả đầu ra, bạn sẽ thấy thông báo sau, cho biết Docker đang hoạt động chính xác:

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

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 lệnh docker với lệnh phụ search. Ví dụ, để tìm kiếm hình ảnh Ubuntu, hãy nhập:

  1. docker search ubuntu

Tập lệnh sẽ thu thập Docker Hub và trả về 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:

Output
NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating sys… 8564 [OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 230 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 176 [OK] consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 129 [OK] ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 95 [OK] ubuntu-upstart Upstart is an event-based replacement for th… 91 [OK] neurodebian NeuroDebian provides neuroscience research s… 54 [OK] 1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 48 [OK] ubuntu-debootstrap debootstrap --variant=minbase --components=m… 39 [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… 14 1and1internet/ubuntu-16-apache-php-7.0 ubuntu-16-apache-php-7.0 13 [OK] ppc64le/ubuntu Ubuntu is a Debian-based Linux operating sys… 12 eclipse/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 6 [OK] 1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4 ubuntu-16-nginx-php-5.6-wordpress-4 6 [OK] codenvy/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 4 [OK] darksheer/ubuntu Base Ubuntu Image -- Updated hourly 4 [OK] pivotaldata/ubuntu A quick freshening-up of the base Ubuntu doc… 2 1and1internet/ubuntu-16-sshd ubuntu-16-sshd 1 [OK] smartentry/ubuntu ubuntu with smartentry 1 [OK] ossobv/ubuntu Custom ubuntu image from scratch (based on o… 0 paasmule/bosh-tools-ubuntu Ubuntu based bosh-cli 0 [OK] 1and1internet/ubuntu-16-healthcheck ubuntu-16-healthcheck 0 [OK] pivotaldata/ubuntu-gpdb-dev Ubuntu images for GPDB development 0

Trong cột OFFICIAL, OK chỉ ra một hình ảnh được xây dựng và hỗ trợ bởi công ty đằng sau dự án. Sau khi bạn đã xác định được hình ảnh mà bạn muốn sử dụng, bạn có thể tải xuống máy tính của mình bằng lệnh phụ pull. Hãy thử điều này với image ubuntu, như sau:

  1. docker pull ubuntu

Sau khi tải xuống một image, bạn có thể chạy một container bằng hình ảnh đã tải xuống với lệnh phụ run. Nếu hình ảnh chưa được tải xuống khi docker được thực thi với lệnh phụ run, thì trước tiên, máy khách Docker sẽ tải xuống hình ảnh, sau đó chạy một container bằng cách sử dụng hình ảnh đó:

  1. docker run ubuntu

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

  1. docker images

Kết quả đầu ra sẽ trông tương tự như sau:

Output
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest ea4c82dcd15a 16 hours ago 85.8MB hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB

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 container có thể được sửa đổi và sử dụng để tạo ra các hình ảnh mới, sau đó có thể được tải lên (đẩy (pushed ) là thuật ngữ kỹ thuật) lên Docker Hub hoặc các sổ đăng ký Docker khác.

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

Container hello-world mà bạn đã chạy ở bước trước là một ví dụ về một container chạy và thoát sau khi phát ra thông báo kiểm tra. Container có thể hữu ích hơn thế nhiều và chúng có thể tương tác. Xét cho cùng, chúng tương tự như máy ảo, chỉ thân thiện hơn với tài nguyên.

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

  1. docker run -it ubuntu

Lưu ý: Hành vi mặc định cho lệnh run là khởi động một container mới. Sau khi bạn chạy lệnh trước đó, bạn sẽ mở giao diện shell của một container ubuntu thứ hai.

Dấu nhắc lệnh của bạn sẽ thay đổi để phản ánh thực tế là bạn hiện đang làm việc bên trong container và sẽ có dạng sau:

Output
root@9b0db8a30ad1:/#

Lưu ý: Hãy nhớ id container trong dấu nhắc lệnh. Trong ví dụ trước, đó là 9b0db8a30ad1. Bạn sẽ cần ID container đó sau này để xác định container 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 container. Ví dụ, hãy cập nhật cơ sở dữ liệu gói bên trong container. Bạn không cần phải thêm tiền tố sudo vào bất kỳ lệnh nào, vì bạn đang hoạt động bên trong container với tư cách là root user:

  1. apt-get update

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

  1. apt-get install -y nodejs

Lệnh này cài đặt Node.js trong container từ kho lưu trữ Ubuntu chính thức. Khi quá trình cài đặt hoàn tất, hãy xác minh rằng Node.js đã được cài đặt:

  1. 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:

Output
v8.10.0

Bất kỳ thay đổi nào bạn thực hiện bên trong container chỉ áp dụng cho container đó.

Để thoát khỏi container, hãy nhập exit tại dấu nhắc.

Tiếp theo, chúng ta hãy xem cách quản lý các container trên hệ thống của chúng ta.

Bước 6 — Quản lý các container Docker

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

  1. docker ps

Bạn sẽ thấy kết quả tương tự như sau:

Output
CONTAINER ID IMAGE COMMAND CREATED

Trong hướng dẫn này, bạn đã khởi động ba container; một từ image hello-world và hai từ image ubuntu. Các container này 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 container — đang hoạt động và không hoạt động — hãy chạy docker ps với lệnh chuyển đổi -a:

  1. docker ps -a

Bạn sẽ thấy kết quả tương tự như thế này:

Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9b0db8a30ad1 ubuntu "/bin/bash" 21 minutes ago Exited (0) About a minute ago xenodochial_neumann d7851eb12e23 ubuntu "/bin/bash" 24 minutes ago Exited (0) 24 minutes ago boring_chebyshev d54945b6510b hello-world "/hello" 32 minutes ago Exited (0) 32 minutes ago youthful_roentgen

Để xem container mới nhất bạn đã tạo, hãy truyền lệnh -l vào đó:

  1. docker ps -l
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9b0db8a30ad1 ubuntu "/bin/bash" 22 minutes ago Exited (127) About a minute ago xenodochial_neumann

Để khởi động một container đã dừng, hãy sử dụng docker start, theo sau là ID container hoặc tên container. Hãy khởi động container dựa trên Ubuntu với ID là 9b0db8a30ad1:

  1. docker start 9b0db8a30ad1

Container sẽ khởi động và bạn có thể sử dụng docker ps để xem trạng thái của nó:

Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9b0db8a30ad1 ubuntu "/bin/bash" 23 minutes ago Up 11 seconds xenodochial_neumann

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

  1. docker stop xenodochial_neumann

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

  1. docker rm youthful_roentgen

Bạn có thể khởi động một container mới và đặt tên cho nó bằng lệnh --name. Bạn cũng có thể sử dụng lệnh --rm để tạo một container tự xóa khi nó dừng lại. Xem lệnh docker run help để 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.

Container có thể được chuyển thành hình ảnh mà bạn có thể sử dụng để xây dựng container mới. Hãy cùng xem cách thức hoạt động của lệnh này.

Bước 7 — Cam kết thay đổi trong container thành image Docker

Khi bạn khởi động image Docker, bạn có thể tạo, sửa đổi và xóa các tệp giống như bạn có thể làm với máy ảo. Những thay đổi bạn thực hiện sẽ chỉ áp dụng cho container đó. Bạn có thể khởi động và dừng container, nhưng sau khi bạn hủy nó bằng lệnh docker rm, những thay đổi sẽ bị mất vĩnh viễn.

Phần này hướng dẫn bạn cách lưu trạng thái của container dưới dạng image Docker mới.

Sau khi cài đặt Node.js bên trong container Ubuntu, giờ bạn có một container chạy từ một image, nhưng container này khác với image bạn đã sử dụng để tạo container. Nhưng bạn có thể muốn sử dụng lại container Node.js này làm cơ sở cho các image mới sau này.

Để thực hiện việc này, hãy cam kết các thay đổi vào một phiên bản image Docker mới bằng cách sử dụng cấu trúc lệnh sau:

  1. docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name

Công tắc -m 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ả. container ID là ID bạn đã ghi chú 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, kho lưu trữ 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 container ID là d9b100f2f636, lệnh sẽ là:

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

Lưu ý: Khi bạn commit một image, image mới sẽ được lưu cục bộ, tức là trên máy tính của bạn. Sau này trong hướng dẫn này, bạn sẽ học cách đẩy image lên sổ đăng ký Docker như Docker Hub để bạn và những người khác có thể đánh giá và sử dụng image đó.

Sau khi hoàn tất thao tác đó, việc liệt kê các image Docker hiện có trên máy tính của bạn sẽ hiển thị image mới cũng như image cũ mà image đó được lấy từ đó:

  1. docker images

Đầu ra sẽ tương tự như thế này:

Output
REPOSITORY TAG IMAGE ID CREATED SIZE sammy/ubuntu-nodejs latest 6a1784a63edf 2 minutes ago 170MB ubuntu latest ea4c82dcd15a 17 hours ago 85.8MB hello-world latest 4ab4c602aa5e 5 weeks ago 1.84kB

Trong ví dụ trên, ubuntu-nodejs là image mới, được lấy từ image ubuntu hiện có từ Docker Hub. Sự khác biệt về kích thước phản ánh những thay đổi đã được thực hiện. Trong ví dụ này, thay đổi là Node.js đã được cài đặt. Lần tới khi bạn cần chạy một container bằng Ubuntu với Node.js được cài đặt sẵn, bạn chỉ cần sử dụng hình ảnh mới.

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

Bây giờ, hãy chia sẻ image mới với những người khác để họ có thể tạo container từ image đó.

Bước 8 — Đẩy image Docker vào kho lưu trữ Docker

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

Phần này hướng dẫn bạn cách đẩy hình ảnh Docker lên Docker Hub. Để tìm hiểu cách tạo sổ đăng ký Docker riêng của bạn, hãy xem Cách thiết lập sổ đăng ký Docker riêng trên Ubuntu 14.04.

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

  1. docker login -u docker-registry-username

Bạn sẽ được nhắc xác thực bằng mật khẩu Docker Hub của mình. Nếu bạn chỉ định đúng mật khẩu, quá trình xác thực sẽ thành công.

Lưu ý: Nếu tên người dùng đăng ký Docker của bạn khác với tên người dùng cục bộ mà bạn đã sử dụng để tạo image, bạn sẽ phải gắn thẻ hình ảnh của mình bằng tên người dùng đăng ký. Đối với ví dụ được đưa ra ở bước cuối cùng, bạn sẽ nhập:

  1. docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

Sau đó, bạn có thể đẩy image của mình bằng cách sử dụng:

  1. docker push docker-registry-username/ubuntu-nodejs

Để đẩy image ubuntu-nodejs vào kho lưu trữ sammy, lệnh sẽ là:

  1. docker push sammy/ubuntu-nodejs

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

Output
The push refers to repository [docker.io/sammy/ubuntu-nodejs] 1aa927602b6a: Pushed 76c033092e10: Pushed 2146d867acf3: Pushed ae1f631f14b7: Pushed 102645f1cf72: Pushed latest: digest: sha256:2be90a210910f60f74f433350185feadbbdaca0d050d97181bf593dd85195f06 size: 1362

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

description image

Nếu nỗ lực đẩy dẫn đến lỗi sau, có khả năng là bạn chưa đăng nhập:

Output
The push refers to a repository [docker.io/sammy/ubuntu-nodejs] e3fbbfb44187: Preparing 5f70bf18a086: Preparing a3b5c80a4eba: Preparing 7f18b442972b: Preparing 3ce512daaf78: Preparing 7aae4540b42d: Waiting unauthorized: authentication required

Đăng nhập, sau đó lặp lại nỗ lực đẩy.

Kết luận

Trong hướng dẫn này, bạn đã học được những điều cơ bản để bắt đầu làm việc với Docker trên Ubuntu 16.04. Giống như hầu hết các dự án nguồn mở, Docker được xây dựng từ một cơ sở mã phát triển nhanh, vì vậy hãy tạo thói quen truy cập trang blog của dự án để biết thông tin mới nhất.

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời