Docker là gì? Tổng hợp các kiến thức cơ bản về Docker

Lượt xem
Home

Docker, một công cụ không thể thiếu trong thế giới phát triển phần mềm hiện đại, đã mở ra một chương mới trong việc triển khai và quản lý ứng dụng. Trong thời đại công nghệ thông tin phát triển với tốc độ chóng mặt, Docker xuất hiện như một giải pháp tối ưu cho việc tạo, triển khai và chạy các ứng dụng một cách nhất quán và hiệu quả. Vietnix sẽ cùng bạn tìm hiểu về Docker qua bài viết sau

Docker là gì?

Docker là một dự án mã nguồn mở giúp cung cấp cách để building, deployingrunning ứng dụng dễ dàng hơn bằng cách sử dụng các container (trên nền tảng ảo hóa). Ban đầu Docker viết bằng Python, nhưng hiện tại đã chuyển sang Golang.

Định nghĩa docker là gì
Định nghĩa docker là gì

Docker cung cấp một cách tiện lợi để xây dựng, chia sẻ và triển khai ứng dụng trên nhiều môi trường khác nhau, từ máy cục bộ đến các môi trường điều tiết sản xuất. Docker còn giúp giảm thiểu sự phức tạp trong quá trình triển khai ứng dụng, tối ưu hóa tài nguyên và tăng tính di động của ứng dụng.

Docker là gì?
Docker là gì?

Một số khái niệm quan trọng liên quan đến Docker bao gồm hình ảnh (images), container, Dockerfile và Docker Hub. Hình ảnh là một môi trường chạy được đóng gói cùng với ứng dụng và các phụ thuộc. Container là một thực thể chạy dựa trên hình ảnh. Dockerfile là một tập tin cấu hình sử dụng để tạo hình ảnh Docker. Docker Hub là một kho lưu trữ trực tuyến cho việc chia sẻ và quản lý các hình ảnh Docker.

Container trong Docker là gì?

Trong Docker, container là một đơn vị cô lập chứa đựng ứng dụng và môi trường chạy của nó. Containers cung cấp một cách đóng gói ứng dụng và tất cả các phụ thuộc của nó vào một đơn vị tiêu chuẩn hóa, giúp đảm bảo rằng ứng dụng có thể chạy một cách nhất quán trên mọi môi trường.

Container trong Docker là gì?
Container trong Docker là gì?

Docker cho phép các lập trình viên đóng gói các ứng dụng cần thiết vào trong container, như thư viện, gói dưới dạng package. Nhờ vào container, ứng dụng sẽ chạy trên mọi máy Linux bất kể mọi tùy chỉnh và cài đặt khác với máy dùng để viết code.

Container trong Docker
Container trong Docker

Docker khá giống với Virtual Machine, nhưng Docker phát triển mạnh mẽ và phổ biến nhanh chóng hơn. Dưới đây là một số nguyên nhân:

  • Dễ sử dụng: Docker rất dễ sử dụng có các developer, Admin System,… vì nó tận dụng container để build và kiểm tra nhanh chóng. Và nó có thể đóng gói các ứng dụng trên laptop của họ và chạy trên public cloudprivate cloud,…
  • Tốc độ: Nói về tốc độ thì docker container rất nhẹ và nhanh và bạn có thể khởi tạo và chạy docker container chỉ trong vài giây.
  • Môi trường chạy: Bạn có thể tận dụng và chia nhỏ các container riêng lẻ. Ví dụ bạn có thể chạy Database trên một container và Redis cache chạy trên một container khác trong khi ứng dụng Node.js lại có thể chạy trên một container khác nữa. Khi sử dụng Docker bạn rất dễ để liên kết các container với nhau để tạo thành một ứng dụng. Từ đó, làm cho nó dễ dang scale và update các thành phần độc lập với nhau.

Thời điểm hiện tại thì thế giới bắt đầu sử dụng thêm một công cụ quản lý container hiện đại khác là Kubernetes.

Lịch sử phát triển Docker

Docker được tạo ra từ ông Solomon Hykes khi còn đang làm việc trong một dự án nội bộ của dotCloud ở Pháp. Đến đầu năm 2013, Docker được phát hành dạng mã nguồn mở và sau đó đến năm 2015, Docker trở thành top 20 dự án có số sao đánh giá cao nhất trên GitHub với hơn 6,800 fork và 11,00 lập trình viên.

Quá trình Docker phát triển từ 2004
Quá trình Docker phát triển từ 2004

Tại sao nên sử dụng Docker?

Việc setup và deploy application trên một hoặc nhiều máy chủ là một quá trình phức tạp và tốn nhiều công sức. Bao gồm việc cài đặt các công cụ và môi trường cần thiết cho ứng dụng, sau đó cố gắng đảm bảo ứng dụng chạy đúng cách trên từng máy chủ riêng biệt. Vấn đề khó khăn thêm nữa là sự không đồng nhất giữa các môi trường trên các máy chủ khác nhau. Để giải quyết những thách thức này, Docker ra đời như một giải pháp hiệu quả.

Tại sao nên sử dụng Docker?
Tại sao nên sử dụng Docker?

Vận chuyển nhiều phần mềm và tốc độ nhanh hơn

Sử dụng Docker giúp người dùng chuyển phần mềm nhanh hơn gấp 7 lần so với việc không sử dụng Docker. Docker mang lại khả năng vận chuyển các dịch vụ riêng lẻ với tần suất linh hoạt theo mong muốn.

Quá trình vận hành được tiêu chuẩn hóa

Ứng dụng được đóng gói vào các Container nhỏ. Điều này giúp đơn giản hóa việc triển khai, phát hiện và khắc phục vấn đề, tạo điều kiện thuận lợi cho quá trình quản lý ứng dụng.

Di chuyển mượt mà, nhanh chóng

Điểm đáng chú ý của Docker là khả năng mượt mà di chuyển ứng dụng từ môi trường phát triển cục bộ đến việc triển khai sản phẩm với hiệu suất cao.

Tiết kiệm chi phí

Sử dụng Docker Container giúp thực hiện một số code khác nhau trên cùng một máy chủ một cách thuận tiện hơn, từ đó tăng khả năng tận dụng tài nguyên và giúp tiết kiệm chi phí.

Lợi ích khi sử dụng Docker

  • Trái với máy ảo, Docker có khả năng start và stop container chỉ trong vài giây.
  • Bạn có thể triển khai container trên bất kỳ hệ thống nào mà bạn muốn.
  • Container có thể được xây dựng và xóa bỏ nhanh chóng hơn so với máy ảo.
Lợi ích khi sử dụng Docker
Lợi ích khi sử dụng Docker
  • Việc thiết lập môi trường làm việc dễ dàng hơn bao giờ hết. Chỉ cần cấu hình một lần và không cần phải cài đặt lại các phần mềm phụ thuộc. Nếu bạn chuyển sang một máy tính khác hoặc có người mới tham gia vào dự án, bạn chỉ cần chia sẻ cấu hình với họ.
  • Docker giữ cho không gian làm việc của bạn sạch sẽ hơn bằng cách ngăn chặn tác động đến các phần khác khi bạn loại bỏ môi trường.

Cách thức hoạt động của Docker

Về cách thức hoạt động của docker thì nó hoạt động bằng cách cung cấp phương thức tiêu chuẩn để chạy mã. Như cách máy ảo – ảo hóa (loại bỏ nhu cầu quản lý trực tiếp) phần cứng của máy chủ, các container sẽ ảo hóa hệ điều hành của máy chủ. Docker được cài đặt trên từng máy chủ và cung cấp các lệnh cơ bản để bạn có thể build, khởi tạo và dừng container.

Cách thức hoạt động của Docker
Cách thức hoạt động của Docker

Còn để hiểu về cơ chế hoạt động của Docker khá là phức tạp. Ở đây, Vietnix sẽ tóm gọn lại cho bạn dễ hiểu về hoạt động của Docker thông qua một Docker engine và kết hợp với 2 yếu tố sau:

Nếu bạn đang sử dụng hệ điều hành Windows/Mac cũ, bạn có thể tận dụng Docker toolbox, vì cho phép bạn điều kiển docker engine với Docker Compose và Kitematic.

Các công cụ, thuật ngữ cơ bản về Docker

Như vậy là bạn được Docker là gì và lý do tại sao cần sử dụng Docker. Tuy nhiên để không gặp khó khăn khi bắt đầu sử dụng Docker bạn sẽ cần nắm rõ các công cụ và thuật ngữ kỹ thuật của nó.

Tìm hiểu các khái niệm về Docker cơ bản
Tìm hiểu các khái niệm về Docker cơ bản

Một số công cụ và thuật ngữ công nghệ bạn sẽ gặp phải khi sử dụng Docker bao gồm:

  • DockerFile: Mọi container Docker bắt đầu bằng một file văn bản đơn giản chứa hướng dẫn về cách tạo image container Docker. DockerFile tự động hóa tiến trình tạo image Docker. Về cơ bản, đây là danh sách các lệnh mà Docker Engine sẽ chạy để tập hợp image.
DockerFile
DockerFile
  • Docker container: Là các phiên bản live, running instance của Docker image. Ta thấy Docker image là file chỉ đọc còn container là phiên bản live, executable và người dùng có thể tương tác với chúng. Cùng với đó, quản trị viên có thể điều chỉnh cài đặt và các quy định của họ.
Docker container
Docker container
  • Docker Hub: Là kho lưu trữ công khai Docker image. Nó tự gọi mình là “thư viện và cộng đồng lớn nhất thế giới về image container”. Nó chứa hơn 100.000 image container và chúng được lấy từ các nhà cung cấp phần mềm thương mại, các dự án mã nguồn mở, các nhà phát triển cá nhân. Nó bao gồm các image được sản xuất bởi Docker, Inc. Cùng với đó là các image được chứng nhận thuộc Cơ quan đăng ký tin cậy Docker và hàng nghìn image khác. Tất cả người dùng Docker Hub có thể chia sẻ image của họ theo ý muốn. Họ cũng có thể tải xuống các image cơ sở được xác định trước để sử dụng làm điểm bắt đầu cho bất kỳ dự án container nào.
Docker Hub
Docker Hub
  • Docker Client: Đây là thành phần mà bạn có thể tương tác với Docker thông qua command line. Docker client sẽ gửi lệnh tới Docker Daemon thông qua REST API như đã đề cập ở trên.
  • Docker Engine: Đây là thành phần chính của Docker như một công cụ để đóng gói ứng dụng.
  • Docker Daemon: Dùng để lắng nghe các request từ Docker Client để quản lý các đối tượng như container, image, network và volume thông qua REST API.
  • Docker Volumes: Là phần dữ liệu được tạo ra khi container được khởi tạo.
  • Docker Machine: Tạo ra các docker engine trên máy chủ.
  • Docker Compose: Chạy ứng dụng bằng cách định nghĩa cấu hình các Docker Container thông qua file cấu hình.

Quy trình thực thi một hệ thống sử dụng Docker

Thường, để triển khai hệ thống Docker, phải tuân theo ba bước cơ bản: Build, Push và Pull, Run.

các bước thực thi Docker
3 bước thực thi Docker
  • Build: Bước đầu tiên, bạn cần tạo một dockerfile, trong dockerfile này chính là code của mình. Dockerfile này sẽ được build ở một máy tính có cài đặt Docker Engine. Khi build xong, thì chúng ta sẽ có container và trong container sẽ chứa ứng dụng kèm bộ thư viện.
  • Push: Bạn thực hiện push Container lên cloud và lưu lại sau khi có được container.
  • Pull & Run: Nếu máy tính khác của bạn muốn sử dụng container thì máy của bạn phải thực hiện pull container này về máy đó. Và máy đó phải cài đặt trước Docker Engine. Tiếp theo, bạn mới thực hiện Run Container này.

Khi nào thì nên sử dụng Docker?

Trong những trường hợp sau đây bạn có thể sử dụng Docker hiệu quả:

  • Triển khai kiến trúc Microservice.
  • Sản phẩm công ty cần một cách tiếp cận mới về xây dựng, đẩy lên server và thực thi ứng dụng một cách nhanh chóng.
  • Khi build ứng dụng cần scale một cách linh hoạt.
  • Config máy local và server trên cùng một môi trường nhanh chóng.
Khi nào thì nên sử dụng Docker?
Khi nào thì nên sử dụng Docker?

Hướng dẫn cài đặt Docker

Cài Docker trên macOS

Tải bộ cài tại Docker Desktop for Mac, cài đặt đơn giản như các công cụ thông thường.

Cài Docker trên macOS
Cài Docker trên macOS

Cài Docker trên Windows 10

Tải bộ cài tại Docker Desktop for Windows, tiến hành cài đặt. Đối với Windows phải kích hoạt chế độ Hyper-V virtualization (Ở chế độ này bạn không dùng được VirtualBox nữa).

Nếu chưa kích hoạt Hyper-V thì kích hoạt theo hướng dẫn Enable Hyper-V

Chạy lệnh PowerShell sau để kích hoạt:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Kích hoạt thông qua thiết lập Windows

  1. Nhấn phải chuột vào biểu tượng cửa sổ, chọn Apps and Features.
  2. Chọn Programs and Features.
  3. Chọn Turn Windows Features on or off.
  4. Đánh dấu vào Hyper-V như hình dưới.
Cài Docker trên Windows 10
Cài Docker trên Windows 10

Cài Docker trên Ubuntu

Chạy các lệnh để cài đặt:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo systemctl status docker
Cài Docker trên Ubuntu
Cài Docker trên Ubuntu

Sau khi cài đặt, bạn có thể cho user hiện tại thuộc group docker, để khi gõ lệnh không cần xin quyền sudo

sudo usermod -aG docker $USER

Logout sau đó login lại để có hiệu lực.

Ngoài ra khi sử dụng đến thành phần docker-compose thì bạn cài thêm

sudo apt install docker-compose

Nếu có nhu cầu sử dụng Docker Machine trên Ubuntu, (công cụ tạo – quản lý các máy ảo chạy Docker Engine, các máy ảo này tạo bởi VirtualBox, bạn sử dụng Docker-machine để thực hành các ví dụ kết nối nhiều máy chạy Docker Engine khác nhau tạo thành cụm Server), thì cài thêm Docker Machine. Phiên bản mới nhất lấy tại Docker Machine.

Ví dụ cài bản v0.16.1, gõ lệnh sau:

curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
chmod +x /tmp/docker-machine &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

Tất nhiên là Docker Machine cần VirtualBox để làm việc, nếu chưa có thì cài thêm

sudo apt install virtualbox

Cài Docker trên CentOS7/RHEL7

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
sudo usermod -aG docker $(whoami)
sudo systemctl enable docker.service
sudo systemctl start docker.service

#Cài thêm Docker Compose
sudo yum install epel-release
sudo yum install -y python-pip
sudo pip install docker-compose
sudo yum upgrade python*
docker-compose version
Cài Docker trên CentOS7-RHEL7
Cài Docker trên CentOS7-RHEL7

Cài Docker trên CentOS8/RHEL8

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce

# Nếu lỗi, chạy lệnh sau
sudo dnf install --nobest docker-ce -y

sudo usermod -aG docker $(whoami)
sudo systemctl enable docker.service
sudo systemctl start docker.service

#Cài thêm Docker Compose
sudo yum install epel-release
sudo yum -y install python2-pip
sudo pip2 install docker-compose
sudo yum upgrade python*
docker-compose version

Khi đã có Docker trên máy, làm việc với Docker để quan lý các thành phần của nó … hầu hết làm việc qua giao diện dòng lệnh CLI của hệ thống: trên macOS/Linux mở termial để gõ lệnh, trên Windows thì nên dùng PS (PowerShell) để chạy các lệnh Docker.

Cài Docker trên CentOS8/RHEL8
Cài Docker trên CentOS8/RHEL8

Những lệnh cơ bản trong Docker

  • List image/container:
$ docker image/container ls
  • Delete image/container:
$ docker image/container rm <tên image/container >
  • Delete all image hiện có:
$ docker image rm $(docker images –a –q)
  • List all container hiện có:
$ docker ps –a
  • Stop a container cụ thể:
$ docker stop <tên container>
  • Run container từ image và thay đổi tên container:
$ docker run –name <tên container> <tên image>
  • Stop all container:
$ docker stop $(docker ps –a –q)
  • Delete all container hiện có:
$ docker rm $(docker ps –a –q)
  • Show log a container:
$ docker logs <tên container>
  • Build một image từ container:
$ docker build -t <tên container>
  • Tạo một container chạy ngầm:
$ docker run -d <tên image>
  • Tải một image trên docker hub:
$ docker pull <tên image>
  • Start một container:
$ docker start <tên container>

Hướng dẫn sử dụng Docker cơ bản toàn tập

Hướng dẫn sử dụng Docker cơ bản toàn tập
Docker là gì? Tổng hợp các kiến thức cơ bản về Docker 42

Docker Container

Docker container là một instance của image. Một container chỉ cần kết hợp với các thư viện và thiết lập cần thiết để làm cho ứng dụng hoạt động. Nó là một môi trường đóng gói gọn nhẹ và di động cho một ứng dụng.

Cách chạy một docker container

Sử dụng lệnh docker để khởi chạy docker container trên hệ thống của bạn. Ví dụ lệnh bên dưới sẽ tạo một Docker Container từ image có tên “hello-world”.

docker run hello-world

Bây giờ tạo một instance docker chạy hệ điều hành CentOS. Tùy chọn -it sẽ cung cấp một phiên tương tác với pseudo-TTY. Nó cung cấp cho bạn shell của container ngay lập tức.

docker run -it centos

Liệt kê danh sách docker container

Dùng lệnh docker ps để liệt kê các container đang chạy trên hệ thống hiện tại. Nó sẽ không liệt kê các container bị dừng. Nó sẽ hiển thị Container ID, name và các thông tin hữu ích khác về container.

docker ps

Dùng tùy chọn -a với lệnh ở trên để liệt kê tất cả các container bao gồm cả container bị dừng.

docker ps -a

Tìm kiếm tất cả thông tin chi tiết về container

docker inspect cc5d74cf8250

Trong đó: cc5d74cf8250 là id container

Xóa Docker container

Dùng lệnh docker rm để xóa docker container đang tồn tại. Bạn cần cung cấp docker container id hoặc container name để xóa một container cụ thể.

docker stop cc5d74cf8250
docker rm cc5d74cf8250

Docker image

Image là tệp tin không thay đổi, giống như file iso được sử dụng để cài hệ điều hành, về cơ bản nó là bản snapshot của container. Image có thể được tạo với các lệnh có sẵn, được sử dụng để tạo container khi bắt đầu bằng lệnh run.

Liệt kê danh sách các images

Dùng lệnh docker images để liệt kê tất cả images có sẵn trên máy tính chạy docker của bạn.

docker images

Tìm kiếm docker images

Dùng lệnh docker search để tìm kiếm các images trên docker hub. Ví dụ, dùng lệnh sau để tìm docker images centOS.

docker search centos

Download docker image

Bạn dùng lệnh docker pull để download bất kỳ image từ docker hub. Ví dụ để download image centOS phiên bản mới nhất từ docker hub về máy local và tạo container.

docker pull centos

Xóa docker image

Ta dùng lệnh docker rmi để xóa bất kỳ docker image từ hệ thống local. Ví dụ, để xóa image tên centos dùng lệnh sau:

docker rmi centos

Dockerfile

Dockerfile là một file được dùng để build một image bằng cách đọc các chỉ dẫn từ file đó. Tên file mặc định được dùng là Dockerfile. Bạn có thể tạo dockerfile trong thư mục hiện tại với các chỉ dẫn cụ thể và build một image tùy chỉnh theo yêu cầu của bạn.

Cách build image với Dockerfile

Dockerfile là một file được đặt ở vị trí gốc trong container khi build xong. Bạn có thể dùng lệnh sau đây để build docker image. Trong câu lệnh bên dưới, docker sẽ đọc Dockerfile tại vị trí thư mục hiện tại.

docker build -t image_name .

Bạn cũng có thể dùng cờ -f với lệnh docker build để trỏ đến Dockerfile tại bất kỳ nơi nào trong hệ thống file của bạn.

docker build  -t image_name -f /path/to/Dockerfile .

Tạo Dockerfile

Trong bài hướng dẫn này, Vietnix đã tạo một project ví dụ trên github. Các bạn chỉ cần clone repository bằng cách dùng lệnh sau:

git clone https://github.com/vietnix/Docker.git
cd Docker

Bây giờ build docker image với tên Vietnix

docker build -t vietnix .

Sau khi build, bạn có thể thấy image bằng cách dùng lệnh “docker images”

Khởi chạy container với image

Bây giờ mình sẽ tạo instance sử dụng image mới tạo.

docker run -it -p 8080:80 vietnix

Lệnh bên trên khởi chạy docker container sử dụng Vietnix.

Có gì bên trong Dockerfile

Trong Dockerfile, có một số điểm mà các bạn cần phải biết với những chỉ thị như sau

FROM

FROM được dùng để thiết lập image cơ sở cho chỉ dẫn tiếp theo. Dockerfile phải có chỉ thị FROM với tên image hợp lệ là chỉ thị đầu tiên.

FROM ubuntu
FROM tecadmin/ubuntu-ssh:16.04

LABEL

Sử dụng label, bạn có thể tổ chức các image đúng cách. Nó cực kỳ hữu ích để thiết lập địa chỉ nhà phát triển, tên nhà cung cấp, phiên bản image, ngày phát hành,… Dòng này phải bắt đầu bằng từ khóa LABEL

LABEL maintainer="seovietnix@gmail.com"
LABEL vendor="Vietnix"
LABEL com.example.version="1.1.1"

Bạn có thể thêm nhiều label vào một dòng với dấu cách, hoặc định nghĩa nhiều dòng như sau:

LABEL maintainer="seovietnix@gmail.com" vendor="Vietnix" \
      com.example.version="1.1.1"

RUN

Dùng chỉ thị RUN, bạn có thể chạy bất kỳ lệnh nào tới image trong thời gian build. Ví dụ, bạn có thể cài đặt các package bắt buộc trong thời gian build.

RUN apt-get update 
RUN apt-get install -y apache2 automake build-essential curl

Hoặc sử dụng chạy một chỉ thị RUN như sau:

RUN apt-get update && apt-get install -y \
    automake \
    build-essential \
    curl \

COPY

Chỉ thị COPY được dùng để copy file và thư mục từ hệ thống host tới image trong khi build. Ví dụ, lệnh đầu tiên sẽ copy tất cả file từ thư mục host html/ tới thư mục /var/www/html trên image. Lệnh thứ hai sẽ copy tất cả file với phần mở rộng .conf tới địa chỉ thư mục /etc/apache2/sites-available/ .

COPY html/* /var/www/html/
COPY *.conf /etc/apache2/sites-available/

WORKDIR

Chỉ thị WORKDIR được dùng để thiết lập thư mục làm việc hiện tại cho bất kỳ chỉ thị RUN, CMD, ENTRYPOINT, COPY… trong quá trình build.

WORKDIR /opt

CMD

Chỉ thị CMD được dùng để chạy các dịch vụ hoặc phần mềm có chứa bên trong image, cùng với bất kỳ tham số khác trong khi khởi chạy container. CMD dùng cú pháp đơn giản sau đây:

CMD ["executable","param1","param2"]
CMD ["executable","param1","param2"]

Ví dụ, để khởi động dịch vụ Apache khi khởi chạy container, dùng lệnh sau đây:

CMD ["apachectl", "-D", "FOREGROUND"]

EXPOSE

Chỉ thị EXPOSE chỉ ra các port mà container sẽ lắng nghe cho các kết nối. Sau đó bạn có thể liên kết các port hệ thống với container và dùng chúng.

EXPOSE 80
EXPOSE 443

ENV

Chỉ thị ENV được dùng để thiết lập biến môi trường cho các dịch vụ cụ thể của container.

ENV PATH=$PATH:/usr/local/pgsql/bin/ \
    PG_MAJOR=9.6.0

VOLUME

Chỉ thị VOLUME tạo một mount point với tên được chỉ định và đánh dấu nó là nơi giữ mount volume từ host bên ngoài hoặc container khác.

VOLUME ["/data"]

Docker – quản lý ports

Docker containers chạy các dịch vụ bên trong nó trên các port được chỉ định cụ thể. Để truy cập dịch vụ của một container đang chạy trên một port, bạn cần liên kết container port với port trên Docker host (máy thật).

Ví dụ 1:

Nhìn vào hình bên dưới, bạn sẽ thấy docker host đang chạy hai containers, một cái chạy Apache và cái còn lại chạy MySQL.

Bây giờ, bạn cần truy cập vào website đang chạy Apache container trên port 80. Chúng ta sẽ liên kết docker port 8080 tới container port 80. Bạn cũng có thể dùng port 80 trên docker port.

Container thứ hai chạy MySQL trên port 3306. Có nhiều cách khác để truy cập MySQL từ docker host. Nhưng trong bài viết này, mình sẽ liên kết docker port 6603 tới container port 3306. Bây giờ, mình sẽ truy cập trực tiếp MySQL từ Docker container bằng cách kết nối docker host trên port 6603.

Câu lệnh bên dưới sẽ liên kết host docker port với container port.

$ docker run -it -p 8080:80 apache_image
$ docker run -it -p 6603:3066 mysql_image

Ví dụ 2:

Trong ví dụ thứ hai dùng project có sẵn của mình trên github. Nó sẽ show cho bạn ví dụ đang chạy trên port 8080 trên docker host. Đơn giản bạn chỉ cần clone repository bằng cách chạy câu lệnh sau:

$ git clone https://github.com/tecrahul/dockerfile
$ cd dockerfile

Bây giờ, build docker image với tên apacheimage

docker build -t apacheimage .

Chạy container bằng cách sử dụng lệnh docker run. Dịch vụ apache sẽ khởi động trên container port 80. Bạn cần chỉ ra port cụ thể bằng cách dùng option -p 8080:80 để liên kết host system port 8080 với container port 80.

docker run -it -p 8080:80 apacheimage

Bây giờ truy cập địa chỉ IP docker host với port 8080 trên trình duyệt web. Bạn sẽ xem được trang web đang chạy trên Apache của container như bên dưới. Địa chỉ IP của docker host của mình là 192.168.1.237.

Thêm một ví dụ nữa:

Bạn có thể liên kết nhiều ports với một container, nhưng cần đảm bảo bạn đã sử dụng chỉ dẫn EXPOSE tất cả các ports trong Dockerfile trước khi build image.

docker run -it -p 8080:80,8081:443 image_name

Nếu bạn cần liên kết port với interface của docker host cụ thể, khai báo địa chỉ IP như bên dưới. Trong ví dụ bên dưới, port 8080, 8081 sẽ có thể truy cập với địa chỉ 127.0.0.1

$ docker run -it -p 127.0.0.1:8080:80,127.0.0.1:8081:443 image_name
$ docker run -it -p 192.168.1.111:8080:80,92.168.1.111:8081:443 image_name

Networking

Docker cung cấp một tùy chọn để tạo và quản lý network riêng giữa các container. Dùng lệnh docker network để quản lý Docker networking.

Cú pháp

docker network [options]

Dùng cách lệnh theo hướng dẫn bên dưới để tạo, liệt kê và quản lý Docker networking.

Liệt kê Docker networks

Dùng tùy chọn ls với lệnh docker network để liệt kê các network khả dụng trên system host.

docker network ls

Tạo docker network

Docker cung cấp nhiều loại network. Lệnh bên dưới sẽ tạo bridge network trên hệ thống của bạn.

Cú pháp

docker network create -d [network_type] [network_name]

Ví dụ

docker network create -d bridge my-bridge-network

Kết nối container với network

Bạn có thể kết nối bất kỳ container nào tới một docker network đang tồn tại bằng cách sử dụng tên container hoặc ID. Một khi container được kết nối tới network, nó có thể giao tiếp với các container khác trong cùng mạng.

Cú pháp

docker network connect [network_name] [container_name]

Ví dụ

docker network connect my-bridge-network centos

Ngắt kết nối docker khỏi network

Bạn có thể ngắt kết nối một container khỏi một network cụ thể bất cứ khi nào bằng cách dùng lệnh dưới đây

Cú pháp

docker network disconnect [network_name] [container_name]

Ví dụ

docker network disconnect my-bridge-network centos

Kiểm tra Docker network

Dùng tùy chọn inspect để kiểm tra với lệnh docker network để xem chi tiết docker network

docker network inspect my-bridge-network

Bạn sẽ nhận được kết quả như sau

Xóa Docker network

Dùng tùy chọn rm để xóa bất kỳ Docker network nào đang không sử dụng. Bạn có thể chỉ định một hoặc nhiều network hơn bằng cách sử dụng dấu cách (space) để xóa.

Ví dụ

docker network rm my-bridge-network network2 network3

Bạn cũng có thể xóa tất cả network không sử dụng khỏi system host bằng cách sử dụng tùy chọn prune.

docker network prune

Ví dụ Docker network

Giờ chúng ta sẽ học cách truy cập MySQL server đang sử dụng phpAdmin chạy trên container khác.

1. Tạo network

Đầu tiên, tạo một docker network. Dùng lệnh bên dưới để tạo bridge network mới với tên my_bridge_network

 docker network create -d bridge my-bridge-network

2. Chạy MySQL container

Bây giờ, chạy Mysql container mới. Thiết lập mặc định user password root với biến MYSQL_ROOT_PASSWORD  giống như lệnh bên dưới.

docker run --name mysql -e MYSQL_ROOT_PASSWORD=secret -d mysql/mysql-server

Sau khi tạo container thì thêm nó vào network

docker network connect my-bridge-network mysql

Giờ chúng ta sẽ xem địa chỉ IP của MySQL container.

docker inspect mysql | grep "IPAddress"

3. Chạy PHPMyadmin container

Giờ ta sẽ chạy Docker container chứa MySQL bằng cách sử dụng câu lệnh sau. Thay đổi giá trị PMA_HOST với địa chỉ IP của MySQL container trong bước trước.

docker run --name phpmyadmin -d -e PMA_HOST=172.21.0.2 -p 8080:80 phpmyadmin/phpmyadmin

Thêm container này vào network

docker network inspect my-bridge-network

4. Kiểm tra network

Ở trên mình đã thêm 2 container vào network. Bây giờ sẽ kiểm tra cài đặt network hiện tại.

docker network inspect my-bridge-network

5. Cho phép MySQL kết nối đến PHPmyadmin host

Mặc định thì MySQL không cho phép host từ xa kết nối đến. Và để cho phép phpmyadmin kết nối MySQL, truy cập shell MySQL container dùng lệnh bên dưới.

docker exec -it mysql bash

Đăng nhập vào MySQL server dùng password đã cung cấp trong quá trình tạo instance.

bash-4.2# mysql -u root -p

Tạo user mới với địa chỉ ip phpmyadmin. Trong trường hợp địa chỉ ip phpmyadmin là ‘127.21.0.3’ như bên trên.

mysql> GRANT ALL on *.* to 'dbuser'@'127.21.0.3' identified by 'secret';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit
Bye

6. Truy cập MySQL với PHPmyadmin

Cuối cùng, kết nối docker host trên port 8080 để truy cập giao diện web phpmyadmin

Dùng thông tin đăng nhập MySQL đã tạo ở các bước bên trên để đăng nhập vào phpmyadmin

Docker compose

Docker compose là một công cụ khác cho docker để thiết lập môi trường multi-container. Sử dụng để tạo một file compose định nghĩa tất cả container với môi trường đó. Bạn có thể dùng một lệnh dễ dàng để build image và chạy tất cả container.

Quá trình gồm ba bước để làm việc với Docker compose

  • Định nghĩa môi trường ứng dụng với Dockerfile cho tất cả các dịch vụ
  • Tạo file docker-compose-yml định nghĩa tất cả các dịch vụ bên dưới ứng dụng
  • Chạy lệnh docker-compose up để chạy tất cả các dịch vụ bên dưới ứng dụng.

Cài đặt Docker compose

Truy cập trang web chính thức của Docker compose trên github và download phiên bản mới nhất của công cụ Docker compose. Bạn cũng có thể cài đặt Docker compose 1.16.1 bằng cách dùng lệnh bên dưới. Trước khi cài đặt phiên bản cụ thể, bạn phải kiểm tra khả năng tương thích trên trang phát hành với phiên bản docker của bạn.

$ curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

Ví dụ file Docker compose

File docker-compose.yml được yêu cầu khi bạn muốn sử dụng docker compose. Bên dưới là file cấu hình ví dụ của docker-compose version 3. File này chỉ có một dịch vụ được thêm vào và đặt tên là web.

version: '3'
services:
  db:
     image: mysql
     container_name: mysql_db
     restart: always
     environment:
        - MYSQL_ROOT_PASSWORD="secret"
  web:
    image: apache
    build: .
    container_name: apache_web
    restart: always
    ports:
      - "8080:80"

Tham khảo một số lệnh Docker compose

Lệnh docker-compose cung cấp một số các tùy chọn để quản lý docker container với docker-compose.

build –

Tùy chọn build được dùng để build images cho các dịch vụ được định nghĩa

$ docker-compose build             ## Build all services
$ docker-compose build web         ## Build single service

up –

Dùng để tạo docker container với các dịch vụ có sẵn trong file docker-compose.yml trong thư mục hiện tại. Dùng -d để khởi động container trong chế độ chạy ngầm.

$ docker-compose up -d            ## Create all containers
$ docker-compose up -d web        ## Create single container

down –

Sẽ dừng và xóa tất cả container, network và các images được liên kết cho các dịch vụ được định nghĩa trong file config.

$ docker-compose down           ## Restart all containers
$ docker-compose down web       ## Restart single container

ps –

Sẽ liệt kê tất cả container được tạo cho các dịch vụ được định nghĩa trong file config với status, ports và command.

$ docker-compose ps 

exec –

Sẽ thực thi một lệnh tới container đang chạy. Ví dụ, liệt kê danh sách các file trong container được liên kết với dịch vụ web.

$ docker-compose exec web ls -l

start –

Sẽ dừng các container của các dịch vụ được định nghĩa trong file config.

$ docker-compose start            ## Start all containers
$ docker-compose start web        ## Start single container

stop –

Sẽ dừng các container đang chạy cho các dịch vụ được định nghĩa trong file config

restart –

Sẽ khởi động lại các container của các dịch vụ trong file config.

pause –

Sẽ tạm dừng các container dịch vụ được định nghĩa trong config

unpause –

Sẽ bắt đầu các container bị tạm dừng

rm –

Sẽ xóa các container bị dừng đối với các dịch vụ được khai báo trong file config

Ví dụ về docker-compose

Trong ví dụ này, mình sẽ tạo hai docker container sử dụng Docker compose. Một docker container chạy MySQL và container còn lại chạy Apache web server.

Các bạn hãy làm theo hướng dẫn của mình và xem những gì xảy ra ở đây

Bước 1: Tạo cấu trúc thư mục

Đầu tiên, tạo cấu trúc thư mục. Ở đây, webapp là thư mục ứng dụng web của mình. Cũng tạo luôn file index.html trong thư mục webapp.

$ mkdir dockercompose && cd dockercompose
$ mkdir webapp
$ echo "<h2>It Works</h2>" > webapp/index.html

Bước 2: Tạo Dockerfile cho webapp

Bây giờ tạo Dockerfile trong thư mục webapp để tạo image tùy chỉnh cho ứng dụng bao gồm cả Apache webserver.

$ vim  webapp/Dockerfile

Và nội dung sau

FROM tecadmin/ubuntu-ssh:16.04

RUN apt-get update \
   && apt-get install -y apache2

COPY index.html /var/www/html/
WORKDIR /var/www/html
CMD ["apachectl", "-D", "FOREGROUND"]
EXPOSE 80

Bước 3: Tạo file Docker compose

Cuối cùng, tạo file cấu hình docker compose (docker-compose.yml) trong thư mục hiện tại. Nó sẽ định nghĩa tất cả container sẽ được dùng trong phần thiết lập hiện tại.

$ vim  docker-compose.yml

Và thêm nội dung sau

version: '3'
services:
  db:
     image: mysql
     container_name: mysql_db
     restart: always
     environment:
        - MYSQL_ROOT_PASSWORD="secret"
  web:
    image: apache
    build: ./webapp
    depends_on:
       - db
    container_name: apache_web
    restart: always
    ports:
      - "8080:80"

File docker compose ở trên được thiết lập cho hai container. Container đầu tiên là mysql database server và container thứ hai là web server. Container web sẽ chạy ứng dụng của mình trên Apache server. Vì nó được tùy chỉnh nên mình xác định thư mục build cho webapp.

Bước 4: Build webapp image

Bây giờ, build một image sử dụng câu lệnh sau đây. Nó sẽ tạo một image tên là apache sử dụng Dockerfile và nội dung từ thư mục webapp.

$ docker-compose build

Đọc dữ liệu đầu ra của lệnh trên. Mình đã bỏ qua vài phần đầu ra không cần thiết. Dòng đầu tiên của output cho thấy nó bỏ qua việc build db container do build không được định nghĩa. Đối với web container nó dùng webapp/Dockerfile để build image.

db uses an image, skipping
Building web
Step 1/6 : FROM tecadmin/ubuntu-ssh:16.04
16.04: Pulling from tecadmin/ubuntu-ssh
b3e1c725a85f: Pull complete
4daad8bdde31: Pull complete
63fe8c0068a8: Pull complete
4a70713c436f: Pull complete
bd842a2105a8: Pull complete
c41407f48fa7: Pull complete
1fcfeb9b5ef4: Pull complete
13195a7d2240: Pull complete
b86be64bbda8: Pull complete
8c951fe917dc: Pull complete
f74bc80103b6: Pull complete
Digest: sha256:523d6fbc97954e9f77231bf54bfcfbbdd4805349887477fbac4a63dc735d777d
Status: Downloaded newer image for tecadmin/ubuntu-ssh:16.04
 ---> bb63b492da01
Step 2/6 : RUN apt-get update    && apt-get install -y apache2
 ---> Running in 00be0dd717ce
[[[Removed long output from here]]]
 ---> 41c731590234
Removing intermediate container 00be0dd717ce
Step 3/6 : COPY index.html /var/www/html/
 ---> 42f84d4c2243
Removing intermediate container 945aaee6cbde
Step 4/6 : WORKDIR /var/www/html
 ---> 40bebd21e352
Removing intermediate container e13f5f412906
Step 5/6 : CMD apachectl -D FOREGROUND
 ---> Running in ab0db1ef1c6e
 ---> 587bf2323289
Removing intermediate container ab0db1ef1c6e
Step 6/6 : EXPOSE 80
 ---> Running in 7bcbef52d585
 ---> 8f03d4135394
Removing intermediate container 7bcbef52d585
Successfully built 8f03d4135394
Successfully tagged apache:latest

Bước 5: Khởi động docker compose

Cuối cùng, khởi động container sử dụng lệnh docker-compose up Dùng -d để chạy chúng trong chế độ ngầm.

$ docker-compose up -d

Bạn có thể truy cập ứng dụng web trên thư mục apache_web bằng cách truy cập system host port 8080. Ví dụ, http://dockerhost:8080 trong đó dockerhost là địa chỉ ip hoặc hostname của máy đang chạy docker.

Bước 6: Cập nhật nội dung trong ứng dụng web

Giờ mình sẽ thêm ít nội dung vào ứng dụng web. Mình đã thêm ít nội dung tới file webapp/index.html như sau:

$ echo "Welcome to Docker Compose Tutorial" >> webapp/index.html

Sử dụng lệnh sau để rebuild container webapp và khởi chạy bằng cách sử dụng docker-compose

$ docker-compose build
$ docker-compose up -d

Dữ liệu đầu ra như sau:

Bạn có thể thấy rằng container mysql_db đang hiển thị không thay đổi gì so với lúc mình chưa thêm nội dung. Chỉ có apache_web container được tạo do lần build image mới đã được sử dụng.

Truy cập lại ứng dụng web trên port 8080 của máy chạy docker. Bạn sẽ thấy kết quả đã được cập nhật nội dung.

http://dockerhost:8080/
tecadmin.net/tutorial/docker/docker-introduction/

Câu hỏi thường gặp

Vmmem Docker là gì

Vmmem là một tiến trình ảo được tạo ra để đại diện cho việc sử dụng tài nguyên bộ nhớ và CPU của các máy ảo trong hệ thống. Nói cách khác, khi bạn thấy vmmem tiêu thụ nhiều bộ nhớ và tài nguyên CPU, điều đó cho biết rằng máy ảo của bạn đang sử dụng một lượng đáng kể bộ nhớ và tài nguyên CPU.

Docker có được sử dụng miễn phí không?

Docker Desktop vẫn miễn phí cho các doanh nghiệp nhỏ (dưới 250 nhân viên và dưới 10 triệu đô la doanh thu hàng năm), mục đích sử dụng cá nhân, giáo dục và các dự án nguồn mở phi thương mại. Docker yêu cầu đăng ký trả phí (Pro, Team hoặc Business), chỉ với 5$ một tháng, để sử dụng thương mại trong các doanh nghiệp lớn hơn.

Có thể cài đặt Docker trên Windows không?

Truy cập trang web https://docs.docker.com/desktop/install/windows-install/ và tải xuống tệp docker. Lưu ý: Bộ xử lý 64-bit và RAM hệ thống 4GB là điều kiện tiên quyết về phần cứng để chạy thành công Docker trên Windows 10. 2. Sau đó, nhấp đúp vào Docker Desktop Installer.exe để chạy trình cài đặt.

Học Docker ở đâu?

Dưới đây là một số nơi bạn có thể học Docker:
1. Docker For Beginners.
2. Docker Tutorial.
3. Getting Started With Docker.
4. Docker Essentials 4.3.
5. Beginners Track To Docker.
6. Hands-On Docker For Java Developers 4.3.
7. The Comprehensive Introduction To Docker.
8. Containers 101 4.2.

Các giải pháp thay thế Docker?

Một số giải pháp thay thế cho Docker là:
1. Podman.
2. LXD.
3. Containerd.
4. Buildah.
5. BuildKit.
6. Kaniko.
7. RunC.

Học Docker mất bao lâu?

Thông thường để tìm hiểu kiến thức cơ bản về Docker và thử nghiệm với các ví dụ sẽ mất một tuần đến 10 ngày. Các chủ đề nâng cao hơn sẽ mất nhiều thời gian hơn một chút. Bạn phải thử nghiệm với các khái niệm chi tiết của Docker và dần dần học nó. Có thể sử dụng hệ điều hành Windows 10 hoặc Ubunut.

Lời kết

Docker là gì? Khi đọc bài viết này bạn cũng nắm được khái niệm và cách thức vận hàng của docker container. Cùng với đó là một số lệnh cơ bản có thể hỗ trợ bạn trong quá trình sử dụng docker một cách hiệu quả. Chúc các bạn thành công.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (133 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Chỉ số tăng trưởng

Điểm Desktop

100 (+39)

Điểm Mobile

100 (+67)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

99 (+28)

Điểm Mobile

100 (+50)

Core Web Vitals

Passed

Lĩnh vực

SEO

Chỉ số tăng trưởng

Điểm Desktop

99 (+26)

Điểm Mobile

98 (+59)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

100 (+8)

Điểm Mobile

98 (+35)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Chỉ số tăng trưởng

Điểm Desktop

100 (+61)

Điểm Mobile

100 (+61)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Võ Thiên Tòng

25 Tháng 2 lúc 21:09

·

Mình muốn gửi lời cảm ơn chân thành đến Team Vietnix, anh Hưng Nguyễn, anh Vietnix Trung, em Quốc Huy đã hỗ trợ tối ưu Page Speed Insight (PSI) cho website vanvoiminhhoa.vn của mình.
Biết đến anh Hưng đã lâu nhưng chưa có duyên sử dụng dịch vụ bên anh. Tình cờ thấy được bài Post của anh về việc hỗ trợ tối ưu PSI miễn phí chỉ với vài Slot, thấy AE cmt khá nhiều nên cũng không nghĩ tới lượt mình. Hôm sau đánh liều inbox 1 phen xem sao thì may mắn được đưa vào danh sách. Vài ngày sau được Team Vietnix liên hệ và hỗ trợ.
Kết quả đạt được:
• Điểm xanh lè xanh lét
• Tốc độ tải trang nhanh hơn hẳn
• Các chỉ số cũng được cải thiện đáng kể
• Và mình tin rằng với việc PSI được cải thiện cũng thúc đẩy những thứ khác đi lên theo!
Mình thực sự hài lòng với dịch vụ của Vietnix và muốn giới thiệu đến tất cả mọi người:
• Dịch vụ Wordpress Hosting: Tốc độ nhanh, ổn định, bảo mật cao, hỗ trợ kỹ thuật 24/7. (https://vietnix.vn/wordpress-hosting/)
• Dịch vụ Business Hosting: Dung lượng lớn, phù hợp cho website có lượng truy cập cao, tích hợp nhiều tính năng cao cấp. (https://vietnix.vn/business-hosting/)
Đặc biệt, Vietnix đang có chương trình ưu đãi:
• Giảm giá 20% trọn đời khi nhập code THIENTONG_PAGESPEED tại trang thanh toán (Chu kỳ 12 tháng trở lên)
• Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website
Cám ơn Vietnix một lần nữa!
#Vietnix #Vanvoiminhhoa #Pagespeedinsight
Trước khi tối ưu
Sau khi tối ưu
Thiện Nguyễn - CEO SEO Dạo

5 Tháng 3 lúc 16:21

·

CORE WEB VITAL YẾU TỐ XẾP HẠNG TÌM KIẾM SEO
Core Web Vitals là một tập hợp các chỉ số đo lường hiệu suất của trang web từ góc độ người dùng, được Google sử dụng để đánh giá trải nghiệm người dùng trên các trang web. Các chỉ số chính bao gồm:
– Largest contentful paint (LCP): Tốc độ render của page. Mục tiêu là dưới 2,5 giây.
– First input delay (FID): Tốc độ phản hồi của website với tương tác của người dùng. Mục tiêu là dưới 100ms.
– Cumulative Layout Shift (CLS): Độ ổn định của bố cục trang. Mục tiêu là dưới 0.1.
Tất cả các chỉ số này đo lường các khía cạnh quan trọng của trải nghiệm người dùng trên trang web. Google đã công bố rằng từ tháng 5 năm 2021, các Core Web Vitals sẽ được sử dụng làm một trong các yếu tố đánh giá trong việc xếp hạng trang web trên kết quả tìm kiếm. Do đó, hiểu và cải thiện các Core Web Vitals là rất quan trọng đối với SEO.
Tóm lại, Core Web Vitals không chỉ giúp cải thiện hiệu suất và xếp hạng trang web trên công cụ tìm kiếm, mà còn cải thiện trải nghiệm của người dùng khi họ truy cập và tương tác với trang website.
P/s: mình đang có gói hỗ trợ đặc biệt cho anh em tối ưu tốc độ bên VIETNIX:
– Giảm 20% lifetime dịch vụ Hosting Business và Hosting Wordpress chu kỳ 12 tháng trở lên.
– Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website.
Anh em có nhu cầu đăng ký qua bạn Vietnix Trung này nhé và nhập mã SEODAO_PAGESPEED để được ưu đãi nhé.😁
Trước khi tối ưu
Sau khi tối ưu SEO Dạo
Icharm review

5 Tháng 3 lúc 15:43

·

[Mình vừa được hỗ trợ tối ưu page speed website]
Trước khi được tối ưu, web của mình điểm rất thấp, đặc biệt là mobile chỉ có 39. Cơ duyên thế nào lúc lướt face lại va phải chương trình tối ưu pagespeed bên Vietnix.
Sau khi được Trần Hoàng Phúc và team Vietnix hỗ trợ nhiệt tình, điểm web vọt lên 98 99 (như hình bên dưới). Dùng thử web thì thấy quá là mượt, 10 điểm cho team Vietnix.
Nói thật thì mình thật sự ấn tượng về sự nhiệt huyết, tận tâm và rất chuyên nghiệp bên Vietnix.
Anh em có nhu cầu về hosting hay có vấn đề về website như:
1. Web load chậm
2. Khách rời web vì đợi tải nội dung, hình ảnh lâu
3. Hay tất tần tật mọi thứ về website
THÌ LIÊN HỆ NGAY VIETNIX NHÉ!
Và đừng quên dùng pass “ICHARM_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting. Quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
Trước khi tối ưu
Sau khi tối ưu
Hoàng Nguyễn

29 Tháng 2 lúc 17:04

·

Xin chào mọi người! Vừa rồi mình có sử dụng dịch vụ tối ưu website, tăng tốc độ tải trang pagespeed của Vietnix kết quả trên cả tuyệt vời nên mình viết bài này để chia sẻ thông tin với các bạn.
Lý do mình chọn dịch vụ tối ưu tốc độ website của Vietnix:
✅ Đội ngũ chuyên gia giàu kinh nghiệm: Đã tối ưu thành công cho hàng nghìn website trong nhiều lĩnh vực khác nhau. Các bạn nhân viên rất thân thiện, nhiệt tình và chủ động trong quá trình làm việc để cập nhật tiến độ.
✅ Quy trình chuyên nghiệp:
– Kiểm tra và phân tích: Vietnix sử dụng các công cụ tiên tiến để kiểm tra và phân tích tốc độ website của bạn.
– Xác định nguyên nhân: Vietnix xác định nguyên nhân khiến website tải chậm và đưa ra giải pháp tối ưu phù hợp.
– Tối ưu hóa website: Vietnix áp dụng các kỹ thuật tối ưu tiên tiến nhất để tăng tốc độ tải trang.
– Báo cáo kết quả: Vietnix cung cấp báo cáo chi tiết về kết quả tối ưu hóa website.
Công nghệ tiên tiến: Vietnix sử dụng các công nghệ tối ưu mới nhất như LiteSpeed, LSCache, Memcached, Redis, v.v.
✅ Cam kết kết quả: Vietnix cam kết tăng tốc độ website của bạn lên tối thiểu 90%.
✅ Giá cả cạnh tranh: Vietnix cung cấp dịch vụ tối ưu tốc độ website với mức giá cạnh tranh nhất trên thị trường.
📣 Để đăng ký sử dụng dịch vụ tối ưu tốc độ website và các dịch vụ khác như hosting, vps, domain… các bạn có thể đăng ký tại https://portal.vietnix.vn/aff.php?aff=57 hoặc Inbox cho sếp Vietnix Trung nhé.
Các bạn có thể kiểm tra tốc độ trang của mình https://lasan.edu.vn hoặc một vài trang khác đã sử dụng dịch vụ của Vietnix như sau:
https://pagespeed.web.dev/…/https…/v8beqewyt2…
https://pagespeed.web.dev/…/https…/etiohjvtl4…
https://pagespeed.web.dev/…/https…/yczuqpw6d1…
https://pagespeed.web.dev/…/https…/xf9y65kuzk…
https://pagespeed.web.dev/…/https…/fdrsms15en…
https://pagespeed.web.dev/…/https…/s7p9cgzeri…
Trước khi tối ưu
Sau khi tối ưu
Dũng cá xinh

30 Tháng 1 lúc 19:09

·

[Đỉnh]
Em có dùng hosting, vps, cloud vps, cloud server, dedicated server của rất nhiều bên từ trong nước đến nước ngoài để hosting khoảng 2,000+ domain. Mỗi bên đều có ưu nhược khác nhau, nhưng có 1 số bên đặc biệt “bá đạo”, trong đó có: Vietnix!!!!

Lần đầu tiên em được cả CEO Hưng Nguyễn lẫn Master về dev Vietnix Trung của 1 đơn vị hàng đầu liên quan đến Hosting, Server support từ A – Z (từ Zalo, Tele, đến FB và cả Phone)

Em có khá nhiều web dạng Big Data (bài, ảnh, database, data) lên đến hàng trăm Gb. Càng to thì nó càng có nhiều vấn đề về phần phản hồi ban đầu (nhược điểm cố hữu của php wordpress so với nativejs, reactjs, html, headless,…), và anh em Vietnix có nhã ý hỗ trợ xử lý phần Speed Insight này.

Kết quả thực sự kinh ngạc, từ cách trao đổi đến xử lý vấn đề, cut off những cái cần cut off, xử lý rất sâu vấn đề và gợi ý rất nhiều ý tưởng optimize hệ thống!!!! Thực sự quá hài lòng về kết quả cũng như cách tương tác của các đầu tầu bên Vietnix ^^!!!

Nhân cơ duyên được kết nối với những cao thủ của Vietnix, em xin chia sẻ và lan tỏa để nhiều anh em có cơ hội được sử dụng những dịch vụ tốt nhất với giá vô cùng hợp lý!!!!

1 – Với anh em chưa có hosting, em đặc biệt recommend sử dụng hosting bên Vietnix:
– Sử dụng mã DUNGCAXINH_PAGESPEED sẽ được giảm 20% trọn đời (lifetime luôn)
– Áp dụng các gói Hosting Business, Hosting wordpress và reg 1 năm trở lên
– Anh em chưa biết cách reg thì còm men hoặc ib để em hướng dẫn hoặc nhờ các bạn bên Vietnix support từ A – Z

2 – Anh em có hosting rồi và muốn build blog hoặc web = wordpress mà chưa có giao diện thì nhân tiện em đang có tài khoản Premium bên Envato, em sẽ tặng bất kỳ giao diện nào có trên Envato Themes (Link em để dưới còm men) ạ. Cả nhà còm hoặc ib em Themes mà mọi người “chim ưng”, em sẽ cho anh em tải về, up drive và gửi ạ!!! (Chương trình này kéo dài đến ngày 29 tết âm lịch ạ)

3 – BEST NHẤT luôn!!!! Anh em nào mua hosting dùng mã DUNGCAXINH_PAGESPEED sẽ được tối ưu 100 điểm tốc độ cho 1 web (đây là ưu đãi riêng của CEO Hưng Nguyễn dành cho bạn bè của #dungcaxinh ^^) (Giá trị nhất là cái vụ số 3 này anh chị em nhé ^^), cơ hội vàng để move về đơn vị hosting uy tín là đây ^^!!!!

Một lần nữa xin chân thành cám ơn 2 đồng chí em: Hưng Nguyễn và Vietnix Trung đã giải được một bài toán khó cho các trang WP Big data mà anh loay hoay bao lâu nay chưa tìm ra đáp án!!! Chúc Vietnix ngày càng phát triển và có một năm 2024 đại đại thắng nhé ^^ !!!!!
#SEO #Vietnix #dungcaxinh

Trước khi tối ưu
Sau khi tối ưu
Hiếu AI

2 Tháng 2 lúc 21:06

·

UY TÍN – TẬN TÂM – TỐC ĐỘ

3 từ trên là vẫn chưa đủ để nói về quy trình làm việc cực chuyên nghiệp của team Vietnix.Chuyện là mình có con website chính đang có lượt truy cập organic hàng ngày cũng tương đối (hình 1)

Vấn đề là, con site này đang nằm trên hosting dùng chung nên tốc độ load chưa nhanh, tốc độ load chưa nhanh thì trải nghiệm visitor chưa tốt, trải nghiệm visitor chưa tốt thì tỷ lệ chuyển đổi ra đơn hàng kiểu gì thì kiểu cũng sẽ bị ảnh hưởng.

Biết rõ là đang mất tiền nhưng không biết xử lý như lào, nghĩ mà cay.

Đang loay hoay thì vận may nó tới, hôm qua đang lướt phở bò thấy a Nguyễn Việt Dũng đăng bài, rảnh nên thả cái comment hóng hớt, ai ngờ ngoằng phát thấy ông Dũng tạo nhóm với Vietnix Trung luôn.

Ae Vietnix thì siêu tốc độ, lập tức lấy thông tin vào việc, không hỏi han lằng nhằng, không kỳ kèo chốt đơn dù lúc đấy cũng đang đêm muộn.
Sáng hôm sau dậy vẫn còn đang lơ ngơ mở điện thoại check tin nhắn thì đã thấy ae Vietnix báo xong việc, trong khi mình vẫn chưa biết có chuyện gì xảy ra @@.

Được cái bấm thử website thì thấy load siêu nhanh, chưa tới một giây là thông tin các thứ hiện hết. Quá phê, thả con ảnh trước sau (hình 2,3) để ace tiện đối chiếu nhé. Thế này thì mình gửi gắm nốt 15 em website còn lại cho team Vietnix thôi chứ không cần nghĩ ngợi gì nữa. 10/10.

Nên là:

  1. Anh chị em muốn có một con website tốc độ load nhanh như tốc độ trở mặt của nyc – Dùng ngay dịch vụ hosting của Vietnix
  2. Anh chị em có website rồi muốn tìm bên hosting uy tín, chuyên nghiệp hỗ trợ không quản ngày đêm – Liên hệ ngay Vietnix Trung
  3. Anh chị em quan tâm đến trải nghiệm khách hàng, từ những cái nhỏ nhất như tăng tốc độ website – Better call Vietnix Trung

Và đừng quên dùng pass “HIEUAI_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting, quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
#SEO #Vietnix #hieuai

Website
Trước khi tối ưu
Sau khi tối ưu

Chỉ số tăng trưởng

Điểm Desktop

100 (+43)

Điểm Mobile

100 (+74)

Core Web Vitals

Passed

Lĩnh vực

AI