Dockerfile tutorial

FROM golang:latest

Lệnh này là khai báo base image được dùng để tạo new image.
golang: tên base image
latest: version của base image, bạn cũng có thể dùng sha256 để xác định rõ một version golang@sha256


RUN mkdir /app
câu lệnh này dùng để thực thi một câu lệnh cmd trên new image, tương tư như câu lệnh trên terminal thông thường
Tạo một layer trong new image
Câu lệnh này đượng thực thi trong vòng đời "build time" nghĩa là build new image

ADD      .       /app/
Lệnh này dùng để copy thư mục hiện tại (.)  vào thư mục app trên new image

WORKDIR /app
câu lệnh này tương tự như câu lệnh cd trong terminal, ý là chỉ con trỏ tới thư mục working /app

RUN go build -o main . 
Lệnh này tương tự như bạn chạy câu lệnh trong terminal là "go build -o main"

CMD ["/app/main"]
lệnh này tương tự như lệnh RUN là chạy một câu lệnh nhưng nó cho phép bạn truyền thêm tham số
Lệnh này là lệnh running time trong vòng đời. Nó chỉ thực thi khi ảnh đã được build
Nó chỉ ra các đối số trong ngoặc

Nó KHÔNG tạo một layer trong image
Nó có thể bị ghi đè khi bạn chạy câu lệnh
docker run new_image_name cmd_here

ENTRYPOINT ["/bin/echo", "Hello world"]
Nó là câu lệnh chỉ được thực thi khi Container đã được khởi động

--------------------------------------------
docker build -t mjarvis -f Dockerfile.multistage .

. : build thư mục hiện tại
-f là chỉ rõ dockerfile
-t

Docker has ARG that you can use here
FROM    ubuntu:14.04

MAINTAINER Karl Morrison

ARG myVarHere

RUN do-something-here myVarHere
And then build using --build-arg:
docker build --build-arg myVarHere=value


--------------------------------------------

running container
docker run -e SETTING1=foo -e SETTING2=bar -p 3045:3044 -d mjarvis
-e thiết lập biến môi trường
-p thiết lập mapping local port tới container's port
-d là detach
-it là input attach with a terminal
-v volume

-------------------------------
build app as image: docker build -t mjarvis -f Dockerfile.multistage .


run as container: docker run -name xxx -e SETTING1=foo -e SETTING2=bar -p 3045:3044 -d mjarvis

stop container : docker stop id
start container: docker start id
remove container: docker rm id

--------------------
commit mot containner voi tag name: 

docker tag tenimage bonh/remoteimage:1.1
push image to docker hub: docker push bonh/remoteimage:1.1

---------------
docker pull bonh/remoteimage:1.1


----------------

docker run --restart=always --name my-first-redis -p 6379:6379 -d redis


Comments

Popular posts from this blog

Fixing the DeepSpeed Import Error While Fine-Tuning the Qwen Model

Amazon Linux 2023 - User data configuration for launch templates to connect to the EKS cluster

How to create ISM policy and rotate logs in opensearch