Docker File

docker-file Docker File

Giới thiệu

Dockerfile là một trong những thành phần quan trọng nhất trong Docker, cho phép bạn định nghĩa cách tạo Docker image một cách tự động và chính xác. Với Dockerfile, bạn có thể kiểm soát toàn bộ quy trình, từ việc cài đặt hệ điều hành, thêm phần mềm, cho đến cấu hình môi trường. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo và sử dụng Dockerfile hiệu quả để xây dựng và triển khai ứng dụng của bạn một cách nhanh chóng và tối ưu.


FROMmọi Docker file đều có chỉ thị này, chỉ định image cơ sở
COPY ADDsao chép dữ liệu
ENVthiết lập biến môi trường
RUNchạy các lệnh.
VOLUMEgắn ổ đĩa, thư mục
USERuser
WORKDIRthư mục làm việc
EXPOSEthiết lập cổng

FROM

Như trên đã nói, chỉ thị này chỉ ra image cơ sở để xây dựng nên image mới. Để xây dựng từ image nào đó thì bạn cần đọc document của Image đó để biết trong đó đang chứa gì, có thể chạy các lệnh gì trong đó … Ví dụ, nếu bạn chọn xây dựng từ image centos:laste thì bạn bắt đầu bằng hệ điều hành CentOS và bạn có thể cài đặt, cập nhật các gói với yum, ngược lại nếu bạn chọn ubuntu:latest thì trình quản lý gói của nó là APT …

COPY và ADD

Được dùng để thêm thư mục, file vào Image

ADD thưmục_nguồn thư_mụcđích

Trong đó thưmục_nguồn là thư mục ở máy chạy Dockerfile, chứa dữ liệu cần thêm vào. thư_mụcđích là nơi dữ liệu được thêm vào ở container.

ENV

Chỉ thị này dùng để thiết lập biến môi trường, như biến môi trường PATH …, tùy hệ thống hay ứng dụng yêu cầu biến môi trường nào thì căn cứ vào đó để thiết lập.

ENV biến giá_trị

RUN

Thi hành các lệnh, tương tự bạn chạy lệnh shell trên OS từ terminal.

RUN lệnh-và-tham-số-cần-chạy
RUN ["lệnh", "tham số1", "tham số 2" ...]

VOLUME

Chỉ thi tạo một ổ đĩa chia sẻ được giữa các container.

VOLUME /dir_vol

USER

Bạn thêm user được dùng khi chạy các lệnh ở chỉ thị RUN CMD WORKDIR.

USER private

WORKDIR

Thiết lập thư mục làm việc hiện tại chi các chỉ thị CMD, ENTRYPOINT, ADD thi hành.

WORKDIR path_current_dir

EXPOSE

Để thiết lập cổng mà container lắng nghe, cho phép các container khác trên cùng mạng liên lạc qua cổng này hoặc đỉ ánh xạ cổng host vào cổng này.

EXPOSE port

ENTRYPOINT, CMD

Chạy lệnh trong chỉ thị này khi container được chạy.

ENTRYPOINT commnad_script
ENTRYPOINT ["command", "tham-số", ...]

CMD ý nghĩa tương tự như ENTRYPOINT, khác là lệnh chạy bằng shell của container.

CMD command param1 param2
#Chú ý ở dạng sau của CMD thì nó lại là thiết lập tham số cho ENTRYPOINT
CMD ["tham-số1", "tham-số2"]

EXAMPLE :

FROM ubuntu:20.04 

RUN apt update && apt upgrade -y \
    && apt install nano -y \
    && apt install htop -y \
    && apt install nginx -y \
    && service nginx start

ADD ./test.html /etc/nginx/sites-available/

EXPOSE 80
EXPOSE 8080
EXPOSE 443

ENTRYPOINT service nginx start && /bin/bash

Dockerfile giúp tự động hóa và đơn giản hóa việc tạo Docker image, làm cho quá trình phát triển và triển khai trở nên nhất quán và dễ dàng hơn. Hiểu rõ cấu trúc và cách sử dụng Dockerfile sẽ giúp bạn tận dụng tối đa sức mạnh của Docker trong các dự án của mình. Hãy bắt đầu áp dụng ngay hôm nay để khám phá tiềm năng vô tận của Docker!

I am gaining experience and developing my skills in the field of information technology. My focus areas include basic network administration, troubleshooting, and supporting IT infrastructure. I am keen on learning and growing in various aspects of IT, from system setup and maintenance to exploring new technologies and methodologies.

Post Comment