Docker - Hướng dẫn nhanh

Docker là một dịch vụ quản lý vùng chứa. Các từ khóa của Docker làdevelop, shiprunở bất cứ đâu. Toàn bộ ý tưởng của Docker là để các nhà phát triển dễ dàng phát triển các ứng dụng, chuyển chúng vào các thùng chứa để sau đó có thể triển khai ở bất cứ đâu.

Bản phát hành đầu tiên của Docker là vào tháng 3 năm 2013 và kể từ đó, nó đã trở thành từ thông dụng cho sự phát triển của thế giới hiện đại, đặc biệt là khi đối mặt với các dự án dựa trên Agile.

Các tính năng của Docker

  • Docker có khả năng giảm kích thước phát triển bằng cách cung cấp một dấu chân nhỏ hơn của hệ điều hành thông qua các thùng chứa.

  • Với bộ chứa, việc các nhóm ở các đơn vị khác nhau, chẳng hạn như phát triển, QA và Hoạt động làm việc liền mạch trên các ứng dụng trở nên dễ dàng hơn.

  • Bạn có thể triển khai vùng chứa Docker ở bất kỳ đâu, trên bất kỳ máy vật lý và máy ảo nào và thậm chí trên đám mây.

  • Vì các vùng chứa Docker khá nhẹ, chúng rất dễ mở rộng.

Các thành phần của Docker

Docker có các thành phần sau

  • Docker for Mac - Nó cho phép một người chạy các vùng chứa Docker trên Mac OS.

  • Docker for Linux - Nó cho phép một người chạy các vùng chứa Docker trên Hệ điều hành Linux.

  • Docker for Windows - Nó cho phép một người chạy các vùng chứa Docker trên hệ điều hành Windows.

  • Docker Engine - Nó được sử dụng để xây dựng hình ảnh Docker và tạo vùng chứa Docker.

  • Docker Hub - Đây là sổ đăng ký được sử dụng để lưu trữ các hình ảnh Docker khác nhau.

  • Docker Compose - Điều này được sử dụng để xác định các ứng dụng sử dụng nhiều Docker container.

Chúng ta sẽ thảo luận chi tiết về tất cả các thành phần này trong các chương tiếp theo.

Trang web chính thức cho Docker là https://www.docker.com/Trang web có tất cả thông tin và tài liệu về phần mềm Docker. Nó cũng có các liên kết tải xuống cho các hệ điều hành khác nhau.

Để bắt đầu cài đặt Docker, chúng ta sẽ sử dụng một phiên bản Ubuntu. Bạn có thể sử dụng Oracle Virtual Box để thiết lập một phiên bản Linux ảo, trong trường hợp bạn chưa có.

Ảnh chụp màn hình sau đây cho thấy một máy chủ Ubuntu đơn giản đã được cài đặt trên Oracle Virtual Box. Có một người dùng hệ điều hành có têndemo đã được xác định trên hệ thống có toàn bộ quyền truy cập root vào máy chủ.

Để cài đặt Docker, chúng ta cần làm theo các bước dưới đây.

Step 1- Trước khi cài đặt Docker, trước tiên bạn phải đảm bảo rằng bạn có phiên bản nhân Linux phù hợp đang chạy. Docker chỉ được thiết kế để chạy trên nhân Linux phiên bản 3.8 trở lên. Chúng ta có thể làm điều này bằng cách chạy lệnh sau.

uname

Phương thức này trả về thông tin hệ thống về hệ thống Linux.

Cú pháp

uname -a

Tùy chọn

a - Điều này được sử dụng để đảm bảo rằng thông tin hệ thống được trả về.

Giá trị trả lại

Phương thức này trả về thông tin sau trên hệ thống Linux:

  • tên hạt nhân
  • Tên nút
  • phát hành hạt nhân
  • Phiên bản hạt nhân
  • machine
  • processor
  • nền tảng phần cứng
  • hệ điều hành

Thí dụ

uname –a

Đầu ra

Khi chúng ta chạy lệnh trên, chúng ta sẽ nhận được kết quả sau:

Từ kết quả đầu ra, chúng ta có thể thấy rằng phiên bản hạt nhân Linux là 4.2.0-27, cao hơn phiên bản 3.8, vì vậy chúng tôi rất tốt để tiếp tục.

Step 2 - Bạn cần cập nhật hệ điều hành với các gói mới nhất, có thể được thực hiện thông qua lệnh sau:

apt-get

Phương pháp này cài đặt các gói từ Internet vào hệ thống Linux.

Cú pháp

sudo apt-get cập nhật

Tùy chọn

  • sudo - Sự sudo lệnh được sử dụng để đảm bảo rằng lệnh chạy với quyền truy cập root.

  • update - Sự update tùy chọn được sử dụng đảm bảo rằng tất cả các gói được cập nhật trên hệ thống Linux.

Giá trị trả lại

không ai

Thí dụ

sudo apt-get update

Đầu ra

Khi chạy lệnh trên, chúng ta sẽ nhận được kết quả sau:

Lệnh này sẽ kết nối với internet và tải xuống các gói hệ thống mới nhất cho Ubuntu.

Step 3- Bước tiếp theo là cài đặt các chứng chỉ cần thiết để sau này hoạt động với Docker site để tải các gói Docker cần thiết. Nó có thể được thực hiện bằng lệnh sau.

sudo apt-get install apt-transport-https ca-certificates

Step 4- Bước tiếp theo là thêm khóa GPG mới. Khóa này là bắt buộc để đảm bảo rằng tất cả dữ liệu được mã hóa khi tải xuống các gói cần thiết cho Docker.

Lệnh sau sẽ tải xuống khóa có ID 58118E89F3A912897C070ADBF76221572C52609D từ keyserver hkp: //ha.pool.sks-keyservers.net: 80 và thêm nó vào advmóc khóa. Xin lưu ý rằng khóa cụ thể này là bắt buộc để tải xuống các gói Docker cần thiết.

Step 5 - Tiếp theo, tùy thuộc vào phiên bản Ubuntu bạn có, bạn sẽ cần thêm trang web liên quan vào docker.list cho apt package manager, do đó nó sẽ có thể phát hiện các gói Docker từ trang web Docker và tải chúng xuống tương ứng.

  • Chính xác 12.04 (LTS) ─ deb https://apt.dockerproject.org/repoubuntu-chính xác

  • Trusty 14.04 (LTS) ─ deb https://apt.dockerproject.org/repo/ ubuntu-trusty main

  • Wily 15.10 ─ deb https://apt.dockerproject.org/repo ubuntu-wily main

  • Xenial 16.04 (LTS) - https://apt.dockerproject.org/repo ubuntu-xenial main

Vì hệ điều hành của chúng tôi là Ubuntu 14.04, chúng tôi sẽ sử dụng tên Kho lưu trữ là “deb https://apt.dockerproject.org/repoubuntu-trusty main ”.

Và sau đó, chúng tôi sẽ cần thêm kho lưu trữ này vào docker.list Như được đề cập ở trên.

echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main” 
   | sudo tee /etc/apt/sources.list.d/docker.list

Step 6 - Tiếp theo, chúng tôi phát hành apt-get update command để cập nhật các gói trên hệ thống Ubuntu.

Step 7 - Nếu bạn muốn xác minh rằng trình quản lý gói đang trỏ đến đúng kho lưu trữ, bạn có thể thực hiện bằng cách phát hành apt-cache command.

apt-cache policy docker-engine

Trong đầu ra, bạn sẽ nhận được liên kết đến https://apt.dockerproject.org/repo/

Step 8 - Phát hành apt-get update command để đảm bảo tất cả các gói trên hệ thống cục bộ đều được cập nhật.

Step 9 - Đối với Ubuntu Trusty, Wily và Xenial, chúng ta phải cài đặt các gói nhân linux-image-extra- *, cho phép một người sử dụng aufs storage driver. Trình điều khiển này được sử dụng bởi các phiên bản Docker mới hơn.

Nó có thể được thực hiện bằng cách sử dụng lệnh sau.

sudo apt-get install linux-image-extra-$(uname -r) 
   linux-image-extra-virtual

Step 10 - Bước cuối cùng là cài đặt Docker và chúng ta có thể thực hiện việc này bằng lệnh sau:

sudo apt-get install –y docker-engine

Đây, apt-get sử dụng tùy chọn cài đặt để tải xuống hình ảnh Docker-engine từ trang web Docker và cài đặt Docker.

Docker-engine là gói chính thức của Docker Corporation dành cho các hệ thống dựa trên Ubuntu.

Trong phần tiếp theo, chúng ta sẽ xem cách kiểm tra phiên bản Docker đã được cài đặt.

Phiên bản Docker

Để xem phiên bản Docker đang chạy, bạn có thể sử dụng lệnh sau:

Cú pháp

docker version

Tùy chọn

  • version - Nó được sử dụng để đảm bảo lệnh Docker trả về phiên bản Docker đã được cài đặt.

Giá trị trả lại

Đầu ra sẽ cung cấp các chi tiết khác nhau của phiên bản Docker được cài đặt trên hệ thống.

Thí dụ

sudo docker version

Đầu ra

Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau:

Thông tin Docker

Để xem thêm thông tin về Docker đang chạy trên hệ thống, bạn có thể sử dụng lệnh sau:

Cú pháp

docker info

Tùy chọn

  • info - Nó được sử dụng để đảm bảo rằng lệnh Docker trả về thông tin chi tiết về dịch vụ Docker được cài đặt.

Giá trị trả lại

Đầu ra sẽ cung cấp các chi tiết khác nhau của Docker được cài đặt trên hệ thống, chẳng hạn như -

  • Số lượng container
  • Số lượng hình ảnh
  • Trình điều khiển lưu trữ được Docker sử dụng
  • Thư mục gốc được Docker sử dụng
  • Trình điều khiển thực thi được Docker sử dụng

Thí dụ

sudo docker info

Đầu ra

Khi chạy lệnh trên, chúng ta sẽ nhận được kết quả sau:

Docker dành cho Windows

Docker có hỗ trợ sẵn có cho Windows, nhưng bạn cần phải có cấu hình sau để cài đặt Docker cho Windows.

yêu cầu hệ thống

HĐH Windows Windows 10 64 bit
Ký ức RAM 2 GB (khuyến nghị)

Bạn có thể tải xuống Docker cho Windows từ - https://docs.docker.com/docker-for-windows/

Docker ToolBox

Docker ToolBox đã được thiết kế cho các phiên bản Windows cũ hơn, chẳng hạn như Windows 8.1 và Windows 7. Bạn cần có cấu hình sau để cài đặt Docker cho Windows.

yêu cầu hệ thống

HĐH Windows Windows 7, 8, 8.1
Ký ức RAM 2 GB (khuyến nghị)
Ảo hóa Điều này nên được kích hoạt.

Bạn có thể tải xuống Docker ToolBox từ - https://www.docker.com/products/docker-toolbox

Chúng ta hãy đi qua cài đặt của từng sản phẩm.

Docker dành cho Windows

Khi trình cài đặt đã được tải xuống, hãy nhấp đúp vào nó để khởi động trình cài đặt và sau đó làm theo các bước dưới đây.

Step 1 - Nhấp vào Điều khoản thỏa thuận và sau đó là nút Cài đặt để tiếp tục cài đặt.

Step 2 - Sau khi hoàn tất, nhấp vào nút Hoàn tất để hoàn tất cài đặt.

Docker ToolBox

Khi trình cài đặt đã được tải xuống, hãy nhấp đúp vào nó để khởi động trình cài đặt và sau đó làm theo các bước dưới đây.

Step 1 - Nhấp vào nút Tiếp theo trên màn hình bắt đầu.

Step 2 - Giữ vị trí mặc định trên màn hình tiếp theo và nhấp vào nút Tiếp theo.

Step 3 - Giữ nguyên các thành phần mặc định và nhấn nút Next để tiếp tục.

Step 4 - Giữ nguyên các Nhiệm vụ bổ sung và sau đó nhấp vào nút Tiếp theo.

Step 5 - Trên màn hình cuối cùng, nhấp vào nút Cài đặt.

Làm việc với Hộp công cụ Docker

Bây giờ chúng ta hãy xem cách Hộp công cụ Docker có thể được sử dụng để làm việc với các vùng chứa Docker trên Windows. Bước đầu tiên là khởi chạy ứng dụng Docker Toolbox mà lối tắt được tạo trên màn hình nền khi quá trình cài đặt Docker toolbox được thực hiện.

Tiếp theo, bạn sẽ thấy cấu hình được thực hiện khi hộp công cụ Docker được khởi chạy.

Sau khi hoàn tất, bạn sẽ thấy Docker được cấu hình và khởi chạy. Bạn sẽ nhận được một trình bao tương tác cho Docker.

Để kiểm tra Docker chạy đúng cách, chúng ta có thể sử dụng Docker run command tải xuống và chạy đơn giản HelloWorld Docker container.

Hoạt động của Docker run command được đưa ra dưới đây -

docker run

Lệnh này được sử dụng để chạy một lệnh trong vùng chứa Docker.

Cú pháp

docker run image

Tùy chọn

  • Image - Đây là tên của hình ảnh được sử dụng để chạy vùng chứa.

Giá trị trả lại

Đầu ra sẽ chạy lệnh trong vùng chứa mong muốn.

Thí dụ

sudo docker run hello-world

Lệnh này sẽ tải xuống hello-world hình ảnh, nếu nó chưa có, và chạy hello-world như một vật chứa.

Đầu ra

Khi chạy lệnh trên, chúng ta sẽ nhận được kết quả sau:

Nếu bạn muốn chạy hệ điều hành Ubuntu trên Windows, bạn có thể tải xuống Hình ảnh Ubuntu bằng lệnh sau:

Docker run –it ubuntu bash

Ở đây bạn đang yêu cầu Docker chạy lệnh trong chế độ tương tác thông qua –it Lựa chọn.

Trong đầu ra, bạn có thể thấy rằng hình ảnh Ubuntu được tải xuống và chạy, sau đó bạn sẽ đăng nhập với tư cách là người dùng root trong vùng chứa Ubuntu.

Docker Hub là một dịch vụ đăng ký trên đám mây cho phép bạn tải xuống các hình ảnh Docker được xây dựng bởi các cộng đồng khác. Bạn cũng có thể tải các hình ảnh được tạo Docker của riêng mình lên trung tâm Docker. Trong chương này, chúng ta sẽ xem cách tải xuống và sử dụng hình ảnh Jenkins Docker từ trung tâm Docker.

Trang web chính thức cho trung tâm Docker là - https://www.docker.com/community-edition#/add_ons

Step 1 - Đầu tiên, bạn cần đăng ký đơn giản trên Docker hub.

Step 2 - Khi bạn đã đăng ký, bạn sẽ được đăng nhập vào Docker Hub.

Step 3 - Tiếp theo, chúng ta hãy duyệt và tìm hình ảnh Jenkins.

Step 4 - Nếu bạn cuộn xuống trên cùng một trang, bạn có thể thấy Docker pullchỉ huy. Thao tác này sẽ được sử dụng để tải hình ảnh Jenkins xuống máy chủ Ubuntu cục bộ.

Step 5 - Bây giờ, hãy truy cập máy chủ Ubuntu và chạy lệnh sau:

sudo docker pull jenkins

Để chạy Jenkins, bạn cần chạy lệnh sau:

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Lưu ý những điểm sau về điều trên sudo lệnh -

  • Chúng tôi đang sử dụng sudo lệnh để đảm bảo nó chạy với quyền truy cập root.

  • Đây, jenkins là tên của hình ảnh mà chúng tôi muốn tải xuống từ trung tâm Docker và cài đặt trên máy Ubuntu của chúng tôi.

  • -p được sử dụng để ánh xạ số cổng của hình ảnh Docker nội bộ với máy chủ Ubuntu chính của chúng tôi để chúng tôi có thể truy cập vùng chứa tương ứng.

Sau đó, bạn sẽ có Jenkins chạy thành công dưới dạng vùng chứa trên máy Ubuntu.

Trong Docker, mọi thứ đều dựa trên Hình ảnh. Hình ảnh là sự kết hợp của hệ thống tệp và các tham số. Hãy lấy một ví dụ về lệnh sau trong Docker.

docker run hello-world
  • Lệnh Docker là cụ thể và cho chương trình Docker trên Hệ điều hành biết rằng cần phải làm gì đó.

  • Các run lệnh được sử dụng để đề cập rằng chúng ta muốn tạo một thể hiện của hình ảnh, sau đó được gọi là container.

  • Cuối cùng, "hello-world" đại diện cho hình ảnh mà từ đó vùng chứa được tạo ra.

Bây giờ chúng ta hãy xem cách chúng ta có thể sử dụng hình ảnh CentOS có sẵn trong Docker Hub để chạy CentOS trên máy Ubuntu của chúng ta. Chúng ta có thể thực hiện việc này bằng cách thực hiện lệnh sau trên máy Ubuntu của mình:

sudo docker run centos –it /bin/bash

Lưu ý những điểm sau về điều trên sudo lệnh -

  • Chúng tôi đang sử dụng sudo lệnh để đảm bảo rằng nó chạy với root truy cập.

  • Đây, centos là tên của hình ảnh mà chúng tôi muốn tải xuống từ Docker Hub và cài đặt trên máy Ubuntu của chúng tôi.

  • ─it được sử dụng để đề cập rằng chúng tôi muốn chạy trong interactive mode.

  • /bin/bash được sử dụng để chạy bash shell sau khi CentOS được thiết lập và chạy.

Hiển thị hình ảnh Docker

Để xem danh sách các hình ảnh Docker trên hệ thống, bạn có thể ra lệnh sau.

docker images

Lệnh này được sử dụng để hiển thị tất cả các hình ảnh hiện được cài đặt trên hệ thống.

Cú pháp

docker images

Tùy chọn

không ai

Giá trị trả lại

Đầu ra sẽ cung cấp danh sách các hình ảnh trên hệ thống.

Thí dụ

sudo docker images

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Từ đầu ra ở trên, bạn có thể thấy rằng máy chủ có ba hình ảnh: centos, newcentos,jenkins. Mỗi hình ảnh có các thuộc tính sau:

  • TAG - Điều này được sử dụng để gắn thẻ hình ảnh một cách hợp lý.

  • Image ID - Điều này được sử dụng để xác định duy nhất hình ảnh.

  • Created - Số ngày kể từ khi hình ảnh được tạo.

  • Virtual Size - Kích thước của hình ảnh.

Tải xuống hình ảnh Docker

Hình ảnh có thể được tải xuống từ Docker Hub bằng Docker runchỉ huy. Hãy xem chi tiết cách chúng tôi có thể làm điều này.

Cú pháp

Cú pháp sau được sử dụng để chạy một lệnh trong vùng chứa Docker.

docker run image

Tùy chọn

  • Image - Đây là tên của hình ảnh được sử dụng để chạy vùng chứa.

Giá trị trả lại

Đầu ra sẽ chạy lệnh trong vùng chứa mong muốn.

Thí dụ

sudo docker run centos

Lệnh này sẽ tải xuống centos , nếu nó chưa có và chạy hệ điều hành như một vùng chứa.

Đầu ra

Khi chạy lệnh trên, chúng ta sẽ nhận được kết quả sau:

Bây giờ bạn sẽ thấy hình ảnh CentOS Docker được tải xuống. Bây giờ, nếu chúng ta chạy Dockerimages để xem danh sách các hình ảnh trên hệ thống, chúng ta sẽ có thể thấy centos cả hình ảnh.

Xóa hình ảnh Docker

Các hình ảnh Docker trên hệ thống có thể bị xóa thông qua docker rmichỉ huy. Hãy xem lệnh này chi tiết hơn.

docker rmi

Lệnh này được sử dụng để loại bỏ hình ảnh Docker.

Cú pháp

docker rmi ImageID

Tùy chọn

  • ImageID - Đây là ID của hình ảnh cần được xóa.

Giá trị trả lại

Đầu ra sẽ cung cấp ID Hình ảnh của Hình ảnh bị xóa.

Thí dụ

sudo docker rmi 7a86f8ffcb25

Đây, 7a86f8ffcb25 là ID hình ảnh của newcentos hình ảnh.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Hãy xem thêm một số lệnh Docker trên hình ảnh.

hình ảnh docker -q

Lệnh này được sử dụng để chỉ trả về ID hình ảnh của hình ảnh.

Cú pháp

docker images

Tùy chọn

  • q - Nó yêu cầu lệnh Docker chỉ trả về ID hình ảnh.

Giá trị trả lại

Đầu ra sẽ chỉ hiển thị ID hình ảnh của các hình ảnh trên máy chủ Docker.

Thí dụ

sudo docker images -q

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

thanh tra bến tàu

Lệnh này được sử dụng để xem chi tiết của một hình ảnh hoặc vùng chứa.

Cú pháp

docker inspect Repository

Tùy chọn

  • Repository - Đây là tên của Hình ảnh.

Giá trị trả lại

Đầu ra sẽ hiển thị thông tin chi tiết trên Hình ảnh.

Thí dụ

sudo docker inspect jenkins

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Vùng chứa là các thể hiện của hình ảnh Docker có thể chạy bằng lệnh Docker run. Mục đích cơ bản của Docker là chạy các vùng chứa. Hãy thảo luận về cách làm việc với vùng chứa.

Chạy một Container

Việc chạy các vùng chứa được quản lý bằng Docker runchỉ huy. Để chạy vùng chứa ở chế độ tương tác, trước tiên hãy khởi chạy vùng chứa Docker.

sudo docker run –it centos /bin/bash

Sau đó nhấn Crtl + p và bạn sẽ trở lại hệ điều hành của mình.

Sau đó, bạn sẽ chạy trong phiên bản của hệ thống CentOS trên máy chủ Ubuntu.

Danh sách các vùng chứa

Người ta có thể liệt kê tất cả các thùng chứa trên máy thông qua docker pschỉ huy. Lệnh này được sử dụng để trả về các vùng chứa hiện đang chạy.

docker ps

Cú pháp

docker ps

Tùy chọn

không ai

Giá trị trả lại

Đầu ra sẽ hiển thị các vùng chứa hiện đang chạy.

Thí dụ

sudo docker ps

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Hãy xem thêm một số biến thể của docker ps chỉ huy.

docker ps -a

Lệnh này được sử dụng để liệt kê tất cả các vùng chứa trên hệ thống

Cú pháp

docker ps -a

Tùy chọn

  • ─a - Nó nói với docker ps lệnh liệt kê tất cả các vùng chứa trên hệ thống.

Giá trị trả lại

Đầu ra sẽ hiển thị tất cả các vùng chứa.

Thí dụ

sudo docker ps -a

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

lịch sử docker

Với lệnh này, bạn có thể xem tất cả các lệnh được chạy với một hình ảnh thông qua một vùng chứa.

Cú pháp

docker history ImageID

Tùy chọn

  • ImageID - Đây là ID hình ảnh mà bạn muốn xem tất cả các lệnh đã chạy chống lại nó.

Giá trị trả lại

Đầu ra sẽ hiển thị tất cả các lệnh chạy trên hình ảnh đó.

Thí dụ

sudo docker history centos

Lệnh trên sẽ hiển thị tất cả các lệnh đã chạy chống lại centos hình ảnh.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Trong chương này, chúng ta sẽ khám phá chi tiết những gì chúng ta có thể làm với container.

docker đầu

Với lệnh này, bạn có thể xem các quy trình hàng đầu trong một vùng chứa.

Cú pháp

docker top ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa mà bạn muốn xem các quy trình hàng đầu.

Giá trị trả lại

Đầu ra sẽ hiển thị các quy trình cấp cao nhất trong một vùng chứa.

Thí dụ

sudo docker top 9f215ed0b0d3

Lệnh trên sẽ hiển thị các quy trình cấp cao nhất trong một vùng chứa.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

bến tàu

Lệnh này được sử dụng để dừng một vùng chứa đang chạy.

Cú pháp

docker stop ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa cần được dừng lại.

Giá trị trả lại

Đầu ra sẽ cung cấp ID của vùng chứa đã dừng.

Thí dụ

sudo docker stop 9f215ed0b0d3

Lệnh trên sẽ dừng vùng chứa Docker 9f215ed0b0d3.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

docker rm

Lệnh này được sử dụng để xóa một vùng chứa.

Cú pháp

docker rm ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa cần được xóa.

Giá trị trả lại

Đầu ra sẽ cung cấp ID của vùng chứa bị loại bỏ.

Thí dụ

sudo docker rm 9f215ed0b0d3

Lệnh trên sẽ xóa vùng chứa Docker 9f215ed0b0d3.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

số liệu thống kê về docker

Lệnh này được sử dụng để cung cấp số liệu thống kê của một vùng chứa đang chạy.

Cú pháp

docker stats ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa mà các số liệu thống kê cần được cung cấp.

Giá trị trả lại

Đầu ra sẽ hiển thị việc sử dụng CPU và Bộ nhớ của Vùng chứa.

Thí dụ

sudo docker stats 9f215ed0b0d3

Lệnh trên sẽ cung cấp việc sử dụng CPU và bộ nhớ của Container 9f215ed0b0d3.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

docker đính kèm

Lệnh này được sử dụng để đính kèm vào một vùng chứa đang chạy.

Cú pháp

docker attach ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa mà bạn cần đính kèm.

Giá trị trả lại

không ai

Thí dụ

sudo docker attach 07b0b6f434fe

Lệnh trên sẽ đính kèm vào vùng chứa Docker 07b0b6f434fe.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Khi bạn đã đính kèm vào vùng chứa Docker, bạn có thể chạy lệnh trên để xem quá trình sử dụng trong vùng chứa Docker đó.

tạm dừng docker

Lệnh này được sử dụng để tạm dừng các quá trình trong một vùng chứa đang chạy.

Cú pháp

docker pause ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa mà bạn cần để tạm dừng các quy trình trong vùng chứa.

Giá trị trả lại

ContainerID của vùng chứa bị tạm dừng.

Thí dụ

sudo docker pause 07b0b6f434fe

Lệnh trên sẽ tạm dừng các quá trình trong một vùng chứa đang chạy 07b0b6f434fe.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

docker bỏ tạm dừng

Lệnh này được sử dụng để unpause các quy trình trong một vùng chứa đang chạy.

Cú pháp

docker unpause ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa mà bạn cần để hủy tạm dừng các quy trình trong vùng chứa.

Giá trị trả lại

ContainerID của vùng chứa đang chạy.

Thí dụ

sudo docker unpause 07b0b6f434fe

Lệnh trên sẽ hủy tạm dừng các quá trình trong một vùng chứa đang chạy: 07b0b6f434fe

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

người đóng tàu giết

Lệnh này được sử dụng để hủy các tiến trình trong một vùng chứa đang chạy.

Cú pháp

docker kill ContainerID

Tùy chọn

  • ContainerID - Đây là ID vùng chứa mà bạn cần để hủy các quy trình trong vùng chứa.

Giá trị trả lại

ContainerID của vùng chứa đang chạy.

Thí dụ

sudo docker kill 07b0b6f434fe

Lệnh trên sẽ giết các tiến trình trong vùng chứa đang chạy 07b0b6f434fe.

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Docker - Vòng đời của container

Hình minh họa sau giải thích toàn bộ vòng đời của vùng chứa Docker.

  • Ban đầu, vùng chứa Docker sẽ nằm trong created tiểu bang.

  • Sau đó, vùng chứa Docker chuyển sang trạng thái đang chạy khi Docker run lệnh được sử dụng.

  • Docker kill lệnh được sử dụng để hủy một vùng chứa Docker hiện có.

  • Docker pause lệnh được sử dụng để tạm dừng một vùng chứa Docker hiện có.

  • Docker stop lệnh được sử dụng để tạm dừng một vùng chứa Docker hiện có.

  • Docker run lệnh được sử dụng để đặt một vùng chứa trở lại từ stopped trạng thái cho một running tiểu bang.

Hình ảnh sau đây cho thấy kiến ​​trúc tiêu chuẩn và truyền thống của virtualization.

  • Máy chủ là máy chủ vật lý được sử dụng để lưu trữ nhiều máy ảo.

  • Hệ điều hành máy chủ là máy cơ sở như Linux hoặc Windows.

  • Hypervisor là VMWare hoặc Windows Hyper V được sử dụng để lưu trữ các máy ảo.

  • Sau đó, bạn sẽ cài đặt nhiều hệ điều hành dưới dạng máy ảo trên siêu giám sát hiện có dưới dạng Hệ điều hành khách.

  • Sau đó, bạn sẽ lưu trữ các ứng dụng của mình trên mỗi Hệ điều hành khách.

Hình ảnh sau đây cho thấy thế hệ ảo hóa mới được kích hoạt qua Dockers. Hãy xem các lớp khác nhau.

  • Máy chủ là máy chủ vật lý được sử dụng để lưu trữ nhiều máy ảo. Vì vậy, lớp này vẫn được giữ nguyên.

  • Hệ điều hành máy chủ là máy cơ sở như Linux hoặc Windows. Vì vậy, lớp này vẫn được giữ nguyên.

  • Bây giờ là thế hệ mới, đó là Docker engine. Điều này được sử dụng để chạy hệ điều hành mà trước đây từng là máy ảo dưới dạng vùng chứa Docker.

  • Tất cả các Ứng dụng hiện chạy dưới dạng vùng chứa Docker.

Ưu điểm rõ ràng trong kiến ​​trúc này là bạn không cần phải có thêm phần cứng cho Hệ điều hành khách. Mọi thứ hoạt động như các vùng chứa Docker.

Điểm tốt về công cụ Docker là nó được thiết kế để hoạt động trên nhiều hệ điều hành khác nhau. Chúng tôi đã thấy cài đặt trên Windows và thấy tất cả các lệnh Docker trên hệ thống Linux. Bây giờ chúng ta hãy xem các lệnh Docker khác nhau trên Hệ điều hành Windows.

Hình ảnh Docker

Hãy chạy Docker images trên máy chủ Windows.

Từ đây, chúng ta có thể thấy rằng chúng ta có hai hình ảnh - ubuntuhello-world.

Chạy một Container

Bây giờ, hãy chạy một vùng chứa trong máy chủ Windows Docker.

Chúng ta có thể thấy rằng bằng cách chạy vùng chứa, bây giờ chúng ta có thể chạy vùng chứa Ubuntu trên máy chủ Windows.

Liệt kê tất cả các vùng chứa

Hãy liệt kê tất cả các vùng chứa trên máy chủ Windows.

Dừng một container

Bây giờ chúng ta hãy dừng một vùng chứa đang chạy trên máy chủ Windows.

Vì vậy, bạn có thể thấy rằng công cụ Docker khá nhất quán khi nói đến các máy chủ Docker khác nhau và nó hoạt động trên Windows giống như cách hoạt động trên Linux.

Trong chương này, chúng ta sẽ xem xét các tùy chọn khác nhau để cấu hình Docker.

trạm dừng dịch vụ

Lệnh này được sử dụng để dừng Docker daemon quá trình.

Cú pháp

service docker stop

Tùy chọn

không ai

Giá trị trả lại

Thông báo cho biết quá trình Docker đã dừng.

Thí dụ

sudo service docker stop

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

dịch vụ docker bắt đầu

Lệnh này được sử dụng để bắt đầu quá trình Docker daemon.

Cú pháp

service docker start

Tùy chọn

không ai

Giá trị trả lại

Một thông báo cho biết quá trình Docker đã bắt đầu.

Thí dụ

sudo service docker start

Đầu ra

Khi chúng ta chạy lệnh trên, nó sẽ tạo ra kết quả sau:

Theo mặc định, khi khởi chạy vùng chứa, bạn cũng sẽ sử dụng shell commandtrong khi khởi chạy vùng chứa như hình dưới đây. Đây là những gì chúng ta đã thấy trong các chương trước khi chúng ta làm việc với vùng chứa.

Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng chúng tôi đã đưa ra lệnh sau:

sudo docker run –it centos /bin/bash

Chúng tôi đã sử dụng lệnh này để tạo một vùng chứa mới và sau đó sử dụng lệnh Ctrl + P + Q để thoát ra khỏi vùng chứa. Nó đảm bảo rằng vùng chứa vẫn tồn tại ngay cả sau khi chúng ta thoát ra khỏi vùng chứa.

Chúng tôi có thể xác minh rằng vùng chứa vẫn tồn tại bằng Docker pschỉ huy. Nếu chúng ta phải thoát ra khỏi thùng chứa trực tiếp, thì chính thùng chứa đó sẽ bị phá hủy.

Giờ đây, có một cách dễ dàng hơn để gắn vào các thùng chứa và thoát ra khỏi chúng một cách sạch sẽ mà không cần phải phá hủy chúng. Một cách để đạt được điều này là sử dụngnsenter chỉ huy.

Trước khi chúng tôi chạy nsenter , trước tiên bạn cần cài đặt nsenterhình ảnh. Nó có thể được thực hiện bằng cách sử dụng lệnh sau:

docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

Trước khi chúng tôi sử dụng nsenter , chúng ta cần lấy ID quy trình của vùng chứa, vì điều này được yêu cầu bởi nsenterchỉ huy. Chúng tôi có thể lấy ID quy trình thông qua Dockerinspect command và lọc nó qua Pid.

Như đã thấy trong ảnh chụp màn hình ở trên, lần đầu tiên chúng tôi sử dụng docker pslệnh để xem các vùng chứa đang chạy. Chúng ta có thể thấy rằng có một vùng chứa đang chạy với ID là ef42a4c5e663.

Sau đó, chúng tôi sử dụng Docker inspect lệnh để kiểm tra cấu hình của vùng chứa này và sau đó sử dụng grepđể chỉ lọc ID quy trình. Và từ đầu ra, chúng ta có thể thấy rằng ID quy trình là 2978.

Bây giờ chúng tôi đã có ID quy trình, chúng tôi có thể tiếp tục và sử dụng nsenter lệnh để đính kèm vào vùng chứa Docker.

nsenter

Phương pháp này cho phép một người gắn vào một vùng chứa mà không cần thoát ra khỏi vùng chứa.

Cú pháp

Lệnh nsenter –m –u –n –p –i –t containerID

Tùy chọn

  • -u được sử dụng để đề cập đến Uts namespace

  • -m được sử dụng để đề cập đến mount namespace

  • -n được sử dụng để đề cập đến network namespace

  • -p được sử dụng để đề cập đến process namespace

  • -i s để làm cho vùng chứa chạy ở chế độ tương tác.

  • -t được sử dụng để kết nối các luồng I / O của vùng chứa với hệ điều hành chủ.

  • containerID - Đây là ID của vùng chứa.

  • Command - Đây là lệnh chạy bên trong vùng chứa.

Giá trị trả lại

không ai

Thí dụ

sudo nsenter –m –u –n –p –i –t 2978 /bin/bash

Đầu ra

Từ kết quả đầu ra, chúng ta có thể quan sát các điểm sau:

  • Lời nhắc thay đổi đối với bash shell trực tiếp khi chúng tôi phát hành nsenter chỉ huy.

  • Sau đó chúng tôi phát hành exitchỉ huy. Bây giờ bình thường nếu bạn không sử dụngnsenterlệnh, vùng chứa sẽ bị phá hủy. Nhưng bạn sẽ nhận thấy rằng khi chúng tôi chạynsenter lệnh, vùng chứa vẫn hoạt động.

Trong các chương trước, chúng ta đã thấy các tệp Hình ảnh khác nhau như Centos được tải xuống từ Docker hubtừ đó bạn có thể quay các thùng chứa. Một ví dụ lại được hiển thị bên dưới.

Nếu chúng ta sử dụng Docker imageslệnh, chúng tôi có thể xem các hình ảnh hiện có trong hệ thống của chúng tôi. Từ ảnh chụp màn hình ở trên, chúng ta có thể thấy rằng có hai hình ảnh:centosnsenter.

Nhưng Docker cũng cung cấp cho bạn khả năng tạo hình ảnh Docker của riêng bạn và nó có thể được thực hiện với sự trợ giúp của Docker Files. Tệp Docker là một tệp văn bản đơn giản với các hướng dẫn về cách tạo hình ảnh của bạn.

Các bước sau giải thích cách bạn nên bắt đầu tạo Tệp Docker.

Step 1 - Tạo một tệp có tên Docker File và chỉnh sửa nó bằng cách sử dụng vim. Xin lưu ý rằng tên của tệp phải là "Dockerfile" với "D" là chữ hoa.

Step 2 - Xây dựng tệp Docker của bạn bằng cách sử dụng các hướng dẫn sau.

#This is a sample Image 
FROM ubuntu 
MAINTAINER [email protected] 

RUN apt-get update 
RUN apt-get install –y nginx 
CMD [“echo”,”Image created”]

Những điểm sau đây cần lưu ý về tệp trên:

  • Dòng đầu tiên "# Đây là hình ảnh mẫu" là một nhận xét. Bạn có thể thêm nhận xét vào Tệp Docker với sự trợ giúp của# chỉ huy

  • Dòng tiếp theo phải bắt đầu bằng FROMtừ khóa. Nó nói với docker, từ hình ảnh cơ sở nào bạn muốn làm cơ sở cho hình ảnh của mình. Trong ví dụ của chúng tôi, chúng tôi đang tạo một hình ảnh từubuntu hình ảnh.

  • Lệnh tiếp theo là người sẽ duy trì hình ảnh này. Ở đây bạn chỉ địnhMAINTAINER từ khóa và chỉ đề cập đến ID email.

  • Các RUNlệnh được sử dụng để chạy các hướng dẫn đối với hình ảnh. Trong trường hợp của chúng tôi, trước tiên chúng tôi cập nhật hệ thống Ubuntu của mình và sau đó cài đặt máy chủ nginx trênubuntu hình ảnh.

  • Lệnh cuối cùng được sử dụng để hiển thị thông báo cho người dùng.

Step 3- Lưu tệp. Trong chương tiếp theo, chúng ta sẽ thảo luận về cách xây dựng hình ảnh.

Chúng tôi đã tạo Tệp Docker của mình trong chương trước. Bây giờ là lúc xây dựng Tệp Docker. Tệp Docker có thể được tạo bằng lệnh sau:

docker build

Chúng ta hãy tìm hiểu thêm về lệnh này.

đóng tàu

Phương pháp này cho phép người dùng xây dựng hình ảnh Docker của riêng họ.

Cú pháp

docker build  -t ImageName:TagName dir

Tùy chọn

  • -t - là đề cập đến một thẻ cho hình ảnh

  • ImageName - Đây là tên bạn muốn đặt cho hình ảnh của mình.

  • TagName - Đây là thẻ bạn muốn cung cấp cho hình ảnh của mình.

  • Dir - Thư mục chứa tệp Docker.

Giá trị trả lại

không ai

Thí dụ

sudo docker build –t myimage:0.1.

Đây, myimage là tên chúng tôi đặt cho Hình ảnh và 0.1 là số thẻ mà chúng tôi đang cấp cho hình ảnh của mình.

Vì Tệp Docker nằm trong thư mục làm việc hiện tại, chúng tôi đã sử dụng "." ở cuối lệnh để biểu thị thư mục làm việc hiện tại.

Đầu ra

Từ đầu ra, trước tiên bạn sẽ thấy rằng Hình ảnh Ubuntu sẽ được tải xuống từ Docker Hub, vì không có hình ảnh cục bộ nào trên máy.

Cuối cùng, khi quá trình xây dựng hoàn tất, tất cả các lệnh cần thiết sẽ chạy trên hình ảnh.

Sau đó, bạn sẽ thấy thông báo được tạo thành công và ID của Hình ảnh mới. Khi bạn chạy Dockerimages command, bạn sẽ có thể xem hình ảnh mới của mình.

Bây giờ bạn có thể tạo vùng chứa từ Hình ảnh mới của mình.

Các kho lưu trữ công khai có thể được sử dụng để lưu trữ các hình ảnh Docker mà mọi người khác có thể sử dụng. Một ví dụ là các hình ảnh có sẵn trong Docker Hub. Hầu hết các hình ảnh như Centos, Ubuntu và Jenkins đều được cung cấp công khai cho tất cả mọi người. Chúng tôi cũng có thể cung cấp hình ảnh của mình bằng cách xuất bản nó lên kho lưu trữ công khai trên Docker Hub.

Đối với ví dụ của chúng tôi, chúng tôi sẽ sử dụng myimagekho lưu trữ được xây dựng trong chương "Xây dựng tệp Docker" và tải hình ảnh đó lên Docker Hub. Trước tiên, hãy xem lại các hình ảnh trên máy chủ Docker của chúng tôi để xem chúng tôi có thể đẩy những gì vào sổ đăng ký Docker.

Ở đây, chúng tôi có myimage:0.1hình ảnh được tạo như một phần của chương "Xây dựng tệp Docker". Hãy sử dụng cái này để tải lên kho lưu trữ công cộng Docker.

Các bước sau giải thích cách bạn có thể tải hình ảnh lên kho lưu trữ công cộng.

Step 1- Đăng nhập vào Docker Hub và tạo kho lưu trữ của bạn. Đây là kho lưu trữ hình ảnh của bạn. Đi đếnhttps://hub.docker.com/ và đăng nhập bằng thông tin đăng nhập của bạn.

Step 2 - Nhấp vào nút "Tạo kho lưu trữ" trên màn hình trên và tạo kho lưu trữ với tên demorep. Đảm bảo rằng khả năng hiển thị của kho lưu trữ là công khai.

Khi kho lưu trữ được tạo, hãy ghi lại pull lệnh được đính kèm vào kho lưu trữ.

Các pull lệnh sẽ được sử dụng trong kho lưu trữ của chúng tôi như sau:

docker pull demousr/demorep

Step 3- Bây giờ quay lại Docker Host. Ở đây chúng ta cần gắn thẻmyimagevào kho lưu trữ mới được tạo trong Docker Hub. Chúng tôi có thể làm điều này thông qua Dockertag command.

Chúng tôi sẽ tìm hiểu thêm về điều này tag command ở phần sau của chương này.

Step 4- Đưa ra lệnh đăng nhập Docker để đăng nhập vào kho lưu trữ Docker Hub từ dấu nhắc lệnh. Lệnh đăng nhập Docker sẽ nhắc bạn nhập tên người dùng và mật khẩu vào kho lưu trữ Docker Hub.

Step 5- Sau khi hình ảnh đã được gắn thẻ, bây giờ là lúc để đẩy hình ảnh vào kho lưu trữ Docker Hub. Chúng tôi có thể làm điều này thông qua Dockerpushchỉ huy. Chúng ta sẽ tìm hiểu thêm về lệnh này ở phần sau của chương này.

thẻ docker

Phương pháp này cho phép một người gắn thẻ một hình ảnh vào kho lưu trữ có liên quan.

Cú pháp

docker tag imageID Repositoryname

Tùy chọn

  • imageID - Đây là ImageID cần được gắn thẻ vào kho lưu trữ.

  • Repositoryname - Đây là tên kho lưu trữ mà ImageID cần được gắn thẻ.

Giá trị trả lại

không ai

Thí dụ

sudo docker tag ab0c1d3744dd demousr/demorep:1.0

Đầu ra

Dưới đây là một đầu ra mẫu của ví dụ trên.

đẩy docker

Phương pháp này cho phép một người đẩy hình ảnh đến Docker Hub.

Cú pháp

docker push Repositoryname

Tùy chọn

  • Repositoryname - Đây là tên kho lưu trữ cần được đẩy vào Docker Hub.

Giá trị trả lại

ID dài của kho lưu trữ được đẩy sang Docker Hub.

Thí dụ

sudo docker push demousr/demorep:1.0

Đầu ra

Nếu bạn quay lại trang Docker Hub và chuyển đến kho lưu trữ của mình, bạn sẽ thấy tên thẻ trong kho lưu trữ.

Bây giờ, hãy thử kéo kho lưu trữ mà chúng tôi đã tải lên máy chủ Docker của chúng tôi. Trước tiên hãy xóa các hình ảnh,myimage:0.1demousr/demorep:1.0, từ máy chủ Docker địa phương. Hãy sử dụng Dockerpull command để lấy kho lưu trữ từ Docker Hub.

Từ ảnh chụp màn hình ở trên, bạn có thể thấy rằng Docker pull lệnh đã lấy kho lưu trữ mới của chúng tôi từ Docker Hub và đặt nó vào máy của chúng tôi.

Trong Docker, bản thân các thùng chứa có thể có các ứng dụng chạy trên các cổng. Khi bạn chạy một vùng chứa, nếu bạn muốn truy cập ứng dụng trong vùng chứa thông qua số cổng, bạn cần ánh xạ số cổng của vùng chứa với số cổng của máy chủ Docker. Hãy xem một ví dụ về cách có thể đạt được điều này.

Trong ví dụ của chúng tôi, chúng tôi sẽ tải xuống vùng chứa Jenkins từ Docker Hub. Sau đó, chúng tôi sẽ ánh xạ số cổng Jenkins với số cổng trên máy chủ Docker.

Step 1 - Đầu tiên, bạn cần đăng ký đơn giản trên Docker Hub.

Step 2 - Khi bạn đã đăng ký, bạn sẽ được đăng nhập vào Docker Hub.

Step 3 - Tiếp theo, chúng ta hãy duyệt và tìm hình ảnh Jenkins.

Step 4 - Nếu bạn cuộn xuống trên cùng một trang, bạn có thể thấy Docker pullchỉ huy. Điều này sẽ được sử dụng để tải Hình ảnh Jenkins xuống máy chủ Ubuntu cục bộ.

Step 5 - Bây giờ vào máy chủ Ubuntu và chạy lệnh -

sudo docker pull jenkins

Step 6 - Để hiểu những cổng nào được tiếp xúc bởi vùng chứa, bạn nên sử dụng Docker inspect command để kiểm tra hình ảnh.

Bây giờ chúng ta hãy tìm hiểu thêm về điều này inspect chỉ huy.

thanh tra bến tàu

Phương pháp này cho phép một người trả về thông tin cấp thấp trên vùng chứa hoặc hình ảnh.

Cú pháp

docker inspect Container/Image

Tùy chọn

  • Container/Image - Hộp đựng hoặc hình ảnh để kiểm tra

Giá trị trả lại

Thông tin cấp thấp của hình ảnh hoặc vùng chứa ở định dạng JSON.

Thí dụ

sudo docker inspect jenkins

Đầu ra

Đầu ra của inspectlệnh cung cấp đầu ra JSON. Nếu chúng ta quan sát đầu ra, chúng ta có thể thấy rằng có một phần của "ExposedPorts" và thấy rằng có hai cổng được đề cập. Một làdata port của 8080 và cái kia là control port trong tổng số 50000.

Để chạy Jenkins và ánh xạ các cổng, bạn cần thay đổi Docker runvà thêm tùy chọn 'p' chỉ định ánh xạ cổng. Vì vậy, bạn cần chạy lệnh sau:

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Phía bên trái của ánh xạ số cổng là cổng máy chủ Docker để ánh xạ tới và phía bên phải là số cổng vùng chứa Docker.

Khi bạn mở trình duyệt và điều hướng đến máy chủ Docker trên cổng 8080, bạn sẽ thấy Jenkins khởi động và chạy.

Bạn có thể cần phải có kho lưu trữ riêng của mình. Bạn có thể không muốn lưu trữ các kho lưu trữ trên Docker Hub. Đối với điều này, có một vùng chứa kho lưu trữ từ Docker. Hãy xem cách chúng ta có thể tải xuống và sử dụng vùng chứa cho đăng ký.

Step 1 - Sử dụng Docker runlệnh để tải xuống sổ đăng ký riêng. Điều này có thể được thực hiện bằng cách sử dụng lệnh sau.

sudo docker run –d –p 5000:5000 –-name registry registry:2

Những điểm sau cần lưu ý về lệnh trên:

  • Registry là vùng chứa do Docker quản lý có thể được sử dụng để lưu trữ các kho riêng.

  • Số cổng mà container tiếp xúc là 5000. Do đó với –p command, chúng tôi đang ánh xạ cùng một số cổng với số cổng 5000 trên máy chủ cục bộ của chúng tôi.

  • Chúng tôi chỉ gắn thẻ vùng chứa đăng ký là “2”, để phân biệt nó trên máy chủ Docker.

  • Các –dtùy chọn được sử dụng để chạy vùng chứa ở chế độ tách rời. Điều này để vùng chứa có thể chạy trong nền

Step 2 - Hãy làm một docker ps để thấy rằng vùng chứa đăng ký thực sự đang chạy.

Bây giờ chúng tôi đã xác nhận rằng vùng chứa đăng ký thực sự đang chạy.

Step 3- Bây giờ hãy gắn thẻ một trong những hình ảnh hiện có của chúng tôi để chúng tôi có thể đẩy nó vào kho lưu trữ cục bộ của chúng tôi. Trong ví dụ của chúng tôi, vì chúng tôi cócentos hình ảnh có sẵn tại địa phương, chúng tôi sẽ gắn thẻ nó vào kho lưu trữ riêng tư của chúng tôi và thêm tên thẻ là centos.

sudo docker tag 67591570dd29 localhost:5000/centos

Những điểm sau cần lưu ý về lệnh trên:

  • 67591570dd29 đề cập đến ID hình ảnh cho centos hình ảnh.

  • localhost:5000 là vị trí của kho lưu trữ riêng tư của chúng tôi.

  • Chúng tôi đang gắn thẻ tên kho lưu trữ là centos trong kho riêng của chúng tôi.

Step 4 - Bây giờ hãy sử dụng Docker push lệnh để đẩy kho lưu trữ đến kho lưu trữ riêng của chúng tôi.

sudo docker push localhost:5000/centos

Ở đây, chúng tôi đang đẩy centos hình ảnh vào kho lưu trữ riêng tư được lưu trữ tại localhost:5000.

Step 5 - Bây giờ chúng ta hãy xóa các hình ảnh cục bộ mà chúng ta có centos sử dụng docker rmicác lệnh. Sau đó, chúng tôi có thể tải xuốngcentos hình ảnh từ kho lưu trữ riêng tư của chúng tôi.

sudo docker rmi centos:latest 
sudo docker rmi 67591570dd29

Step 6 - Bây giờ chúng tôi không có bất kỳ centos hình ảnh trên máy cục bộ của chúng tôi, bây giờ chúng tôi có thể sử dụng Docker sau pull lệnh để kéo centos hình ảnh từ kho lưu trữ riêng tư của chúng tôi.

sudo docker pull localhost:5000/centos

Ở đây, chúng tôi đang kéo centos hình ảnh vào kho lưu trữ riêng tư được lưu trữ tại localhost:5000.

Nếu bây giờ bạn nhìn thấy hình ảnh trên hệ thống của mình, bạn sẽ thấy centos cả hình ảnh.

Chúng tôi đã học cách sử dụng Docker File để tạo hình ảnh tùy chỉnh của riêng mình. Bây giờ chúng ta hãy xem cách chúng ta có thể xây dựng một hình ảnh máy chủ web có thể được sử dụng để tạo vùng chứa.

Trong ví dụ của chúng tôi, chúng tôi sẽ sử dụng Máy chủ Web Apache trên Ubuntu để xây dựng hình ảnh của chúng tôi. Hãy làm theo các bước dưới đây, để tạo tệp Docker máy chủ web của chúng tôi.

Step 1- Bước đầu tiên là xây dựng Tệp Docker của chúng tôi. Hãy sử dụngvim và tạo Tệp Docker với thông tin sau.

FROM ubuntu 
RUN apt-get update 
RUN apt-get install –y apache2 
RUN apt-get install –y apache2-utils 
RUN apt-get clean 
EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]

Những điểm sau đây cần được lưu ý về các tuyên bố trên:

  • Đầu tiên chúng tôi tạo hình ảnh của mình từ hình ảnh cơ sở Ubuntu.

  • Tiếp theo, chúng ta sẽ sử dụng lệnh RUN để cập nhật tất cả các gói trên hệ thống Ubuntu.

  • Tiếp theo, chúng tôi sử dụng lệnh RUN để cài đặt apache2 trên hình ảnh của chúng tôi.

  • Tiếp theo, chúng tôi sử dụng lệnh RUN để cài đặt các gói apache2 tiện ích cần thiết trên hình ảnh của chúng tôi.

  • Tiếp theo, chúng ta sử dụng lệnh RUN để xóa các tập tin không cần thiết khỏi hệ thống.

  • Lệnh EXPOSE được sử dụng để hiển thị cổng 80 của Apache trong vùng chứa với máy chủ Docker.

  • Cuối cùng, lệnh CMD được sử dụng để chạy apache2 trong nền.

Bây giờ chi tiết tệp đã được nhập, chỉ cần lưu tệp.

Step 2 - Chạy Docker buildlệnh để xây dựng tệp Docker. Nó có thể được thực hiện bằng cách sử dụng lệnh sau:

sudo docker build –t=”mywebserver” .

Chúng tôi đang gắn thẻ hình ảnh của mình là mywebserver. Sau khi hình ảnh được tạo xong, bạn sẽ nhận được thông báo thành công rằng tệp đã được tạo.

Step 3- Bây giờ tệp máy chủ web đã được xây dựng, bây giờ là lúc tạo vùng chứa từ hình ảnh. Chúng ta có thể làm điều này với Dockerrun chỉ huy.

sudo docker run –d –p 80:80 mywebserver

Những điểm sau cần lưu ý về lệnh trên:

  • Số cổng mà container tiếp xúc là 80. Do đó với –p lệnh, chúng tôi đang ánh xạ cùng một số cổng với số cổng 80 trên máy chủ cục bộ của chúng tôi.

  • Các –dtùy chọn được sử dụng để chạy vùng chứa ở chế độ tách rời. Điều này để vùng chứa có thể chạy trong nền.

Nếu bạn đi đến cổng 80 của máy chủ Docker trong trình duyệt web của mình, bây giờ bạn sẽ thấy rằng Apache đang hoạt động.

Docker có một loạt các lệnh hướng dẫn. Đây là các lệnh được đặt trong Docker File. Hãy xem xét những cái có sẵn.

Hướng dẫn CMD

Lệnh này được sử dụng để thực hiện một lệnh trong thời gian chạy khi vùng chứa được thực thi.

Cú pháp

CMD command param1

Tùy chọn

  • command - Đây là lệnh chạy khi vùng chứa được khởi chạy.

  • param1 - Đây là tham số được nhập vào lệnh.

Giá trị trả lại

Lệnh sẽ thực hiện tương ứng.

Thí dụ

Trong ví dụ của chúng tôi, chúng tôi sẽ nhập một Hello World echo trong Docker File của chúng tôi và tạo một hình ảnh và khởi chạy một vùng chứa từ nó.

Step 1 - Xây dựng tệp Docker bằng các lệnh sau:

FROM ubuntu 
MAINTAINER [email protected] 
CMD [“echo” , “hello world”]

Ở đây, CMD chỉ được sử dụng để in hello world.

Step 2 - Xây dựng hình ảnh bằng Docker build chỉ huy.

Step 3 - Chạy một vùng chứa từ hình ảnh.

ENTRYPOINT

Lệnh này cũng có thể được sử dụng để thực hiện các lệnh trong thời gian chạy cho vùng chứa. Nhưng chúng ta có thể linh hoạt hơn với lệnh ENTRYPOINT.

Cú pháp

ENTRYPOINT command param1

Tùy chọn

  • command - Đây là lệnh chạy khi vùng chứa được khởi chạy.

  • param1 - Đây là tham số được nhập vào lệnh.

Giá trị trả lại

Lệnh sẽ thực hiện tương ứng.

Thí dụ

Hãy xem một ví dụ để hiểu thêm về ENTRYPOINT. Trong ví dụ của chúng tôi, chúng tôi sẽ nhập mộtecho trong Tệp Docker của chúng tôi và tạo một hình ảnh và khởi chạy một vùng chứa từ nó.

Step 1 - Xây dựng tệp Docker bằng các lệnh sau:

FROM ubuntu 
MAINTAINER [email protected] 
ENTRYPOINT [“echo”]

Step 2 - Xây dựng hình ảnh bằng Docker build chỉ huy.

Step 3 - Chạy một vùng chứa từ hình ảnh.

ENV

Lệnh này được sử dụng để đặt các biến môi trường trong vùng chứa.

Cú pháp

ENV key value

Tùy chọn

  • Key - Đây là chìa khóa cho biến môi trường.

  • value - Đây là giá trị cho biến môi trường.

Giá trị trả lại

Lệnh sẽ thực hiện tương ứng.

Thí dụ

Trong ví dụ của chúng tôi, chúng tôi sẽ nhập một echo trong Tệp Docker của chúng tôi và tạo một hình ảnh và khởi chạy một vùng chứa từ nó.

Step 1 - Xây dựng tệp Docker bằng các lệnh sau:

FROM ubuntu 
MAINTAINER [email protected] 
ENV var1=Tutorial var2=point

Step 2 - Xây dựng hình ảnh bằng Docker build chỉ huy.

Step 3 - Chạy một vùng chứa từ hình ảnh.

Step 4 - Cuối cùng, thực hiện env lệnh để xem các biến môi trường.

WORKDIR

Lệnh này được sử dụng để thiết lập thư mục làm việc của vùng chứa.

Cú pháp

WORKDIR dirname

Tùy chọn

  • dirname- Thư mục làm việc mới. Nếu thư mục không tồn tại, nó sẽ được thêm vào.

Giá trị trả lại

Lệnh sẽ thực hiện tương ứng.

Thí dụ

Trong ví dụ của chúng tôi, chúng tôi sẽ nhập một echo trong Tệp Docker của chúng tôi và tạo một hình ảnh và khởi chạy một vùng chứa từ nó.

Step 1 - Xây dựng tệp Docker bằng các lệnh sau:

FROM ubuntu 
MAINTAINER [email protected] 
WORKDIR /newtemp 
CMD pwd

Step 2 - Xây dựng hình ảnh bằng Docker build chỉ huy.

Step 3 - Chạy một vùng chứa từ hình ảnh.

Liên kết vùng chứa cho phép nhiều vùng chứa liên kết với nhau. Đó là một lựa chọn tốt hơn là để lộ các cổng. Chúng ta hãy đi từng bước và tìm hiểu cách thức hoạt động của nó.

Step 1 - Tải xuống hình ảnh Jenkins, nếu nó chưa có, sử dụng Jenkins pull chỉ huy.

Step 2 - Sau khi hình ảnh có sẵn, hãy chạy vùng chứa, nhưng lần này, bạn có thể chỉ định tên cho vùng chứa bằng cách sử dụng –-nameLựa chọn. Đây sẽ là của chúng tôisource container.

Step 3- Tiếp theo, đã đến lúc khởi chạy vùng chứa đích, nhưng lần này, chúng ta sẽ liên kết nó với vùng chứa nguồn của chúng ta. Đối với vùng chứa đích của chúng tôi, chúng tôi sẽ sử dụng hình ảnh Ubuntu tiêu chuẩn.

Khi bạn làm một docker ps, bạn sẽ thấy cả hai vùng chứa đang chạy.

Step 4 - Bây giờ, gắn vào thùng nhận.

Sau đó chạy envchỉ huy. Bạn sẽ nhận thấy các biến mới để liên kết với vùng chứa nguồn.

Trình điều khiển lưu trữ

Docker có nhiều trình điều khiển lưu trữ cho phép một trình điều khiển hoạt động với các thiết bị lưu trữ bên dưới. Bảng sau đây cho thấy các trình điều khiển lưu trữ khác nhau cùng với công nghệ được sử dụng cho các trình điều khiển lưu trữ.

Công nghệ Trình điều khiển lưu trữ
OverlayFS lớp phủ hoặc lớp phủ2
AUFS aufs
Btrfs brtfs
Quản lý thiết bị quản lý thiết bị
VFS vfs
ZFS zfs

Bây giờ chúng ta hãy thảo luận về một số trường hợp mà bạn sẽ sử dụng các trình điều khiển lưu trữ khác nhau -

AUFS

  • Đây là một trình điều khiển ổn định; có thể được sử dụng cho các ứng dụng sẵn sàng sản xuất.

  • Nó có khả năng sử dụng bộ nhớ tốt và tốt để đảm bảo trải nghiệm Docker mượt mà cho vùng chứa.

  • Có một hoạt động ghi cao liên quan đến trình điều khiển này cần được xem xét.

  • Nó tốt cho các hệ thống có Nền tảng như một loại dịch vụ hoạt động.

Trình quản lý thiết bị

  • Đây là một trình điều khiển ổn định; đảm bảo trải nghiệm Docker mượt mà.

  • Trình điều khiển này tốt để kiểm tra các ứng dụng trong phòng thí nghiệm.

  • Trình điều khiển này phù hợp với chức năng chính của nhân Linux.

Btrfs

  • Trình điều khiển này phù hợp với chức năng chính của nhân Linux.

  • Có một hoạt động ghi cao liên quan đến trình điều khiển này cần được xem xét.

  • Trình điều khiển này tốt cho các trường hợp bạn duy trì nhiều nhóm xây dựng.

Ovelay

  • Đây là một trình điều khiển ổn định và nó phù hợp với chức năng chính của nhân Linux.

  • Nó có một bộ nhớ sử dụng tốt.

  • Trình điều khiển này tốt để kiểm tra các ứng dụng trong phòng thí nghiệm.

ZFS

  • Đây là một trình điều khiển ổn định và nó tốt cho việc thử nghiệm các ứng dụng trong phòng thí nghiệm.

  • Nó tốt cho các hệ thống thuộc loại Nền tảng như một Dịch vụ.

Để xem trình điều khiển lưu trữ đang được sử dụng, hãy phát hành docker info chỉ huy.

Cú pháp

docker info

Tùy chọn

không ai

Giá trị trả lại

Lệnh sẽ cung cấp tất cả thông tin tương đối về thành phần Docker được cài đặt trên Docker Host.

Thí dụ

sudo docker info

Đầu ra

Kết quả sau đây cho thấy rằng trình điều khiển chính được sử dụng là aufs trình điều khiển và thư mục gốc được lưu trữ trong /var/lib/docker/aufs.

Khối lượng dữ liệu

Trong Docker, bạn có một ổ đĩa riêng có thể chia sẻ trên các vùng chứa. Chúng được gọi làdata volumes. Một số tính năng của khối lượng dữ liệu là -

  • Chúng được khởi tạo khi vùng chứa được tạo.
  • Chúng có thể được chia sẻ và cũng có thể được sử dụng lại giữa nhiều vùng chứa.
  • Có thể thực hiện trực tiếp bất kỳ thay đổi nào đối với âm lượng.
  • Chúng tồn tại ngay cả sau khi vùng chứa bị xóa.

Hãy nhìn vào thùng chứa Jenkins của chúng tôi. Hãy làm mộtdocker inspectđể xem chi tiết của hình ảnh này. Chúng ta có thể đưa ra lệnh sau để viết đầu ra củadocker inspect vào một tệp văn bản và sau đó xem tệp tương ứng.

sudo docker inspect Jenkins > tmp.txt

Khi bạn xem tệp văn bản bằng cách sử dụng more command, bạn sẽ thấy một mục là JENKINS_HOME=/var/Jenkins_home.

Đây là ánh xạ được thực hiện trong vùng chứa thông qua hình ảnh Jenkins.

Bây giờ, giả sử bạn muốn ánh xạ ổ đĩa trong vùng chứa thành một ổ đĩa cục bộ, thì bạn cần chỉ định tùy chọn –v khi khởi chạy vùng chứa. Một ví dụ được hiển thị bên dưới -

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

Tùy chọn –v được sử dụng để ánh xạ khối lượng trong vùng chứa là /var/jenkins_home đến một vị trí trên Máy chủ Docker của chúng tôi, đó là /home/demo.

Bây giờ nếu bạn đi đến /home/demo vị trí trên Máy chủ Docker của bạn sau khi khởi chạy vùng chứa, bạn sẽ thấy tất cả các tệp vùng chứa hiện diện ở đó.

Thay đổi trình điều khiển lưu trữ cho vùng chứa

Nếu bạn muốn thay đổi trình điều khiển lưu trữ được sử dụng cho một vùng chứa, bạn có thể làm như vậy khi khởi chạy vùng chứa. Điều này có thể được thực hiện bằng cách sử dụng–volume-driver khi sử dụng docker runchỉ huy. Dưới đây là một ví dụ:

sudo docker run –d --volume-driver=flocker 
   –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

Các –volume-driver tùy chọn được sử dụng để chỉ định một trình điều khiển lưu trữ khác cho vùng chứa.

Để xác nhận rằng trình điều khiển đã được thay đổi, trước tiên hãy sử dụng docker pslệnh để xem các vùng chứa đang chạy và lấy ID vùng chứa. Vì vậy, trước tiên hãy phát hành lệnh sau:

sudo docker ps

Sau đó, phát hành một docker inspect chống lại vùng chứa và đưa đầu ra vào tệp văn bản bằng lệnh.

sudo docker inspect 9bffb1bfebee > temp.txt

Nếu bạn duyệt qua tệp văn bản và đi đến dòng cho biết VolumeDriver, bạn sẽ thấy rằng tên trình điều khiển đã được thay đổi.

Tạo âm lượng

Một tập có thể được tạo trước bằng cách sử dụng dockerchỉ huy. Chúng ta hãy tìm hiểu thêm về lệnh này.

Cú pháp

docker volume create –-name=volumename –-opt options

Tùy chọn

  • name - Đây là tên của ổ đĩa cần được tạo.

  • opt - Đây là những tùy chọn bạn có thể cung cấp trong khi tạo âm lượng.

Giá trị trả lại

Lệnh sẽ xuất ra tên của volume được tạo.

Thí dụ

sudo docker volume create –-name = demo –opt o = size = 100m

Trong lệnh trên, chúng ta đang tạo một ổ đĩa có kích thước 100MB và có tên là bản demo.

Đầu ra

Đầu ra của lệnh trên được hiển thị bên dưới:

Liệt kê tất cả các Tập

Bạn cũng có thể liệt kê tất cả docker volumes trên một docker host. Thông tin chi tiết về lệnh này được cung cấp bên dưới:

Cú pháp

docker volume ls

Tùy chọn

không ai

Giá trị trả lại

Lệnh sẽ xuất tất cả các ổ đĩa trên docker host.

Thí dụ

sudo docker volume ls

Đầu ra

Đầu ra của lệnh trên được hiển thị bên dưới:

Docker chăm sóc các khía cạnh mạng để các vùng chứa có thể giao tiếp với các vùng chứa khác và cả với Máy chủ lưu trữ Docker. Nếu bạn làm mộtifconfigtrên Máy chủ Docker, bạn sẽ thấy bộ điều hợp Docker Ethernet. Bộ điều hợp này được tạo khi Docker được cài đặt trên Máy chủ lưu trữ Docker.

Đây là cầu nối giữa Máy chủ Docker và Máy chủ Linux. Bây giờ chúng ta hãy xem xét một số lệnh liên quan đến mạng trong Docker.

Liệt kê tất cả các mạng Docker

Lệnh này có thể được sử dụng để liệt kê tất cả các mạng được liên kết với Docker trên máy chủ.

Cú pháp

docker network ls

Tùy chọn

không ai

Giá trị trả lại

Lệnh sẽ xuất ra tất cả các mạng trên Docker Host.

Thí dụ

sudo docker network ls

Đầu ra

Đầu ra của lệnh trên được hiển thị bên dưới

Kiểm tra mạng Docker

Nếu bạn muốn xem thêm chi tiết về mạng được liên kết với Docker, bạn có thể sử dụng Docker network inspect chỉ huy.

Cú pháp

docker network inspect networkname

Tùy chọn

  • networkname - Đây là tên của mạng bạn cần kiểm tra.

Giá trị trả lại

Lệnh sẽ xuất ra tất cả các thông tin chi tiết về mạng.

Thí dụ

sudo docker network inspect bridge

Đầu ra

Đầu ra của lệnh trên được hiển thị bên dưới:

Bây giờ chúng ta hãy chạy một vùng chứa và xem điều gì sẽ xảy ra khi chúng ta kiểm tra lại mạng. Hãy tạo một vùng chứa Ubuntu bằng lệnh sau:

sudo docker run –it ubuntu:latest /bin/bash

Bây giờ nếu chúng ta kiểm tra tên mạng của mình thông qua lệnh sau, bây giờ bạn sẽ thấy rằng vùng chứa đã được gắn vào cầu nối.

sudo docker network inspect bridge

Tạo mạng mới của riêng bạn

Người ta có thể tạo một mạng trong Docker trước khi khởi chạy các vùng chứa. Điều này có thể được thực hiện bằng lệnh sau:

Cú pháp

docker network create –-driver drivername name

Tùy chọn

  • drivername - Đây là tên được sử dụng cho trình điều khiển mạng.

  • name - Đây là tên được đặt cho mạng.

Giá trị trả lại

Lệnh sẽ xuất ra ID dài cho mạng mới.

Thí dụ

sudo docker network create –-driver bridge new_nw

Đầu ra

Đầu ra của lệnh trên được hiển thị bên dưới:

Bây giờ bạn có thể đính kèm mạng mới khi khởi chạy vùng chứa. Vì vậy, hãy quay một vùng chứa Ubuntu bằng lệnh sau:

sudo docker run –it –network=new_nw ubuntu:latest /bin/bash

Và bây giờ khi bạn kiểm tra mạng thông qua lệnh sau, bạn sẽ thấy vùng chứa được gắn vào mạng.

sudo docker network inspect new_nw

Node.js là một khung JavaScript được sử dụng để phát triển các ứng dụng phía máy chủ. Nó là một framework mã nguồn mở được phát triển để chạy trên nhiều hệ điều hành khác nhau. Vì Node.js là một khuôn khổ phổ biến để phát triển, Docker cũng đã đảm bảo rằng nó có hỗ trợ cho các ứng dụng Node.js.

Bây giờ chúng ta sẽ thấy các bước khác nhau để thiết lập và chạy vùng chứa Docker cho Node.js.

Step 1- Bước đầu tiên là kéo hình ảnh từ Docker Hub. Khi bạn đăng nhập vào Docker Hub, bạn sẽ có thể tìm kiếm và thấy hình ảnh cho Node.js như hình dưới đây. Chỉ cần nhập Node vào hộp tìm kiếm và nhấp vào liên kết nút (chính thức) xuất hiện trong kết quả tìm kiếm.

Step 2 - Bạn sẽ thấy rằng Docker pull lệnh cho nút trong thông tin chi tiết về kho lưu trữ trong Docker Hub.

Step 3 - Trên Máy chủ Docker, sử dụng Docker pull như được hiển thị ở trên để tải xuống hình ảnh nút mới nhất từ ​​Docker Hub.

Một khi pull hoàn tất, sau đó chúng ta có thể tiến hành bước tiếp theo.

Step 4 - Trên Máy chủ Docker, hãy sử dụng vimtrình soạn thảo và tạo một tệp ví dụ Node.js. Trong tệp này, chúng tôi sẽ thêm một lệnh đơn giản để hiển thị “HelloWorld” vào dấu nhắc lệnh.

Trong tệp Node.js, hãy thêm câu lệnh sau:

Console.log(‘Hello World’);

Điều này sẽ xuất ra cụm từ “Hello World” khi chúng tôi chạy nó qua Node.js.

Đảm bảo rằng bạn lưu tệp và sau đó tiến hành bước tiếp theo.

Step 5 - Để chạy tập lệnh Node.js của chúng tôi bằng cách sử dụng vùng chứa Node Docker, chúng tôi cần thực hiện câu lệnh sau:

sudo docker run –it –rm –name = HelloWorld –v “$PWD”:/usr/src/app 
   –w /usr/src/app node node HelloWorld.js

Những điểm sau cần lưu ý về lệnh trên:

  • Các –rm tùy chọn được sử dụng để loại bỏ vùng chứa sau khi nó được chạy.

  • Chúng tôi đang đặt tên cho vùng chứa là “HelloWorld”.

  • Chúng tôi đang đề cập đến việc lập bản đồ khối lượng trong vùng chứa /usr/src/appđến thư mục làm việc hiện tại của chúng tôi. Điều này được thực hiện để vùng chứa nút sẽ nhận tập lệnh HelloWorld.js của chúng tôi có trong thư mục làm việc của chúng tôi trên Máy chủ lưu trữ Docker.

  • Các –w tùy chọn được sử dụng để chỉ định thư mục làm việc được sử dụng bởi Node.js.

  • Tùy chọn nút đầu tiên được sử dụng để chỉ định chạy hình ảnh nút.

  • Tùy chọn nút thứ hai được sử dụng để đề cập đến để chạy lệnh nút trong vùng chứa nút.

  • Và cuối cùng chúng tôi đề cập đến tên của kịch bản của chúng tôi.

Sau đó chúng ta sẽ nhận được kết quả sau. Và từ đầu ra, chúng ta có thể thấy rõ rằng vùng chứa Node đã chạy như một vùng chứa và thực thi tập lệnh HelloWorld.js.

MongoDB là cơ sở dữ liệu hướng tài liệu nổi tiếng được nhiều ứng dụng web hiện đại sử dụng. Vì MongoDB là một cơ sở dữ liệu phổ biến để phát triển, Docker cũng đã đảm bảo rằng nó có hỗ trợ cho MongoDB.

Bây giờ chúng ta sẽ thấy các bước khác nhau để thiết lập và chạy vùng chứa Docker cho MongoDB.

Step 1- Bước đầu tiên là kéo hình ảnh từ Docker Hub. Khi đăng nhập vào Docker Hub, bạn sẽ có thể tìm kiếm và thấy hình ảnh cho Mongo như hình dưới đây. Chỉ cần nhập Mongo vào hộp tìm kiếm và nhấp vào liên kết Mongo (chính thức) xuất hiện trong kết quả tìm kiếm.

Step 2 - Bạn sẽ thấy rằng Docker pull lệnh cho Mongo trong thông tin chi tiết về kho lưu trữ trong Docker Hub.

Step 3 - Trên Máy chủ Docker, sử dụng Docker pull như được hiển thị ở trên để tải xuống hình ảnh Mongo mới nhất từ ​​Docker Hub.

Step 4- Bây giờ chúng ta đã có hình ảnh cho Mongo, đầu tiên chúng ta hãy chạy một vùng chứa MongoDB sẽ là thể hiện của chúng ta cho MongoDB. Đối với điều này, chúng tôi sẽ đưa ra lệnh sau:

sudo docker run -it -d mongo

Những điểm sau có thể được lưu ý về lệnh trên:

  • Các –it tùy chọn được sử dụng để chạy vùng chứa ở chế độ tương tác.

  • Các –d tùy chọn được sử dụng để chạy vùng chứa như một quy trình daemon.

  • Và cuối cùng chúng tôi đang tạo một vùng chứa từ hình ảnh Mongo.

Sau đó, bạn có thể phát hành docker ps lệnh để xem các vùng chứa đang chạy -

Hãy lưu ý những điểm sau:

  • Tên của vùng chứa là tender_poitras. Tên này sẽ khác vì tên của các vùng chứa liên tục thay đổi khi bạn xoay một vùng chứa. Nhưng chỉ cần ghi chú vùng chứa mà bạn đã khởi chạy.

  • Tiếp theo, cũng để ý số cổng mà nó đang chạy. Nó đang nghe trên cổng TCP 27017.

Step 5- Bây giờ chúng ta hãy quay lên một vùng chứa khác sẽ hoạt động như máy khách của chúng ta sẽ được sử dụng để kết nối với cơ sở dữ liệu MongoDB. Hãy phát hành lệnh sau cho việc này:

sudo docker run –it –link=tender_poitras:mongo mongo /bin/bash

Những điểm sau có thể được lưu ý về lệnh trên:

  • Các –it tùy chọn được sử dụng để chạy vùng chứa ở chế độ tương tác.

  • Hiện chúng tôi đang liên kết vùng chứa mới của mình với vùng chứa máy chủ MongoDB đã được khởi chạy. Ở đây, bạn cần phải đề cập đến tên của vùng chứa đã được khởi chạy.

  • Sau đó, chúng tôi chỉ định rằng chúng tôi muốn khởi chạy vùng chứa Mongo với tư cách là khách hàng của mình và sau đó chạy bin/bash vỏ trong hộp đựng mới của chúng tôi.

Bây giờ bạn sẽ ở trong vùng chứa mới.

Step 6 - Chạy env trong vùng chứa mới để xem chi tiết về cách kết nối với vùng chứa máy chủ MongoDB.

Step 6- Bây giờ là lúc kết nối với máy chủ MongoDB từ vùng chứa máy khách. Chúng ta có thể thực hiện việc này thông qua lệnh sau:

mongo 172.17.0.2:27017

Những điểm sau cần lưu ý về lệnh trên

  • Các mongo lệnh là khách hàng mongo lệnh được sử dụng để kết nối với cơ sở dữ liệu MongoDB.

  • IP và số cổng là những gì bạn nhận được khi sử dụng env chỉ huy.

Khi bạn chạy lệnh, sau đó bạn sẽ được kết nối với cơ sở dữ liệu MongoDB.

Sau đó, bạn có thể chạy bất kỳ lệnh MongoDB nào trong dấu nhắc lệnh. Trong ví dụ của chúng tôi, chúng tôi đang chạy lệnh sau:

use demo

Lệnh này là lệnh MongoDB được sử dụng để chuyển sang tên cơ sở dữ liệu demo. Nếu cơ sở dữ liệu không có sẵn, nó sẽ được tạo.

Bây giờ bạn đã tạo thành công vùng chứa MongoDB của máy khách và máy chủ.

NGINX là một ứng dụng web nhẹ phổ biến được sử dụng để phát triển các ứng dụng phía máy chủ. Nó là một máy chủ web mã nguồn mở được phát triển để chạy trên nhiều hệ điều hành. Từnginx là một máy chủ web phổ biến để phát triển, Docker đã đảm bảo rằng nó có hỗ trợ nginx.

Bây giờ chúng ta sẽ thấy các bước khác nhau để tải vùng chứa Docker cho nginx lên và chạy.

Step 1- Bước đầu tiên là kéo hình ảnh từ Docker Hub. Khi bạn đăng nhập vào Docker Hub, bạn sẽ có thể tìm kiếm và xem hình ảnh chonginxnhư hình bên dưới. Chỉ cần nhập nginx vào hộp tìm kiếm và nhấp vàonginx (chính thức) liên kết xuất hiện trong kết quả tìm kiếm.

Step 2 - Bạn sẽ thấy rằng Docker pull lệnh cho nginx thông tin chi tiết về kho lưu trữ trong Docker Hub.

Step 3 - Trên Máy chủ Docker, sử dụng Docker pull như được hiển thị ở trên để tải xuống hình ảnh nginx mới nhất từ ​​Docker Hub.

Step 4 - Bây giờ chúng ta hãy chạy nginx container thông qua lệnh sau.

sudo docker run –p 8080:80 –d nginx

Chúng tôi đang khai thác cảng trên nginx máy chủ là cổng 80 đến cổng 8080 trên Máy chủ Docker.

Khi bạn chạy lệnh, bạn sẽ nhận được kết quả sau nếu bạn duyệt đến URL http://dockerhost:8080. Điều này cho thấy rằngnginx container đang hoạt động.

Step 5 - Hãy xem xét một ví dụ khác, nơi chúng ta có thể lưu trữ một trang web đơn giản trong ngnixthùng đựng hàng. Trong ví dụ của chúng tôi, chúng tôi sẽ tạo mộtHelloWorld.html gửi và lưu trữ nó trong nginx thùng đựng hàng.

Trước tiên, hãy tạo một tệp HTML có tên HelloWorld.html

Hãy thêm một dòng đơn giản của Hello World trong tệp HTML.

Sau đó, hãy chạy lệnh Docker sau.

sudo docker run –p 8080:80 –v 
   “$PWD”:/usr/share/nginx/html:ro –d nginx

Những điểm sau cần lưu ý về lệnh trên:

  • Chúng tôi đang khai thác cảng trên nginx máy chủ là cổng 80 đến cổng 8080 trên Máy chủ Docker.

  • Tiếp theo, chúng tôi đính kèm khối lượng trên hộp chứa /usr/share/nginx/htmlđến thư mục làm việc hiện tại của chúng tôi. Đây là nơi lưu trữ tệp HelloWorld.html của chúng tôi.

Bây giờ nếu chúng ta duyệt đến URL http://dockerhost:8080/HelloWorld.html chúng ta sẽ nhận được kết quả sau như mong đợi -

Trong các chương giới thiệu, chúng ta đã thấy cài đặt hộp công cụ Docker trên Windows. Hộp công cụ Docker được phát triển để các vùng chứa Docker có thể chạy trên Windows và MacOS. Trang web cho hộp công cụ trên Windows làhttps://docs.docker.com/docker-for-windows/

Đối với Windows, bạn cần có Windows 10 hoặc Windows Server 2016 có bật Hyper-V.

Hộp công cụ bao gồm các thành phần sau:

  • Docker Engine - Điều này được sử dụng làm cơ sở hoặc daemon Docker được sử dụng để chạy các vùng chứa Docker.

  • Docker Machine - để chạy các lệnh máy Docker.

  • Docker Compose để chạy các lệnh soạn Docker.

  • Kinematic - Đây là Docker GUI được xây dựng cho Windows và Mac OS.

  • Oracle virtualbox

Bây giờ chúng ta hãy thảo luận về các loại hoạt động khác nhau có thể có với hộp công cụ Docker.

Chạy trong Powershell

Với hộp công cụ Docker trên Windows 10, giờ đây bạn có thể tắt các lệnh Docker powershell. Nếu bạn mở powershell trên Windows và nhập lệnh của phiên bản Docker, bạn sẽ nhận được tất cả các chi tiết cần thiết về phiên bản Docker được cài đặt.

Kéo hình ảnh và hộp chứa đang chạy

Giờ đây, bạn cũng có thể kéo Hình ảnh từ Docker Hub và chạy các vùng chứa trong powershell như cách bạn làm trong Linux. Ví dụ sau sẽ hiển thị ngắn gọn việc tải xuống hình ảnh Ubuntu và chạy vùng chứa khỏi hình ảnh.

Bước đầu tiên là sử dụng Docker pull lệnh để kéo hình ảnh Ubuntu từ Docker Hub.

Bước tiếp theo là chạy hình ảnh Docker bằng cách sau run lệnh -

docker run –it ubuntu /bin/bash

Bạn sẽ nhận thấy rằng lệnh này giống như lệnh trong Linux.

Kitematic

Đây là GUI tương đương với Docker trên Windows. Để mở GUI này, hãy chuyển đến thanh tác vụ và trên biểu tượng Docker, nhấp chuột phải và chọn mở Kitematic.

Nó sẽ nhắc bạn tải xuống Kitematic GUI. Sau khi tải xuống, chỉ cần giải nén nội dung. Sẽ có một tệp được gọi làKitematic.exe. Bấm đúp vào tệp exe này để mở giao diện GUI.

Sau đó, bạn sẽ được yêu cầu đăng nhập vào Docker Hub, nhập thông qua GUI. Chỉ cần nhập tên người dùng và mật khẩu được yêu cầu và sau đó nhấp vào nút Đăng nhập.

Sau khi đăng nhập, bạn sẽ có thể nhìn thấy tất cả các hình ảnh tải về trên hệ thống ở phía bên tay trái của giao diện.

Ở phía bên phải, bạn sẽ tìm thấy tất cả các hình ảnh có sẵn trên Docker Hub.

Hãy lấy một ví dụ để hiểu cách tải xuống hình ảnh Node từ Docker Hub bằng Kitematic.

Step 1 - Nhập từ khóa của nút vào tiêu chí tìm kiếm.

Step 2 - Nhấp vào createtrên hình ảnh Node chính thức. Sau đó, bạn sẽ thấy hình ảnh được tải xuống.

Khi hình ảnh đã được tải xuống, sau đó nó sẽ bắt đầu chạy vùng chứa Node.

Step 3 - Nếu bạn đi đến settings , bạn có thể xem chi tiết các tùy chọn cài đặt khác, như được hiển thị bên dưới.

  • General settings - Trong tab này, bạn có thể đặt tên cho vùng chứa, thay đổi cài đặt đường dẫn và xóa vùng chứa.

  • Ports- Tại đây bạn có thể thấy các ánh xạ cổng khác nhau. Nếu muốn, bạn có thể tạo ánh xạ cổng của riêng mình.

  • Volumes - Tại đây bạn có thể xem các ánh xạ khối lượng khác nhau.

  • Advanced - Nó chứa các cài đặt nâng cao cho vùng chứa.

ASP.Net là khung phát triển web tiêu chuẩn được cung cấp bởi Microsoft để phát triển các ứng dụng phía máy chủ. Vì ASP.Net đã có một thời gian dài để phát triển, Docker đã đảm bảo rằng nó có hỗ trợ cho ASP.Net.

Trong chương này, chúng ta sẽ thấy các bước khác nhau để tải Docker container cho ASP.Net thiết lập và chạy.

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

Các bước sau đây cần được thực hiện trước để chạy ASP.Net.

Step 1 - Vì tính năng này chỉ có thể chạy trên hệ thống Windows, trước tiên bạn cần đảm bảo rằng bạn có Windows 10 hoặc Window Server 2016.

Step 2- Tiếp theo, đảm bảo rằng Hyper-V đã được cài đặt và Containers trên hệ thống Windows. Để cài đặt Hyper – V và Containers, bạn có thể chuyển đến BẬT hoặc TẮT các tính năng của Windows. Sau đó, đảm bảo tùy chọn Hyper-V và Vùng chứa được chọn và nhấp vào nút OK.

Hệ thống có thể yêu cầu khởi động lại sau hoạt động này.

Step 3 - Tiếp theo, bạn cần sử dụng lệnh Powershell sau để cài đặt 1.13.0rc4phiên bản của Docker. Lệnh sau sẽ tải xuống và lưu trữ nó ở vị trí tạm thời.

Invoke-WebRequest "https://test.docker.com/builds/Windows/x86_64/docker-1.13.0-
   rc4.zip" -OutFile "$env:TEMP\docker-1.13.0-rc4.zip" –UseBasicParsing

Step 4 - Tiếp theo, bạn cần mở rộng kho lưu trữ bằng cách sử dụng sau powershell chỉ huy.

Expand-Archive -Path "$env:TEMP\docker-1.13.0-rc4.zip" -DestinationPath $env:ProgramFiles

Step 5 - Tiếp theo, bạn cần thêm Docker Files vào biến môi trường bằng cách sử dụng như sau powershell chỉ huy.

$env:path += ";$env:ProgramFiles\Docker"

Step 6 - Tiếp theo, bạn cần đăng ký Dịch vụ Docker Daemon bằng cách sau powershell chỉ huy.

dockerd --register-service

Step 7 - Cuối cùng, bạn có thể bắt đầu docker daemon bằng cách sử dụng lệnh sau.

Start-Service Docker

Sử dụng docker version chỉ huy trong powershell để xác minh rằng docker daemon đang làm việc

Cài đặt ASP.Net Container

Hãy xem cách cài đặt ASP.Net container.

Step 1- Bước đầu tiên là kéo hình ảnh từ Docker Hub. Khi bạn đăng nhập vào Docker Hub, bạn sẽ có thể tìm kiếm và xem hình ảnh choMicrosoft/aspnetnhư hình bên dưới. Chỉ cần gõ vàoasp trong hộp tìm kiếm và nhấp vào liên kết Microsoft / aspnet xuất hiện trong kết quả tìm kiếm.

Step 2 - Bạn sẽ thấy rằng Docker pull lệnh cho ASP.Net trong chi tiết của kho lưu trữ trong Docker Hub.

Step 3 - Truy cập Docker Host và chạy Docker pulllệnh cho hình ảnh microsoft / aspnet. Lưu ý rằng hình ảnh khá lớn, có nơi gần 4,2 GB.

Step 4 - Bây giờ đến địa điểm sau https://github.com/Microsoft/aspnet-docker và tải xuống toàn bộ kho lưu trữ Git.

Step 5 - Tạo một thư mục có tên Apptrong ổ C của bạn. Sau đó sao chép nội dung từ4.6.2/samplevào ổ C của bạn. Truy cập tệp Docker trong thư mục mẫu và đưa ra lệnh sau:

docker build –t aspnet-site-new –build-arg site_root=/

Những điểm sau cần lưu ý về lệnh trên:

  • Nó xây dựng một hình ảnh mới được gọi là aspnet-site-new từ Tệp Docker.
  • Đường dẫn gốc được đặt thành thư mục localpath.

Step 6- Bây giờ là lúc để chạy container. Nó có thể được thực hiện bằng cách sử dụng lệnh sau:

docker run –d –p 8000:80 –name my-running-site-new aspnet-site-new

Step 7- Bây giờ bạn sẽ có IIS đang chạy trong vùng chứa Docker. Để tìm Địa chỉ IP của vùng chứa Docker, bạn có thể phát hành Dockerinspect lệnh như hình dưới đây.

Docker Cloud là một dịch vụ do Docker cung cấp, trong đó bạn có thể thực hiện các hoạt động sau:

  • Nodes - Bạn có thể kết nối Đám mây Docker với các nhà cung cấp đám mây hiện có của mình như Azure và AWS để tạo vùng chứa trên các môi trường này.

  • Cloud Repository - Cung cấp một nơi mà bạn có thể lưu trữ kho của riêng mình.

  • Continuous Integration - Kết nối với Github và xây dựng một đường dẫn tích hợp liên tục.

  • Application Deployment - Triển khai và mở rộng quy mô cơ sở hạ tầng và container.

  • Continuous Deployment - Có thể tự động triển khai.

Bắt đầu

Bạn có thể truy cập liên kết sau để bắt đầu với Docker Cloud - https://cloud.docker.com/

Sau khi đăng nhập, bạn sẽ được cung cấp giao diện cơ bản sau:

Kết nối với Nhà cung cấp đám mây

Bước đầu tiên là kết nối với nhà cung cấp đám mây hiện có. Các bước sau đây sẽ hướng dẫn bạn cách kết nối với nhà cung cấp Amazon Cloud.

Step 1- Bước đầu tiên là đảm bảo rằng bạn có các khóa AWS phù hợp. Điều này có thể được lấy từawsbàn điều khiển. Đăng nhập của bạnaws tài khoản sử dụng liên kết sau - https://aws.amazon.com/console/

Step 2- Sau khi đăng nhập, hãy chuyển đến phần Thông tin đăng nhập bảo mật. Ghi lại các khóa truy cập sẽ được sử dụng từ Docker Hub.

Step 3 - Tiếp theo, bạn cần tạo một chính sách trong awsđiều đó sẽ cho phép Docker xem các phiên bản EC2. Chuyển đến phần hồ sơ trongaws. Nhấn vàoCreate Policy cái nút.

Step 4 - Nhấp vào 'Tạo Chính sách Riêng của Bạn' và đặt tên chính sách là dockercloudpolicy và định nghĩa chính sách như hình dưới đây.

{ 
   "Version": "2012-10-17", 
   "Statement": [ { 
      "Action": [ 
         "ec2:*", 
         "iam:ListInstanceProfiles" 
      ], 
      "Effect": "Allow", 
      "Resource": "*" 
   } ] 
}

Tiếp theo, nhấp vào Create Policy cái nút

Step 5 - Tiếp theo, bạn cần tạo một rolesẽ được Docker sử dụng để tạo các nút trên AWS. Đối với điều này, hãy chuyển đếnRoles trong AWS và nhấp vào Create New Role Lựa chọn.

Step 6 - Đặt tên cho vai trò là dockercloud-role.

Step 7 - Trên màn hình tiếp theo, chuyển đến "Vai trò đối với quyền truy cập nhiều tài khoản" và chọn "Cung cấp quyền truy cập giữa tài khoản của bạn và tài khoản AWS của bên thứ ba".

Step 8 - Trên màn hình tiếp theo, nhập các chi tiết sau:

  • Trong trường ID tài khoản, hãy nhập ID cho dịch vụ Docker Cloud: 689684103426.
  • Trong trường ID bên ngoài, hãy nhập tên người dùng Docker Cloud của bạn.

Step 9 - Sau đó, nhấp vào Next Step và trên màn hình tiếp theo, hãy đính kèm chính sách đã được tạo ở bước trước đó.

Step 10 - Cuối cùng, trên màn hình cuối cùng khi vai trò được tạo, hãy đảm bảo sao chép arn vai trò được tạo.

arn:aws:iam::085363624145:role/dockercloud-role

Step 11 - Bây giờ quay lại Docker Cloud, lựa chọn Cloud Providersvà nhấp vào plug symbol bên cạnh Dịch vụ web của Amazon.

Nhập arn vai trò và nhấp vào Save cái nút.

Sau khi được lưu, quá trình tích hợp với AWS sẽ hoàn tất.

Thiết lập nút

Khi quá trình tích hợp với AWS hoàn tất, bước tiếp theo là thiết lập một nút. Chuyển đến phần Nút trong Docker Cloud. Lưu ý rằng việc thiết lập các nút sẽ tự động thiết lập một cụm nút trước tiên.

Step 1 - Chuyển đến phần Nodes trong Docker Cloud.

Step 2 - Tiếp theo, bạn có thể cung cấp thông tin chi tiết về các nút sẽ được thiết lập trong AWS.

Sau đó, bạn có thể nhấp vào cụm Launch Node sẽ xuất hiện ở cuối màn hình. Sau khi nút được triển khai, bạn sẽ nhận được thông báo trong màn hình Cụm nút.

Triển khai một dịch vụ

Bước tiếp theo sau khi triển khai một nút là triển khai một dịch vụ. Để thực hiện, chúng ta cần thực hiện các bước sau.

Step 1 - Đi đến Services Sectiontrong Docker Cloud. Nhấn vàoCreate cái nút

Step 2- Chọn Dịch vụ được yêu cầu. Trong trường hợp của chúng ta, hãy chọnmongo.

Step 3 - Trên màn hình tiếp theo, chọn Create & DeployLựa chọn. Điều này sẽ bắt đầu triển khaiMongo vùng chứa trên cụm nút của bạn.

Sau khi triển khai, bạn sẽ có thể thấy vùng chứa ở trạng thái đang chạy.

Docker có sẵn các cơ chế ghi nhật ký có thể được sử dụng để gỡ lỗi các vấn đề xảy ra và khi chúng xảy ra. Có ghi nhật ký tạidaemon level và tại container level. Hãy xem xét các cấp độ ghi nhật ký khác nhau.

Ghi nhật ký Daemon

Ở cấp độ ghi nhật ký daemon, có bốn cấp độ ghi nhật ký có sẵn -

  • Debug - Nó nêu chi tiết tất cả các thông tin có thể được xử lý bởi quá trình daemon.

  • Info - Nó nêu chi tiết tất cả các lỗi + Thông tin được xử lý bởi quá trình daemon.

  • Errors - Nó nêu chi tiết tất cả các lỗi được xử lý bởi quá trình daemon.

  • Fatal - Nó chỉ nêu chi tiết tất cả các lỗi nghiêm trọng được xử lý bởi quá trình daemon.

Thực hiện các bước sau để tìm hiểu cách bật tính năng ghi nhật ký.

Step 1 - Đầu tiên, chúng ta cần ngăn chặn docker daemon process, nếu nó đã chạy. Nó có thể được thực hiện bằng cách sử dụng lệnh sau:

sudo service docker stop

Step 2 - Bây giờ chúng ta cần bắt đầu docker daemon process. Nhưng lần này, chúng ta cần thêm–lđể chỉ định tùy chọn ghi nhật ký. Vì vậy, hãy sử dụng lệnh sau khi bắt đầudocker daemon process.

sudo dockerd –l debug &

Những điểm sau cần lưu ý về lệnh trên:

  • dockerd là tệp thực thi cho docker daemon process.

  • Các –ltùy chọn được sử dụng để chỉ định mức độ ghi nhật ký. Trong trường hợp của chúng tôi, chúng tôi đang đặt điều này là gỡ lỗi

  • & được sử dụng để quay lại dấu nhắc lệnh sau khi bật tính năng ghi nhật ký.

Khi bạn bắt đầu quy trình Docker với việc ghi nhật ký, bạn cũng sẽ thấy Debug Logs được gửi đến bảng điều khiển.

Bây giờ, nếu bạn thực hiện bất kỳ lệnh Docker nào chẳng hạn như docker images, thông tin Gỡ lỗi cũng sẽ được gửi đến bảng điều khiển.

Ghi nhật ký vùng chứa

Ghi nhật ký cũng có sẵn ở cấp độ vùng chứa. Vì vậy, trong ví dụ của chúng tôi, trước tiên hãy tạo một vùng chứa Ubuntu. Chúng ta có thể làm điều đó bằng cách sử dụng lệnh sau.

sudo docker run –it ubuntu /bin/bash

Bây giờ, chúng ta có thể sử dụng docker log command để xem nhật ký của vùng chứa.

Cú pháp

Docker logs containerID

Thông số

  • containerID - Đây là ID của vùng chứa mà bạn cần xem nhật ký.

Thí dụ

Trên Máy chủ Docker của chúng tôi, hãy phát hành lệnh sau. Trước đó, bạn có thể đưa ra một số lệnh khi ở trong vùng chứa.

sudo docker logs 6bfb1271fcdd

Đầu ra

Từ đầu ra, bạn có thể thấy rằng các lệnh được thực thi trong vùng chứa được hiển thị trong nhật ký.

Docker Composeđược sử dụng để chạy nhiều vùng chứa như một dịch vụ duy nhất. Ví dụ: giả sử bạn có một ứng dụng yêu cầu NGNIX và MySQL, bạn có thể tạo một tệp sẽ khởi động cả hai vùng chứa dưới dạng một dịch vụ mà không cần phải khởi động từng tệp riêng biệt.

Trong chương này, chúng ta sẽ xem cách bắt đầu với Docker Compose. Sau đó, chúng ta sẽ xem xét cách thiết lập và chạy một dịch vụ đơn giản với MySQL và NGNIX bằng Docker Compose.

Docker Compose ─ Cài đặt

Cần làm theo các bước sau để thiết lập và chạy Docker Compose.

Step 1 - Tải xuống các tệp cần thiết từ github sử dụng lệnh sau:

curl -L "https://github.com/docker/compose/releases/download/1.10.0-rc2/dockercompose
   -$(uname -s) -$(uname -m)" -o /home/demo/docker-compose

Lệnh trên sẽ tải xuống phiên bản Docker Compose mới nhất mà tại thời điểm viết bài này là 1.10.0-rc2. Sau đó nó sẽ lưu trữ nó trong thư mục/home/demo/.

Step 2 - Tiếp theo, chúng ta cần cung cấp execute privileges vào tệp Docker Compose đã tải xuống, sử dụng lệnh sau:

chmod +x /home/demo/docker-compose

Sau đó, chúng ta có thể sử dụng lệnh sau để xem compose phiên bản.

Cú pháp

docker-compose version

Thông số

  • version - Điều này được sử dụng để chỉ định rằng chúng tôi muốn các chi tiết của phiên bản Docker Compose.

Đầu ra

Chi tiết phiên bản của Docker Compose sẽ được hiển thị.

Thí dụ

Ví dụ sau đây cho thấy cách lấy docker-compose phiên bản.

sudo ./docker-compose -version

Đầu ra

Sau đó, bạn sẽ nhận được kết quả sau:

Tạo tệp Docker-Compose đầu tiên của bạn

Bây giờ chúng ta hãy tiếp tục và tạo tệp Docker Compose đầu tiên của chúng ta. Tất cả các tệp Docker Compose đều là tệp YAML. Bạn có thể tạo một cái bằng cách sử dụng trình soạn thảo vim. Vì vậy, hãy thực hiện lệnh sau để tạocompose tập tin -

sudo vim docker-compose.yml

Chúng ta hãy xem xét kỹ các chi tiết khác nhau của tệp này -

  • Các databasewebtừ khóa được sử dụng để xác định hai dịch vụ riêng biệt. Một người sẽ chạymysql cơ sở dữ liệu và cơ sở dữ liệu khác sẽ là nginx máy chủ web.

  • Các image từ khóa được sử dụng để chỉ định hình ảnh từ dockerhub cho chúng ta mysqlnginx hộp đựng

  • Đối với cơ sở dữ liệu, chúng tôi đang sử dụng từ khóa cổng để đề cập đến các cổng cần được hiển thị cho mysql.

  • Và sau đó, chúng tôi cũng chỉ định các biến môi trường cho mysql cái nào được yêu cầu để chạy mysql.

Bây giờ, hãy chạy tệp Docker Compose của chúng tôi bằng lệnh sau:

sudo ./docker-compose up

Lệnh này sẽ lấy docker-compose.yml tệp trong thư mục cục bộ của bạn và bắt đầu xây dựng các vùng chứa.

Sau khi thực thi, tất cả các hình ảnh sẽ bắt đầu tải xuống và các vùng chứa sẽ tự động bắt đầu.

Và khi bạn làm một docker ps, bạn có thể thấy rằng các vùng chứa thực sự đang hoạt động.

Docker có tích hợp với nhiều công cụ Tích hợp liên tục, cũng bao gồm công cụ CI phổ biến được gọi là Jenkins. Trong Jenkins, bạn có sẵn các plugin có thể được sử dụng để làm việc với các vùng chứa. Vì vậy, hãy nhanh chóng xem xét một plugin Docker có sẵn cho công cụ Jenkins.

Hãy đi từng bước và xem những gì có sẵn trong các vùng chứa Jenkins cho Docker.

Step 1 - Đi tới bảng điều khiển Jenkins của bạn và nhấp vào Manage Jenkins.

Step 2 - Đi tới Manage Plugins.

Step 3- Tìm kiếm các plugin Docker. Chọn plugin Docker và nhấp vàoInstall without restart cái nút.

Step 4- Sau khi cài đặt xong, hãy chuyển đến công việc của bạn trong bảng điều khiển Jenkins. Trong ví dụ của chúng tôi, chúng tôi có một công việc được gọi làDemo.

Step 5 - Trong công việc, khi bạn chuyển đến bước Xây dựng, bây giờ bạn có thể thấy tùy chọn bắt đầu và dừng các thùng chứa.

Step 6- Ví dụ đơn giản, bạn có thể chọn tùy chọn khác để dừng các thùng chứa khi quá trình xây dựng hoàn thành. Sau đó, nhấp vàoSave cái nút.

Bây giờ, chỉ cần điều hành công việc của bạn trong Jenkins. Trong đầu ra của Bảng điều khiển, bây giờ bạn sẽ có thể thấy rằng lệnh Dừng tất cả các vùng chứa đã chạy.

Kubernetes là một khung điều phối cho các vùng chứa Docker giúp hiển thị các vùng chứa dưới dạng dịch vụ với thế giới bên ngoài. Ví dụ: bạn có thể có hai dịch vụ - Một dịch vụ sẽ chứanginxmongoDBvà một dịch vụ khác sẽ chứa nginxredis. Mỗi dịch vụ có thể có một IP hoặc điểm dịch vụ có thể được kết nối bởi các ứng dụng khác. Kubernetes sau đó được sử dụng để quản lý các dịch vụ này.

Sơ đồ sau đây cho thấy ở một định dạng đơn giản cách Kubernetes hoạt động theo quan điểm kiến ​​trúc.

Các minionlà nút mà tất cả các dịch vụ chạy trên đó. Bạn có thể có nhiều tay sai chạy cùng một lúc. Mỗi minion sẽ lưu trữ một hoặc nhiều POD. MỗiPODgiống như lưu trữ một dịch vụ. Mỗi POD sau đó chứa các vùng chứa Docker. Mỗi POD có thể lưu trữ một tập hợp các vùng chứa Docker khác nhau. Sau đó, proxy được sử dụng để kiểm soát việc đưa các dịch vụ này ra thế giới bên ngoài.

Kubernetes có một số thành phần trong kiến ​​trúc của nó. Vai trò của từng thành phần được giải thích bên dưới & mius;

  • etcd - Thành phần này rất sẵn có key-value cửa hàng được sử dụng để lưu trữ shared configurationservice discovery. Tại đây, các ứng dụng khác nhau sẽ có thể kết nối với các dịch vụ thông quadiscovery service.

  • Flannel - Đây là một mạng phụ trợ cần thiết cho các vùng chứa.

  • kube-apiserver - Đây là một API có thể được sử dụng để sắp xếp các vùng chứa Docker.

  • kube-controller-manager - Điều này được sử dụng để kiểm soát Kubernetes services.

  • kube-scheduler - Điều này được sử dụng để lập lịch các vùng chứa trên máy chủ.

  • Kubelet - Điều này được sử dụng để kiểm soát việc khởi chạy các vùng chứa thông qua manifest files.

  • kube-proxy - Điều này được sử dụng để cung cấp dịch vụ proxy mạng cho thế giới bên ngoài.

Trong chương này, chúng ta sẽ xem cách cài đặt Kubenetes thông qua kubeadm. Đây là một công cụ giúp cài đặt Kubernetes. Hãy đi từng bước và tìm hiểu cách cài đặt Kubernetes.

Step 1 - Đảm bảo rằng Ubuntu server version bạn đang làm việc là 16.04.

Step 2 - Đảm bảo rằng bạn tạo ssh chìa khóa có thể được sử dụng cho sshđăng nhập. Bạn có thể thực hiện việc này bằng lệnh sau.

ssh-keygen

Điều này sẽ tạo ra một khóa trong home folder như hình bên dưới.

Step 3 - Tiếp theo, tùy thuộc vào phiên bản Ubuntu bạn có, bạn sẽ cần thêm trang web liên quan vào docker.list cho apt package managerđể nó có thể phát hiện Kubernetes packages từ kubernetes và tải chúng xuống cho phù hợp.

Chúng tôi có thể làm điều đó bằng cách sử dụng các lệnh sau.

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -  
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/docker.list

Step 4 - Sau đó, chúng tôi phát hành bản cập nhật apt-get để đảm bảo tất cả các gói được tải xuống trên máy chủ Ubuntu.

Step 5 - Cài đặt gói Docker như đã trình bày chi tiết trong các chương trước.

Step 6 - Bây giờ là lúc cài đặt kubernetes bằng cách cài đặt các gói sau:

apt-get install –y kubelet kubeadm kubectl kubernetes-cni

Step 7 - Một khi tất cả kubernetes các gói được tải xuống, đã đến lúc khởi động trình điều khiển kubernetes bằng lệnh sau:

kubeadm init

Sau khi hoàn tất, bạn sẽ nhận được thông báo thành công rằng cái chính đang hoạt động và các nút bây giờ có thể tham gia vào cụm.