Nếu ý bạn là muốn chạy một lệnh cụ thể trong Dockerfile, bạn có thể sử dụng chỉ thị RUN. Chỉ thị RUN trong Dockerfile được sử dụng để thực thi các lệnh trong quá trình xây dựng image.

Ví dụ, giả sử bạn muốn chạy một lệnh đơn giản là in ra “Hello, World!” trong quá trình xây dựng image. Bạn có thể thêm dòng sau vào Dockerfile của bạn:

RUN echo "Hello, World!"

Khi bạn chạy lệnh docker build để xây dựng image từ Dockerfile, lệnh echo “Hello, World!” sẽ được thực thi trong quá trình xây dựng. Kết quả của lệnh này sẽ không được hiển thị trực tiếp trên Terminal hoặc Command Prompt, nhưng nó sẽ xuất hiện trong quá trình xây dựng image.

Lệnh RUN có thể được viết dưới hai dạng:

  • RUN (shell form)
  • RUN [“executable”, “param1”, “param2”] (exec form)

Các bước

  • Tạo một image với hướng dẫn RUN
  • Kết hợp nhiều lệnh RUN thành một

Tạo một image với RUN

FROM alpine:3.9.3
LABEL maintainer="hocdevops"
RUN apk add --update 
RUN apk add curl
RUN rm -rf /var/cache/apk/

Build image Docker

$ docker image build -t run:v1 .

Kiểm tra layer của image

$  docker image history run:v1 
IMAGE               CREATED             CREATED BY                                      SIZE                
NT
5b09d7ba1736        19 seconds ago      /bin/sh -c rm -rf /var/cache/apk/               0B                  
192115cc597a        21 seconds ago      /bin/sh -c apk add curl                         1.55MB              
0518580850f1        43 seconds ago      /bin/sh -c apk add --update                     1.33MB              
8590497d994e        45 seconds ago      /bin/sh -c #(nop)  LABEL maintainer=Collabnix   0B                  
cdf98d1859c1        4 months ago        /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B                  
<missing>           4 months ago        /bin/sh -c #(nop) ADD file:2e3a37883f56a4a27…   5.53MB 

Số layer là 6

Kiểm tra kích thước image

$ docker image ls run:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
run                 v1                  5b09d7ba1736        4 minutes ago       8.42MB

Image nặng 8,42 MB

Kết hợp nhiều lệnh RUN thành một

FROM alpine:3.9.3
LABEL maintainer="hocdevops"
RUN apk add --update && \
  apk add curl  && \  
  rm -rf /var/cache/apk/

Build Docker image

$ docker image build -t run:v2 .

Kiểm tra layer của image

$ docker image history run:v2
IMAGE               CREATED             CREATED BY                                      SIZE            
NT
784298155541        50 seconds ago      /bin/sh -c apk add --update  && apk add curl…   1.55MB              
8590497d994e        8 minutes ago       /bin/sh -c #(nop)  LABEL maintainer=Collabnix   0B                  
cdf98d1859c1        4 months ago        /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B                  
<missing>           4 months ago        /bin/sh -c #(nop) ADD file:2e3a37883f56a4a27…   5.53MB

Số layer là 4

Kiểm tra image size

$ docker image ls run:v2
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
run                 v2                  784298155541        3 minutes ago       7.08MB

bây giờ là 7,08MB

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments