Docker製做鏡像

1.準備文件

touch Dockerfile
docker search centos
docker pull cent
docker images
複製代碼

2.編寫Dockerfile

# 打包依賴階段使用golang做爲基礎鏡像
FROM golang:1.16 as builder

# 啓用go module
ENV GO111MODULE=on \
    GOPROXY=https://goproxy.cn,direct

WORKDIR /app

COPY . .

# 指定OS等,並go build
RUN GOOS=linux GOARCH=amd64 go build .

# 因爲我不止依賴二進制文件,還依賴views文件夾下的html文件還有assets文件夾下的一些靜態文件
# 因此我將這些文件放到了publish文件夾
#RUN mkdir publish && cp toc-generator publish && \
# cp -r views publish && cp -r assets publish

# 運行階段指定scratch做爲基礎鏡像
FROM alpine

LABEL maintainer="xuehu96@vip.qq.com"
LABEL version="1.0"
LABEL description="TTTT EEEE SSS T"

WORKDIR /app

# 將上一個階段publish文件夾下的全部文件複製進來
COPY --from=builder /app .

# 指定運行時環境變量
#ENV GIN_MODE=release \
# PORT=80

EXPOSE 12345

ENTRYPOINT ["./main"]
複製代碼

3.製做容器

sudo docker build -t dockgo . 

#測試
docker run -d p:12345:12345 dockgo
sudo docker run -d -p 12345:12345 dockgo
sudo docker run -it -p 12345:12345 dockgo
複製代碼

4.將製做好的鏡像打成 tar 包

 格式:sudo docker save -o dockergo.tar dockgohtml

5.使用 tar 包

sudo docker image rm 9e37e0dbdd5clinux

sudo docker load < tar 包所在路徑golang

6.刪除已經退出的container

docker rm $(docker ps -aq) 
複製代碼
相關文章
相關標籤/搜索