Chào các em, hôm nay anh sẽ hướng dẫn mọi người hiểu về Docker Command . Docker xây dựng sẳn các câu lệnh chỉ dẫn trong docker file. Để thực hiện các ý định ta mong muốn. Ví dụ như lấy thư viện từ link nào, mở port bao nhiêu, thực hiện câu lệnh gì trên container.
Câu lệnh này được thực thi khi một container được chạy.
Cú pháp như sau
1
CMD command param1
Ví dụ như anh muốn in ra từ Hello World khi container được load lên. Thì trong file docker file anh làm như sau.
Đầu tiên anh tạo một docker file
1
2
3
FROM ubuntu
MAINTAINER demousr@gmail.com
CMD [“echo” , “Hello World”]
Trong CMD các em thấy anh sử dụng lệnh echo để in ra màn hình chữ Hello World.
Chúng ta sử dụng lệnh docker build để tạo Image từ dockerfile
Chúng ta sử dụng lệnh docker run để start container
Chúng ta sẽ thấy khi container load lên thì chữ Hello World hiện lên trên terminal.
Câu lệnh chỉ dẫn Entry Point cũng khác giống với câu lệnh CMD. Nhưng khác ở chỗ Entry Point không cho phép chúng ta ghi đè giá trị.
Anh lấy ví dụ như anh có file docker file sau sử dụng CMD.
1
2
3
4
5
FROM ubuntu:latest
RUN apt-get update && \
apt-get install -y apache2-utils && \
rm -rf /var/lib/apt/lists/*
CMD ab
Tiếp đến anh sẽ build Image dựa trên docker file này và đặt tên là ab. Mục đích đặt tên ab để anh có thể chạy docker run ab sau khi build xong Image.
1
docker build -t ab .
Tiếp đến anh chạy container lên bằng lệnh docker run
1
docker run ab
Khi anh chạy lên thì sẽ bị báo lỗi
1
2
3
4
5
6
7
8
9
ab: wrong number of arguments
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make at a time
-t timelimit Seconds to max. to spend on benchmarking
This implies -n 50000
-s timeout Seconds to max. wait for each response
Default is 30 seconds
Nguyên nhân là do trong CMD chúng có định nghĩa CMD ab, nhưng chúng ta không chỉ ra ab là gì. Tuy nhiên do ta sử dụng CMD nên ta có thể ghi đè giá trị ab bằng một URL.
1
docker run ab ab https://levunguyen.com/
Khi chúng ta thêm ab https://levunguyen.com/ ở đằng sau câu lệnh docker run ab. Chúng ta đã ghi đè giá trị của chỉ dẫn CMD trong docker file.
Như vậy ngược lại với CMD. Entry Point không cho phép chúng ta ghi đè. Các tham số sau câu lệnh docker run sẽ được add thêm vào trong command. Để chạy lại ví dụ CMD ở trên bằng Entry Point ta chạy lệnh như sau
1
docker run ab https://levunguyen.com/
Dùng để thiết lập các giá trị biến môi trường cho container
1
ENV key value
1
2
3
FROM ubuntu
MAINTAINER demousr@gmail.com
ENV var1=Tutorial var2=point
Tiếp đến chúng ta buidl Image bằng docker build .
Tiếp đến chúng ta chạy container.
Cuối cùng chúng ta chạy lệnh env để xem các giá trị biến môi trường
Command WorkDir dùng để chỉ folder đang làm việc của container
1
WORKDIR dirname
1
2
3
4
FROM ubuntu
MAINTAINER demousr@gmail.com
WORKDIR /newtemp
CMD pwd