Thứ sáu, 19/10/2018 | 00:00 GMT+7

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

Docker là một ứng dụng giúp đơn giản và dễ dàng chạy các quy trình ứng dụng trong containers , giống như máy ảo, chỉ 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 server . Để có giới thiệu chi tiết về các thành phần khác nhau của containers Docker, hãy xem Hệ sinh thái Docker: Giới thiệu về các thành phần chung .

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 bản cài đặt hiện có của hệ điều hành. Cách khác liên quan đến việc quay một server bằng một công cụ có tên Docker Machine tự động cài đặt Docker trên đó.

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

Yêu cầu

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

  • Một server Ubuntu 16.04 được cài đặt với user không phải root có quyền sudo và firewall cơ bản, như được giải thích trong Hướng dẫn cài đặt ban đầu cho Ubuntu 16.04
  • Một account 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 Bước 7 và 8

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

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

Trước tiên, đảm bảo download hợp lệ, hãy thêm khóa GPG cho repository 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 repository Docker vào các nguồn APT:

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

Tiếp theo, cập nhật database gói với các gói Docker từ repo mới được thêm vào:

  • sudo apt-get update

Đảm bảo rằng bạn sắp cài đặt từ repo Docker thay vì repo Ubuntu 16.04 mặc định:

  • apt-cache policy docker-ce

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

Đầu ra của docker-ce policy apt-cache
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 ý docker-ce chưa được cài đặt, nhưng thành phần để cài đặt là từ repository Docker cho Ubuntu 16.04 ( xenial ).

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

  • sudo apt-get install -y docker-ce

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

  • sudo systemctl status docker

Đầu ra phải giống như sau , cho thấy rằng dịch vụ đang đ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-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

Việc cài đặt Docker giờ đây 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 ứng dụng client Docker. Ta sẽ khám phá cách sử dụng lệnh docker ở phần 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 đặt tiền tố lệnh bằng sudo . Nó cũng có thể được chạy bởi user trong group docker , được tạo tự động trong quá trình cài đặt Docker. Nếu bạn cố gắng chạy docker lệnh mà không đặt trước từ đó sudo hoặc không là ở group Docker, bạn sẽ nhận được một kết quả như thế này:

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 nhập sudo khi nào bạn chạy lệnh docker , hãy thêm tên user của bạn vào group docker :

  • sudo usermod -aG docker ${USER}

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

  • su - ${USER}

Bạn sẽ được yêu cầu nhập password của user để tiếp tục. Sau đó, bạn có thể xác nhận user của bạn hiện đã được thêm vào group docker bằng lệnh :

  • id -nG
Output
sammy sudo docker

Nếu bạn cần thêm user vào group docker mà bạn chưa đăng nhập, hãy khai báo tên user đó 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 lệnh docker với quyền là user trong group user docker. Nếu bạn chọn không, vui lòng thêm các lệnh với sudo .

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

Với Docker được cài đặt và hoạt động, bây 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 chuyể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:

  • docker [option] [command] [arguments]

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

  • docker

Kể từ Docker 18.06.1, danh sách đầy đủ các lệnh con có sẵn 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 lựa 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

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

Vùng chứa Docker được chạy từ Docker image . Theo mặc định, nó lấy những hình ảnh này từ Docker Hub, một nơi đăng ký Docker được quản lý bởi Docker, công ty đứng sau dự án Docker. Bất kỳ ai cũng có thể xây dựng và lưu trữ Docker image 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 chạy containers Docker có hình ảnh được lưu trữ trên Docker Hub.

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

  • docker run hello-world

Trong kết quả , bạn sẽ thấy thông báo sau, cho biết rằng 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 con search . 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 dữ liệu Docker Hub và trả về danh sách tất cả các hình ảnh có tên trùng với chuỗi tìm kiếm. Trong trường hợp này, kết quả 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 CHÍNH THỨC , OK cho biết hình ảnh được xây dựng và hỗ trợ bởi tổ chức đứ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 bạn bằng cách sử dụng lệnh con pull . Hãy thử điều này với hình ảnh ubuntu , như sau:

  • docker pull ubuntu

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

  • docker run ubuntu

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

  • docker images

Đầu ra sẽ giống 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 ở phần sau của hướng dẫn này, hình ảnh mà bạn sử dụng để chạy containers có thể được sửa đổi và sử dụng để tạo hình ảnh mới, sau đó có thể được tải lên (được đẩy là thuật ngữ kỹ thuật) lên Docker Hub hoặc các tổ chức đăng ký Docker khác.

Bước 5 - Chạy Docker Container

Vùng chứa hello-world mà bạn đã chạy ở bước trước là một ví dụ về containers chạy và thoát sau khi gửi thông báo thử nghiệm. Các containers 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 containers bằng hình ảnh mới nhất của Ubuntu. Sự kết hợp của các lựa chọn -i-t cho phép bạn truy cập shell tương tác vào containers :

  • docker run -it ubuntu

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

Dấu nhắc lệnh của bạn sẽ thay đổi để cho biết là bạn hiện đang làm việc bên trong containers và sẽ có dạng sau:

Output
root@9b0db8a30ad1:/#

Lưu ý: Hãy nhớ id containers trong dấu nhắc lệnh. Trong ví dụ trước, nó là 9b0db8a30ad1 . Sau này, bạn cần ID containers đó để xác định containers khi bạn muốn xóa nó.

Đến đây bạn có thể chạy bất kỳ lệnh nào bên trong containers . Ví dụ: hãy cập nhật database gói bên trong containers . Bạn không cần đặt trước bất kỳ lệnh nào với sudo , vì bạn đang hoạt động bên trong containers với quyền là user root :

  • apt-get update

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

  • apt-get install -y nodejs

Điều này sẽ cài đặt Node.js trong containers từ repository chính thức của Ubuntu. Khi quá trình cài đặt kết thúc, hãy xác minh Node.js đã được cài đặt:

  • node -v

Bạn sẽ thấy số version được hiển thị trong terminal của bạn :

Output
v8.10.0

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

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

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

Bước 6 - Quản lý containers Docker

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

  • 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 đã bắt đầu ba containers ; một từ hình ảnh hello-world và hai từ hình ảnh ubuntu . Những containers 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.

Để xem tất cả các containers - đang hoạt động và không hoạt động - hãy chạy docker ps bằng lựa chọn -a :

  • docker ps -a

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

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 containers mới nhất bạn đã tạo, hãy chuyển nó qua lựa chọn -l :

  • 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

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

  • docker start 9b0db8a30ad1

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ó:

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 containers đang chạy, hãy sử dụng docker stop , theo sau là ID hoặc tên containers . Lần này, ta sẽ sử dụng tên mà Docker đã gán cho containers , đó là xenodochial_neumann :

  • docker stop xenodochial_neumann

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

  • docker rm youthful_roentgen

Bạn có thể bắt đầu một containers mới và đặt tên cho nó bằng cách sử dụng lựa chọn --name . Bạn cũng có thể sử dụng lựa chọn --rm để tạo một containers tự loại bỏ 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.

Các containers có thể được chuyển thành hình ảnh mà bạn có thể sử dụng để xây dựng các containers mới. Hãy xem nó hoạt động như thế nào.

Bước 7 - Commit các thay đổi trong containers thành Docker image

Khi bạn khởi động Docker image , bạn có thể tạo, sửa đổi và xóa các file 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 containers đó. Bạn có thể bắt đầu và dừng nó, nhưng một khi bạn xóa nó bằng lệnh docker rm , các thay đổi sẽ bị mất.

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

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

Để thực hiện việc này, hãy commit các thay đổi đối với version Docker image mới bằng cách sử dụng cấu trúc lệnh sau:

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

Lựa chọn -m dành cho thông báo commit giúp bạn và những người khác biết bạn đã thực hiện những thay đổi nào, trong khi -a được sử dụng để chỉ định tác giả. container IDcontainer ID 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 repository trên Docker Hub, repository thường là tên user Docker Hub của bạn.

Ví dụ: đối với sammy user , với ID containers là d9b100f2f636 , lệnh sẽ là:

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

Lưu ý: Khi bạn commit một hình ảnh, hình ảnh mới sẽ được lưu local , tức là trên máy tính của bạn. Phần sau của hướng dẫn này, bạn sẽ học cách đẩy hình ảnh vào register Docker như Docker Hub để bạn và những người khác có thể đánh giá và sử dụng hình ảnh đó.

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

  • docker images

Đầu ra phải giống như sau :

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à hình ảnh mới, được lấy từ hình ảnh 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 containers bằng Ubuntu có cài đặt sẵn Node.js, 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, điều đó 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 containers từ nó.

Bước 8 - Đẩy Docker image 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 vài người bạn được chọn, cả thế giới trên Docker Hub hoặc một register Docker khác mà bạn có quyền truy cập. Để đẩy một hình ảnh lên Docker Hub hoặc tổ chức đăng ký Docker nào khác, bạn phải có account ở đó.

Phần này hướng dẫn bạn cách đẩy một Docker image vào Docker Hub. Để tìm hiểu cách tạo register Docker riêng của bạn, hãy xem Cách cài đặt register Docker riêng trên Ubuntu 14.04 .

Để đẩ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 yêu cầu xác thực bằng password Docker Hub của bạn . Nếu bạn chỉ định password chính xác, xác thực sẽ thành công.

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

  • docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

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/ubuntu-nodejs

Để đẩy hình ảnh ubuntu-nodejs vào repository sammy , lệnh sẽ là:

  • docker push sammy/ubuntu-nodejs

Quá trình này có thể mất một chút thời gian để hoàn thành vì quá trình tải hình ảnh lên, nhưng khi hoàn tất, kết quả sẽ giống như sau:

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 hình ảnh vào register , hình ảnh đó sẽ được liệt kê trên trang tổng quan account của bạn, giống như trong hình ảnh bên dưới.

Danh sách  Docker image  mới trên Docker Hub

Nếu một việc push 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 việc push .

Kết luận

Trong hướng dẫn này, bạn đã học những kiến thức 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 open-souce , 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.

Để khám phá thêm, hãy xem các hướng dẫn Docker khác trong Cộng đồng DigitalOcean.


Tags:

Các tin liên quan

Cách cung cấp và quản lý server Docker từ xa bằng Máy Docker trên Ubuntu 18.04
2018-10-02
Cách cài đặt và bảo mật OpenFaaS bằng Docker Swarm trên Ubuntu 16.04
2018-09-19
Cách cài đặt Docker Compose trên Debian 9
2018-09-06
Cách cài đặt và sử dụng Docker trên Debian 9
2018-09-04
Cách chia sẻ dữ liệu giữa Docker Container và Host
2018-07-11
Cách cài đặt Docker Compose trên Ubuntu 18.04
2018-07-09
Cách cài đặt và sử dụng Docker trên Ubuntu 18.04
2018-07-05
Cách kiểm tra bảo mật server Docker với Docker Bench cho bảo mật trên Ubuntu 16.04
2018-06-14
Cách cung cấp và quản lý server Docker từ xa bằng Máy Docker trên Ubuntu 16.04
2018-05-21
Cách cung cấp và quản lý server Docker từ xa bằng Máy Docker trên CentOS 7
2018-05-21