Mô tả tổng quan về Docker
Docker là một công cụ mã nguồn mở giúp các nhà phát triển đóng gói ứng dụng và các thư viện phụ thuộc vào một hình ảnh có thể di chuyển được, sau đó triển khai lên bất kỳ máy chủ Linux hoặc Windows phổ biến nào. Docker cung cấp tính cách sandbox hoàn toàn, không giao tiếp với nhau. Chi phí hiệu suất thấp và dễ dàng chạy trên máy chủ và trung tâm dữ liệu. Đặc biệt, nó không phụ thuộc vào bất kỳ ngôn ngữ lập trình, framework hay hệ thống đóng gói nào. Docker là một công cụ quản lý nền tảng như-aas do dotCloud phát hành, dựa trên LXC và được viết bằng Go, tuân thủ ghi phép Apache2.0.
Sandbox (hay còn gọi là môi trường cô lập) là một kỹ thuật ảo hóa trong lĩnh vực công nghệ thông tin, thường dùng cho mục đích kiểm thử các chương trình không đáng tin cậy, gây hại hoặc có ý định không rõ ràng.
LXC là viết tắt của Linux Container, cung cấp ảo hóa nhẹ nhằm phân cách tiến trình và tài nguyên mà không cần đến cơ chế diễn dịch lệnh hay các phức tạp khác của ảo hóa toàn diện. LXC sử dụng cgroups của nhân Linux để quản lý tài nguyên, cgroups là một khung quản lý tài nguyên dựa trên nhóm tiến trình, giới hạn các tài nguyên có thể sử dụng cho các nhóm tiến trình cụ thể. Để kiểm soát phân cách, LXC sử dụng đặc tính namespace của nhân Linux, cụ thể là thêm các cờ tương ứng khi sao chép (NEWNS, NEWPID, v.v.).
Namespace – thực hiện việc phân cách tiến trình, mạng, thông điệp, hệ thống tập tin và tên máy chủ trong container.
Cgroup – thực hiện việc phân bổ và đo đạc tài nguyên. Lưu ý: Cgroup có thể chỉ định số lượng CPU, kích thước bộ nhớ mà một thể hiện có thể sử dụng.
Trang web chính thức: https://www.docker.com/
So sánh Docker và Máy ảo
Dưới đây là cấu trúc của máy ảo từ dưới lên:
Cơ sở hạ tầng (Infrastructure), có thể là máy tính cá nhân, máy chủ tại trung tâm dữ liệu hoặc máy chủ đám mây;
Hệ điều hành chủ (Host Operating System), chạy trên cơ sở hạ tầng, có thể là MacOS, Windows hoặc một bản phát hành Linux cụ thể;
Hệ thống quản lý máy ảo (Hypervisor), cho phép chạy nhiều hệ điều hành phụ trên hệ điều hành chủ, ví dụ: Hypervisor loại 1 bao gồm HyperKit hỗ trợ MacOS, Hyper-V hỗ trợ Windows và KVM hỗ trợ Linux, Hypervisor loại 2 bao gồm VirtualBox và VMware;
Hệ điều hành khách (Guest Operating System), giả sử bạn cần chạy 3 ứng dụng độc lập, bạn sẽ sử dụng Hypervisor để khởi động 3 hệ điều hành phụ, tức là 3 máy ảo. Mỗi máy ảo rất lớn, có thể đạt 700MB, điều này nghĩa là chúng sẽ chiếm 2.1GB không gian đĩa. Hơn nữa, chúng cũng tiêu thụ nhiều CPU và RAM;
BINS/LIBS là các thư viện phụ thuộc. Mỗi hệ điều hành phụ cần phải cài đặt nhiều thư viện phụ thuộc. Nếu ứng dụng của bạn cần kết nối PostgreSQL, bạn sẽ cần cài đặt libpq-dev; nếu bạn sử dụng Ruby, bạn nên cài đặt gems; nếu sử dụng ngôn ngữ lập trình khác như Python hoặc Node.js, bạn cũng sẽ cần cài đặt các thư viện phụ thuộc tương ứng;
APP là ứng dụng. Sau khi cài đặt các thư viện phụ thuộc, bạn có thể chạy ứng dụng trên từng hệ điều hành phụ, khiến các ứng dụng trở nên độc lập.
Dưới đây là cấu trúc của Docker container từ dưới lên:
Cơ sở hạ tầng (Infrastructure), có thể là máy tính cá nhân, máy chủ tại trung tâm dữ liệu hoặc máy chủ đám mây;
Hệ điều hành chủ (Host Operating System), hầu hết các bản phát hành Linux đều có thể chạy Docker. Đối với MacOS và Windows, cũng có cách "chạy" Docker;
Daemon Docker (Docker Daemon), Docker Daemon thay thế cho Hypervisor, là một tiến trình chạy ngầm trên hệ điều hành, quản lý các container Docker;
BINS/LIBS là các thư viện phụ thuộc. Với Docker, tất cả các phụ thuộc của ứng dụng đều được đóng gói trong hình ảnh Docker, container Docker được tạo ra từ hình ảnh Docker;
APP là ứng dụng. Mã nguồn ứng dụng cùng với các phụ thuộc của nó được đóng gói trong hình ảnh Docker, mỗi ứng dụng cần một hình ảnh Docker riêng. Các ứng dụng chạy trong các container Docker riêng biệt, chúng là độc lập.
Điểm giống: Cả công nghệ container Docker và công nghệ máy ảo đều là kỹ thuật ảo hóa.
Điểm khác: 1. Thời gian khởi động: container Docker khởi động trong vài giây, máy ảo khởi động trong vài phút; 2. Không gian chiếm dụng: kích thước hình ảnh container Docker thường tính bằng MB, máy ảo tính bằng GB; 3. Hiệu suất: container Docker chia sẻ nhân máy chủ, thực hiện ảo hóa cấp hệ thống, sử dụng ít tài nguyên, không có chi phí lớp Hypervisor, hiệu suất gần như máy vật lý. Máy ảo cần lớp Hypervisor hỗ trợ, ảo hóa các thiết bị, có hệ điều hành khách đầy đủ, có chi phí ảo hóa lớn, giảm hiệu suất so với container; 4. Bảo mật: do chia sẻ nhân máy chủ, container Docker chỉ thực hiện phân cách cấp tiến trình, do đó mức độ phân cách và ổn định không cao như máy ảo, container Docker có quyền nhất định truy cập nhân máy chủ, tiềm tàng nguy cơ bảo mật; 5. Yêu cầu sử dụng: máy ảo dựa trên ảo hóa phần cứng, yêu cầu hỗ trợ ảo hóa CPU của phần cứng. Container Docker chia sẻ nhân máy chủ, có thể chạy trên hầu hết các bản phát hành Linux, không cần lo lắng về việc CPU có hỗ trợ ảo hóa hay không.
Luồng hoạt động của Docker
Trên máy chủ chạy dịch vụ Docker Engine, nơi này chứa nhiều container. Từ Docker Hub tải xuống hình ảnh hệ thống, đưa vào container để chạy. Cuối cùng, sử dụng client Docker để kiểm soát nền tảng ảo hóa Docker.
Docker Hub là trang lưu trữ hình ảnh chính thức của Docker, cung cấp nhiều hình ảnh phổ biến cho người dùng tải về, ví dụ như các hình ảnh hệ thống ubuntu, centos, v.v. Người dùng cũng có thể đăng tải hình ảnh Docker của mình lên Docker Hub, để làm điều này, họ cần đăng ký tài khoản và tạo kho Docker trên trang web.
Đặc điểm và ưu nhược điểm của Docker
Đặc điểm: 1. Độc lập hệ thống tệp: mỗi tiến trình container chạy trong một hệ thống tệp gốc hoàn toàn độc lập. 2. Độc lập tài nguyên: tài nguyên hệ thống như CPU và RAM có thể phân bổ cho các container khác nhau, sử dụng cgroup. 3. Độc lập mạng: mỗi tiến trình container chạy trong không gian mạng riêng, với giao diện ảo và địa chỉ IP. 4. Ghi nhật ký: Docker thu thập và ghi lại các luồng chuẩn stdout/stderr/stdin của mỗi tiến trình container, phục vụ tìm kiếm thời gian thực hoặc tìm kiếm hàng loạt. 5. Quản lý thay đổi: thay đổi của hệ thống tệp container có thể được nộp vào hình ảnh mới, có thể tái sử dụng để tạo nhiều container hơn nữa. Không cần sử dụng mẫu hoặc cấu hình thủ công. 6. Shell tương tác: Docker có thể phân bổ một đầu cuối ảo và liên kết nó vào đầu vào chuẩn của bất kỳ container nào, ví dụ như chạy một shell tương tác một lần.
Ưu điểm: 1. Khởi động nhanh, kích thước nhỏ. 2. Tính di động cao, hỗ trợ Linux/Unix/Windows/Mac. 3. Độc lập chương trình, tránh xung đột giữa môi trường phát triển và sản xuất, giảm chi phí. 4. CPU không cần hỗ trợ ảo hóa, yêu cầu phần cứng thấp. 5. Thiết lập môi trường phát triển nhanh chóng, nâng cao hiệu suất phát triển. 6. Được hỗ trợ bởi Google, Microsoft, Amazon, IBM, v.v.
Nhược điểm: Docker phải chạy trên máy 64 bit, nếu là hệ thống Linux, nhân phải hỗ trợ phiên bản 3.8 trở lên, hỗ trợ nhiều định dạng lưu trữ, cũng như yêu cầu nhân hỗ trợ cgroup và namespace. Ngoài ra, Docker không phù hợp để lưu trữ lượng dữ liệu lớn, nhật ký, theo dõi và cơ sở dữ liệu (ví dụ oracle) thường được đặt bên ngoài container Docker, sử dụng cách gắn kết bên ngoài, ví dụ như sử dụng NFS, ipsan, MFS, v.v., sử dụng tùy chọn -v để ánh xạ phân vùng đĩa.
Triển khai nền tảng ảo hóa Docker container
- Cài đặt Docker
Cấu hình nguồn cơ sở Ali Cloud và nguồn epel, cài đặt các phụ thuộc của môi trường Docker
[root@maychu1 ~]# cd /etc/yum.repos.d/
[root@maychu1 yum.repos.d]# mkdir backup
[root@maychu1 yum.repos.d]# mv *.repo backup/ // Sao lưu nguồn
[root@maychu1 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@maychu1 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@maychu1 yum.repos.d]# yum clean all // Xóa bộ nhớ đệm yum
[root@maychu1 yum.repos.d]# yum list // Tạo bộ nhớ đệm
[root@maychu1 yum.repos.d]# cd
[root@maychu1 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2 // Cài đặt phụ thuộc
[root@maychu1 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo // Cấu hình nguồn yum Docker của Ali Cloud
Cài đặt Docker, khởi động và thiết lập tự động khởi động
[root@maychu1 ~]# yum -y install docker-ce docker-ce-cli containerd.io
[root@maychu1 ~]# systemctl start docker
[root@maychu1 ~]# systemctl enable docker
Tạo liên kết từ /etc/systemd/system/multi-user.target.wants/docker.service tới /usr/lib/systemd/system/docker.service.
[root@maychu1 ~]# docker version // Hiển thị thông tin phiên bản Docker
Client: Docker Engine - Community
Phiên bản: 19.03.2
Phiên bản API: 1.40
Phiên bản Go: go1.12.8
Ghi chú gửi: 6a30dfc
Ngày xây dựng: Thứ Năm, 29 Thg 8 2019 05:28:55 GMT
Hệ điều hành/Architecture: linux/amd64
Thử nghiệm: false
Server: Docker Engine - Community
Engine:
Phiên bản: 19.03.2
Phiên bản API: 1.40 (phiên bản tối thiểu 1.12)
Phiên bản Go: go1.12.8
Ghi chú gửi: 6a30dfc
Ngày xây dựng: Thứ Năm, 29 Thg 8 2019 05:27:34 GMT
Hệ điều hành/Architecture: linux/amd64
Thử nghiệm: false
containerd:
Phiên bản: 1.2.6
Ghi chú gửi: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Phiên bản: 1.0.0-rc8
Ghi chú gửi: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Phiên bản: 0.18.0
Ghi chú gửi: fec3683
[root@maychu1 ~]# docker info // Xem thông tin Docker, bao gồm số lượng hình ảnh và container
Client:
Chế độ gỡ lỗi: false
Server:
Containers: 0 // Container
Đang chạy: 0 // Đang chạy
Tạm dừng: 0 // Tạm dừng
Đã dừng: 0 // Đã dừng
Hình ảnh: 0 // Hình ảnh
Phiên bản Máy chủ: 19.03.2 // Phiên bản
Bộ điều khiển lưu trữ: overlay2 // Bộ điều khiển lưu trữ
Hệ thống tệp nền: xfs // Định dạng hệ thống tệp sao lưu
Hỗ trợ d_type: true
Sự khác biệt Native Overlay: true
Bộ điều khiển ghi nhật ký: json-file
Bộ điều khiển Cgroup: cgroupfs
Các plugin:
Thể tích: local
Mạng: bridge host ipvlan macvlan null overlay
Ghi nhật ký: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Kiến trúc Docker: không hoạt động
Các thời gian chạy: runc
Thời gian chạy mặc định: runc
Chương trình khởi tạo: docker-init
phiên bản containerd: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
phiên bản runc: 425e105d5a03fabd737a126ad93d62a9eeede87f
phiên bản khởi tạo: fec3683
Các tùy chọn bảo mật:
seccomp
Hồ sơ: mặc định
Phiên bản Nhân: 3.10.0-862.el7.x86_64
Hệ điều hành: CentOS Linux 7 (Core)
Loại OS: linux
Kiến trúc: x86_64
CPU: 4
Tổng bộ nhớ: 1.936GiB
Tên: maychu1
ID: FR4U:DHB6:QGST:B3SB:NHKD:GDBX:PZL3:2RSX:SUMM:WFZO:KPPU:W423
Thư mục gốc Docker: /var/lib/docker // Thư mục gốc Docker
Chế độ gỡ lỗi: false
Đăng ký: https://index.docker.io/v1/
Nhãn:
Thử nghiệm: false
Đăng ký không an toàn:
127.0.0.0/8
Khôi phục trực tiếp được kích hoạt: false
Giải thích: Phiên bản đầu tiên của Docker được gọi là docker và docker-engine, hiện tại được gọi là docker-ce (mở mã nguồn) và docker-ee (đóng mã nguồn). Và vào đầu năm 2017, dự án mã nguồn mở Docker đã được đổi tên thành moby, do đó thực tế có ba phiên bản: moby là mã nguồn; docker-ce và docker-ee là sản phẩm container, gói rpm.
- Tải về hình ảnh Docker
Tìm kiếm hình ảnh từ Docker Hub, cột đầu tiên là tên hình ảnh Docker (tải về dựa trên cột này), cột thứ hai là mô tả, cột thứ ba là mức độ phổ biến, cột thứ tư cho biết liệu hình ảnh có được cung cấp bởi nhà phát triển chính thức (thường tải về hình ảnh Docker chính thức), cột thứ năm cho biết liệu hình ảnh có được tự động hóa.
[root@maychu1 ~]# docker search centos
TÊN MÔ TẢ SỐ SAO CHÍNH THỨC TỰ ĐỘNG HÓA
centos Bản phát hành chính thức của CentOS. 5556 [OK]
ansible/centos7-ansible Ansible trên Centos7 123 [OK]
jdeathe/centos-ssh CentOS-6 6.10 x86_64 / CentOS-7 7.6.1810 x86… 112 [OK]
consol/centos-xfce-vnc Hình ảnh Centos với phiên bản "headless" VNC… 99 [OK]
centos/mysql-57-centos7 Máy chủ cơ sở dữ liệu SQL MySQL 5.7 62
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 57 [OK]
tutum/centos Hình ảnh đơn giản của CentOS với truy cập SSH 45
centos/postgresql-96-centos7 PostgreSQL là cơ sở dữ liệu quan hệ tiên tiến … 39
kinogmt/centos-ssh CentOS với SSH 29 [OK]
pivotaldata/centos-gpdb-dev Hình ảnh CentOS cho phát triển GPDB. Tên thẻ… 10
guyton/centos6 Từ hình ảnh chính thức centos6 với cập nhật đầy đủ… 9 [OK]
nathonfowlie/centos-jre Hình ảnh CentOS mới nhất với JRE đã cài đặt… 8 [OK]
drecom/centos-ruby centos ruby 7 [OK]
pivotaldata/centos Cơ sở CentOS, làm tươi một chút với một Do… 3
darksheer/centos Hình ảnh cơ sở Centos -- Cập nhật hàng giờ 3 [OK]
pivotaldata/centos-gcc-toolchain CentOS với một chuỗi công cụ, nhưng không liên quan wi… 2
pivotaldata/centos-mingw Sử dụng chuỗi công cụ mingw để biên dịch t… 2
miko2u/centos6 CentOS6 môi trường tiếng Nhật 2 [OK]
blacklabelops/centos Hình ảnh cơ sở CentOS! Được xây dựng và Cập nhật Hàng Ngày! 1 [OK]
mcnaughton/centos-base hình ảnh cơ sở centos 1 [OK]
indigo/centos-maven CentOS thuần túy 7 với Oracle Java Developmen… 1 [OK]
pivotaldata/centos6.8-dev Hình ảnh CentOSOS 6.8 cho phát triển GPDB 0
smartentry/centos centos với smartentry 0 [OK]
pivotaldata/centos7-dev Hình ảnh CentOSOS 7 cho phát triển GPDB 0
fortinj66/centos7-s2i-nodejs dựa trên ryanj/centos7-s2i-nodejs. Bigg… 0
Phương pháp một: Vì tất cả các hình ảnh Docker đều ở trang web Docker Hub nước ngoài, việc tải về sẽ rất chậm, tốt nhất là sử dụng bộ tăng tốc để tăng tốc. Ví dụ như địa chỉ tăng tốc miễn phí được cung cấp bởi máy chủ Ali Cloud. Đăng nhập tài khoản Ali Cloud, trong menu bên trái có tùy chọn Sản phẩm và dịch vụ, tìm đến dịch vụ Dịch ảnh Container trong tùy chọn đó và nhấn ngôi sao bên cạnh để thêm vào menu. Sau đó nhấn vào Dịch vụ Dịch ảnh Container, chuyển sang giao diện tiếp theo.
Lần đầu tiên vào trang dịch vụ Dịch ảnh Container, sẽ yêu cầu cài đặt mật khẩu. Sau khi hoàn tất, chọn mục menu bên trái Trung tâm Ảnh --> Bộ tăng tốc Ảnh --> Địa chỉ tăng tốc. Địa chỉ tăng tốc của tôi là https://8mkqrctt.mirror.aliyuncs.com
Tất nhiên không nhất thiết phải sử dụng bộ tăng tốc Ali Cloud, cũng có thể sử dụng của NetEase.
Địa chỉ tăng tốc có thể được sử dụng ở hai vị trí, chọn một trong hai.
// Có thể sử dụng trong file /etc/docker/daemon.json
[root@maychu1 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://8mkqrctt.mirror.aliyuncs.com"]
}
[root@maychu1 ~]# systemctl restart docker
// Hoặc có thể chỉnh sửa dịch vụ docker
[root@maychu1 ~]# vim /usr/lib/systemd/system/docker.service
// Chỉnh sửa dòng thứ 14
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
--registry-mirror=https://8mkqrctt.mirror.aliyuncs.com
[root@maychu1 ~]# systemctl daemon-reload
[root@maychu1 ~]# systemctl restart docker
Sau khi cấu hình địa chỉ tăng tốc, chúng ta có thể kéo về hình ảnh Docker
[root@maychu1 ~]# docker pull centos // Kéo về hình ảnh
Sử dụng nhãn mặc định: latest
latest: Đang kéo từ thư viện/centos
d8d02d457314: Đã hoàn thành
Chữ ký: sha256:307835c385f656ec2e2fec602cf093224173c51119bbebd602c53c3653a3d6eb
Trạng thái: Hình ảnh mới nhất của centos:latest đã được tải xuống
docker.io/library/centos:latest
[root@maychu1 ~]# docker images // Xem hình ảnh hiện có
THƯ VIỆN NHÃN ID HÌNH ẢNH TẠO RA KÍCH THƯỚNG
centos latest 67fa590cfc1c 3 tuần trước 202MB
Lưu ý: Hình ảnh Docker có hai cách nhận dạng, [THƯ VIỆN (Thư viện)]:[NHÃN (Nhãn)] cũng như ID HÌNH ẢNH (ID Hình Ảnh). Nếu tải về một hình ảnh giống hệt hoặc [THƯ VIỆN (Thư viện)]:[NHÃN (Nhãn)] giống hệt, dù vẫn có thể gọi thông qua ID Hình Ảnh, nhưng thư viện (Repository) và Nhãn (Tag) cũ sẽ trở thành <None>, do đó hãy xác nhận kỹ trước khi tải về hoặc nhập để tránh gây ra sự cố không cần thiết.
Phương pháp hai: Nhập hình ảnh đã tải về trước đó hoặc từ máy chủ khác
[root@maychu1 ~]# docker load -i docker.io-centos-lastest-image.tar
docker load -i [tệp hình ảnh] Nhập hình ảnh
Phương pháp ba: Tải về hình ảnh từ các trang web khác
[root@maychu1 ~]# docker pull hub.c.163.com/library/tomcat:latest
latest: Đang kéo từ thư viện/tomcat
[THÔNG BÁO NGỪNG HOẠT ĐỘNG] hỗ trợ lược đồ schema1 phiên bản 2 sẽ bị loại bỏ trong một bản phát hành sắp tới. Xin vui lòng liên hệ với quản trị viên của đăng ký hub.c.163.com NGAY để tránh gián đoạn trong tương lai.
9af7279b9dbd: Đã hoàn thành
31816c948f2f: Đã hoàn thành
c59a1cdf83d3: Đã hoàn thành
232c7a75d568: Đã hoàn thành
de412d312979: Đã hoàn thành
80315ba34693: Đã hoàn thành
5d3f97bd90e8: Đã hoàn thành
dc8dc63f6baa: Đã hoàn thành
f6c6e2d67f03: Đã hoàn thành
9123b340aa92: Đã hoàn thành
76abaea2279d: Đã hoàn thành
4476602e3346: Đã hoàn thành
12e1fda011bd: Đã hoàn thành
Chữ ký: sha256:db1a8ca2fe44449d265e5505f300be6f34fc63211a5506400a0a8c24653af91f
Trạng thái: Hình ảnh mới nhất của hub.c.163.com/library/tomcat:latest đã được tải xuống
hub.c.163.com/library/tomcat:latest
[root@maychu1 ~]# docker images
THƯ VIỆN NHÃN ID HÌNH ẢNH TẠO RA KÍCH THƯỚNG
centos latest 67fa590cfc1c 3 tuần trước 202MB
hub.c.163.com/library/tomcat latest 72d2be374029 2 năm trước 292MB
- Kích hoạt chức năng chuyển tiếp mạng
Chức năng này mặc định được kích hoạt, nếu chưa kích hoạt có thể thiết lập thủ công
[root@maychu1 ~]# cat /proc/sys/net/ipv4/ip_forward
1
// Nếu chưa kích hoạt, thực hiện các lệnh sau
[root@maychu1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@maychu1 ~]# sysctl -p // Làm hiệu lực cấu hình
net.ipv4.ip_forward = 1
Chức năng này phải được kích hoạt, nếu không Docker sẽ không khởi động được
- Khởi động cuối cùng
Khởi động và kiểm tra mạng
[root@maychu1 ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@maychu1 ~]# docker run -it centos:latest /bin/bash
[root@3ecc9bafd429 /]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=127 time=8.78 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=127 time=8.33 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=127 time=8.79 ms
^C
--- www.a.shifen.com ping statistics ---
3 gói được gửi, 3 gói được nhận, 0% mất, thời gian 2003ms
rtt min/avg/max/mdev = 8.334/8.637/8.792/0.240 ms
[root@3ecc9bafd429 /]# exit // Thoát bằng lệnh exit
exit
Lưu ý: Trong giai đoạn thử nghiệm ban đầu, hãy tắt tường lửa.
Nếu muốn xem các phiên bản Docker đang chạy, có thể sử dụng lệnh docker ps
[root@maychu1 ~]# docker run -it centos:latest /bin/bash // Khởi động một phiên bản Docker
[root@9a81af9b4134 /]#
// Mở cửa sổ kết nối khác
[root@maychu1 ~]# docker ps
ID PHIÊN BẢN THƯ VIỆN LỆNH TẠO RA TRẠNG THÁI CỔNG TÊN
9a81af9b4134 centos:latest "/bin/bash" 8 giây trước Đang chạy 7 giây pensive_dijkstra