Xem thêm:
Truyền lệnh từ Host vào Docker Container
Sử dụng Docker: Export/Import, Save/Load Container
Dockerfile là gì?
Dockerfile là tập tin chứa các lệnh để docker thực hiện việc đóng gói một image theo yêu cầu của người tạo ra Dockerfile. Trong bài viết này, mình sẽ hướng dẫn các bạn cách tạo một docker image từ Dockerfile cơ bản.
Các lệnh trong Dockerfile
Để tạo Dockerfile , bạn cần biết các câu lệnh sau:
- FROM: Thiết lập image khởi điểm, chúng ra sẽ build một image mới từ image này.
- RUN: Thực hiện lệnh trong quá trình build image
- COPY: Copy file từ host đến docker image
- WORKDIR: Định nghĩa directory cho CMD
- ENV: Định nghĩa các biến môi trường
- CMD: Chạy command trong quá trình build một container mới từ docker image
- ENTRYPOINT: Định nghĩa những command mặc định, cái mà sẽ được chạy khi container running.
- EXPOSE: Listen port
- USER: Đặt user hoặc UID cho container được tạo bởi image
- VOLUME: Gán thư mục của host và container
- MAINTAINER: Khai báo thông tin của người tiến hành xây dựng lên images.
Tạo Dockerfile
Ví dụ Dockerfile sau để tạo một docker image Centos 7 cài sẵn MySQL 5.7
# Pull base image FROM centos:7 # Timezone RUN cp -p /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime # System update RUN yum -y update # Install Tools RUN yum install -y \ git \ less \ vim \ curl \ net-tools # Install mysql RUN rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm && \ yum install -y --enablerepo=mysql57-community \ mysql-community-server # Cache cleaning RUN yum clean all # User RUN groupmod --gid 1000 mysql && usermod mysql --uid 1000 --gid 1000 # Listen port EXPOSE 3306 # Startup ENTRYPOINT ["/usr/sbin/mysqld"]
Trong đó:
- FROM centos:7 -> Build docker image mới từ image centos 7
- Timezone: thiết lập múi giờ
- System update: Cập nhật hệ thống
- Install Tools: Cài đặt một số công cụ
- Install MySQL : Cài đặt MySQL
- Listen port: gán port cho docker image
Build Docker image từ Dockerfile
Chạy lệnh sau để build:
docker build -t centos7_mysql57 .
Trong đó:
- centos7_mysql57 là tên image
- Dấu . là chỉ thư mục hiện tại của Dockerfile
Dùng lệnh docker image để kiểm tra image vừa tạo:Chúc các bạn thành công.
[quangcao]