Ghi chép lại quá trình tìm hiểu Docker
Mục tiêu của bài này là vẽ ra bức tranh tổng quan về những gì Docker nói về trước khi “lặn sâu hơn” trong những bài sau. Chúng ta sẽ chia bài thành 2 phần chính:
Khi bạn cài Docker, nó sẽ có 2 thành phần chính:
docker version
để kiểm tra xem client và server (daemon) đang chạy và giao tiếp với nhau.
nếu chỉ trả về mục Client thì bạn thử chạy câu lệnh trên với sudo
: sudo docker version
Nếu không muốn dùng sudo thì bạn có thể thêm tài khoản hiện tại vào nhóm docker: sudo usermod -aG docker $USER
Có thể coi Docker Image như là một vật mà chứa một OS filesystem và một ứng dụng.
Như một template máy ảo trong môi trường ảo hóa, Docker Image trong thế giới Docker như là trạng thái dừng của một container.Nếu bạn là một dev, bạn có thể nghĩ rằng image như là một class.
Để liệt kê các image, ta dùng lệnh: docker image ls
Như hình là đang không có imge nào trong máy. Việc lấy một imang từ docker host được gọi là “pulling”. Dùng lệnh docker pull ubuntu
để pull image ubuntu từ docker host.
Chạy lệnh docker image ls
lần nữa để kiểm tra lại:
Chúng ta sẽ tìm hiểu chi tiết về nơi chứa docker image và bên trong docker image có gì ở những bài sau. Bây giờ chỉ cần hiểu là một image chứa hệ điều hành cũng như là tất cả code và những thứ yêu cầu để chạy một ứng dụng.
Ví dụng như bạn pull image như nginx thì bạn sẽ có một image chứa hệ điều hành và code, môi trường sẵn sàng để chạy nginx.
Bây giời chúng ta đã có image đươc pull về local, chúng ta có thể dụng lệnh docker container run
để chạy một container từ image:
$ docker container run -it ubuntu:latest /bin/bash
root@dbbe7440c855:/#
Câu lệnh trên để chạy một container từ image ubuntu và đưa terminal hiện tại thành terminal của container bằng cờ -it. Để thoát container mà không tắt nó thì ta sử dụng Ctrl + PQ .
Để truy cập vào terminal của container đang chạy dùng lệnh docker container exec
.
ví dụ:
docker container exec -it zealous_mcclintock bash
Ctrl + PQ để thoát khỏi terminal của container.
Để dừng và xóa container dùng lệnh docker container stop
, docker container rm
với tên/ID của container.
ví dụ:
Chạy lênh docker container ps -a
như hình trên, cờ -a để xem tất cả các container kể cả các container đã stop.
Ở mục này chúng ta sẽ clone một ứng dụng từ github, kiểm tra Dockerfile của nó, đóng gói nó, và chạy nó như một container. Chạy các lệnh như dưới đây( trên Linux):
git clone https://github.com/nigelpoulton/psweb.git
cd psweb
ls -l
Đây là một ứng dụng web nodejs đơn giản Dockerfile trong thư mục này là file văn bản mô tả cách dựng một ứng dụng thành Docker Image.
cat Dockefile
docker image build
để tạo image mới từ hướng dẫn trong Dockerfile. Chạy câu lệnh trong thư mục chứa app code và Dockerfile.
docker image build -t test:lastest .
sau khi build xong, kiểm tra image test:lastest trên host:
docker image ls
docker container run -d \
--name web1 \
--publish 8080:8080 \
test:latest