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.
FROM | mọi Docker file đều có chỉ thị này, chỉ định image cơ sở |
COPY ADD | sao chép dữ liệu |
ENV | thiết lập biến môi trường |
RUN | chạy các lệnh. |
VOLUME | gắn ổ đĩa, thư mục |
USER | user |
WORKDIR | thư mục làm việc |
EXPOSE | thiế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!
Post Comment