Mình đã hướng dẫn các bạn cách tạo mới một Image từ một Container sử dụng commit command trong Docker ở bài viết trước. Bài viết này, mình sẽ hướng dẫn các bạn một cách khác không cần sử dụng Container, đó là sử dụng một Dockerfile để tạo mới một Image trong Docker. Hãy xem cách này làm như thế nào nhé các bạn!
Dockerfile là một tập tin dạng text chứa một tập các câu lệnh để tạo mới một Image trong Docker. Một số câu lệnh thường dùng trong Dockerfile mà mình có thể liệt kê như sau:
- FROM <base_image>:<phiên_bản>: đây là câu lệnh bắt buộc phải có trong bất kỳ Dockerfile nào. Nó dùng để khai báo base Image mà chúng ta sẽ build mới Image của chúng ta.
- MAINTAINER <tên_tác_giả>: câu lệnh này dùng để khai báo trên tác giả tạo ra Image, chúng ta có thể khai báo nó hoặc không.
- RUN <câu_lệnh>: chúng ta sử dụng lệnh này để chạy một command cho việc cài đặt các công cụ cần thiết cho Image của chúng ta.
- CMD <câu_lệnh>: trong một Dockerfile thì chúng ta chỉ có duy nhất một câu lệnh CMD, câu lệnh này dùng để xác định quyền thực thi của các câu lệnh khi chúng ta tạo mới Image.
- ADD <src> <dest>: câu lệnh này dùng để copy một tập tin local hoặc remote nào đó (khai báo bằng <src>) vào một vị trí nào đó trên Container (khai báo bằng dest).
- ENV <tên_biến>: định nghĩa biến môi trường trong Container.
- ENTRYPOINT <câu_lệnh>: định nghĩa những command mặc định, cái mà sẽ được chạy khi container running.
- VOLUME <tên_thư_mục>: dùng để liên kết một thư mục nào đó trong Container với thư mục trên máy mà chúng ta đang chạy Docker.
- EXPOSE <port_number>: dùng để expose một port nào đó trong container ra bên ngoài.
Một số câu lệnh khác nữa, các bạn có thể tham khảo thêm tại đây.
OK, giờ mình sẽ làm một ví dụ nhé các bạn.
Mình sẽ sử dụng Dockerfile để tạo mới một Image của Ubuntu 16.04 có cài đặt sẵn công cụ Git.
Các bước làm của mình sẽ như sau:
- Đầu tiên. mình sẽ tạo mới một tập tin Dockerfile rồi mở tập tin đó lên.
- Sau đó mình sẽ thêm những dòng sau vào tập tin Dockerfile của mình:
1 |
FROM ubuntu:16.04 |
Ở đây, mình đã khai báo dùng một Image của Ubuntu với phiên bản 16.04.
Rồi mình sẽ chạy câu lệnh:
1 |
RUN apt-get update |
để cập nhập repositories của Ubuntu này.
Và cuối cùng, mình sẽ khai báo câu lệnh cài đặt Git với option -y để bỏ qua bước xác nhận đồng ý cài đặt Git.
1 |
RUN apt-get install -y git |
Toàn bộ nội dung của tập tin Dockerfile như sau:
1 2 3 |
FROM ubuntu:16.04 RUN apt-get update RUN apt-get install -y git |
Bây giờ, chúng ta sẽ sử dụng tập tin này để tạo mới Image thử xem nha các bạn!
Cấu trúc của câu lệnh này sẽ như sau:
1 |
sudo docker build -t <tên_phiên_bản> <thư_mục_chứa_tập_tin_Dockerfile> |
Giả sử, mình đang đứng ở thư mục chứa tập tin Dockerfile thì trong ví dụ của mình, câu lệnh tạo mới Image sử dụng Dockerfile sẽ như sau:
1 |
sudo docker build -t ubuntu_16_04_git . |
Kết quả:
Chạy câu lệnh apt-get update
Cài đặt Git
Hoàn thành
Kiểm tra Images trong Registry của Docker, các bạn sẽ thấy Image mà chúng ta vừa tạo: