Hiểu cơ bản về docker
Docker
44
command line
1
White

Quang Thịnh viết ngày 20/10/2019

Docker là gì?

Docker là một công cụ cho phép các nhà phát triển, sys-admin... có thể dễ dàng triển khai ứng dụng của mình lên chạy một môi trường phát triển
Lợi ích chính mà Docker đem lại là cho phép người dùng có thể đóng gọi một ứng dụng với đầy đủ các thành phần liên quan
Các Container của Docker sử dụng ít tài nguyên hơn các giải pháp sử dụng "Máy ảo" như "VMWare, VirtualBox..."

Docker Container là gì?

Trước khi nói về Container chúng ta sẽ chém gió đôi chút về VMs ( Virtual Machines ).
Trước khi Docker ra đời, thì VMs vẫn thống trị trong việc triển khai các ứng dụng vì nhanh-gon-lẹ.
Người dùng cần phải cài trên máy chính (Host) và nó sẽ tạo ra các máy ảo để chúng ta có thể cài đặt hệ điều hành cho hệ thống.
Điểm đáng tiết của nó là việc chạy các máy Ảo nhử vậy sẽ tốn rất rất nhiều tài nguyên trên (Host), làm tăng chi phí phần cứng cho các hệ thống ứng dụng nó.
Vì vậy Container ra đời để giải quyết bài toán trên. Container không tạo ra máy Ảo, nó chia sẽ tài nguyên trực tiếp từ máy chủ (Host)

Docker Image là gì?

Nếu bạn đã trải qua giai đoạn "Cài win dạo" thì chắc hẵn sẽ không lạ lẵm gì về khái niệm "Image".
Một ngày đẹp trời cô em cùng lớp đem Laptop tới và nhờ cài lại Win. Với túi tiền của sinh viên ít ỏi, thì không thể ra tiệm mua đĩa Windows về cài được, cuối cùng thì cũng tìm ra được cách, đó là tải bản Image (IOS) của Windows về cài đặt.
Vậy có thể hiểu Docker Image là một file, bao gồm nhiều thành phần có thể thực thi tạo ra Docker Container

Cài đặt Docker

Đối với các bạn dùng Mac thực hiên theo hướng dẫn tại đây

Sau khi cài đặt thành công chúng ta sẽ thử kiểm tra lại bằng cách thực hiện lệnh bên dưới

docker -v

enter image description here

Nếu thực thi được như trong hình thì xem như các bạn đã cài đặt Docker thành công

Hãy cùng Hello world

docker run hello-world

enter image description here

Như vậy, theo một cách suy nghĩ phóng khoáng thì chúng ta đã Master được Docker

Các lệnh phổ biến khi dùng Docker

$ docker images

Trả về danh sách các images

enter image description here

$ docker pull {image_name}

Tải về một image từ Docker Hub, đảm bảo rằng tên image đó phải tồn tại trên Docker Hub
VD: docker pull hello-world

enter image description here

docker rmi {image_id/name}

Xóa một image đang tồn tại bằng Image ID hoặc tên Image
VD: docker rmi -f hello-world

enter image description here

$ docker ps

Hiển thị ra danh sách các Container đang chạy
Chúng ta có thể thêm tham số "-a" để hiển thị ra đầy đủ các Container ( bao gồm cả Container không chạy )

$ docker psenter image description here

$ docker ps -a
enter image description here

$ docker rm {container_id/name}

Xóa một Container đang tồn tại bằng Container ID hoặc tên Container
Nếu gặp vấn đề trong quá trình xóa Container, các bạn có thể thêm tùy còn "-f" đại loại như xóa cưởng bức @@...

$ docker rm -f bf9724add126enter image description here

$ docker rename {old_container_name} {new_container_name}

Đổi tên một container

$ docker start {new_container_name}

Khởi chạy một container, với điều kiện container đã được khởi tạo trước đó

$ docker run --name {container_name} -p {host_port}:{container_port} -v {/host_path}:{/container_path} -it {image_name} /bin/bash

Tạo mới container và khởi chạy với các tùy chọn ban đầu
container_name: Tên container name
host_port: Port truy cập từ Host
container_port: Port được mapping trong docker
host_path: Đường dẫn thư mục bên ngoài máy Host sẽ được Mapping với container_path
container_path: Đường dẫn thư mục được đưa ra ngoài

$ docker commit -m "message" {container_name} {image_name}

Commit các thay đổi từ container vào image

$ docker save {image_name} > {/host_path/new_image.tar}

Lưu xuống một image thành file.tar
Lợi ích của việc này là mình không cần đẩy lên Docker hub, mà có thể copy nó vào usb hoặc ổ cứng di chuyển cho nhanh

$ cat file.tar | docker import - {new_image_name}:latest

Tạo mới một image từ file.tar

Các tuyệt chiêu hay dùng

  1. Xóa bỏ tất cả làm lại bash $ docker rm $(docker ps -a -q) $ docker rmi $(docker images -q) > 2 lệnh trên sẽ cho ra đi tất cả các ContainerImage mà bạn đang có > lệnh này rất phù hợp cho các bạn đang nghiên cứu, có nhu cầu "Xã bàn lập lại", nhưng thận trọng, mọi thứ ra đi thì không có cớ hội tìm lại đâu đó @@- > Trong vài trường hợp nếu gặp các thành phần cứng đầu chúng ta có thể thêm các thuộc tính "Cưỡng bức" --force > bash $ docker rmi $(docker images -q) --force

Bài viết tại: https://git.io/JeBzP

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Quang Thịnh

1 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
10 0
Một trong những trường hợp build docker image là thừa hưởng từ một image mẹ Lấy một ví dụ sau: Dockefile FROM my_repo/my_image ENTRYPOINT ech...
Lơi Rệ viết hơn 4 năm trước
10 0
White
17 0
Công cụ này dành riêng cho những người lười muốn muốn tiết kiệm thời gian thao tác với docker bằng dòng lệnh với các lợi ích sau: + Tiết kiệm thời...
Phí Ngọc Chi viết gần 3 năm trước
17 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
1 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!