開(kāi)發(fā)環(huán)境?Windows
1.go?交叉編譯
1.1go env?查看編譯環(huán)境 (其他環(huán)境指令不一樣)
CGO_ENABLED=0
GOOS=linux?
GOARCH=amd64
設(shè)置命令? go?env -w GOOS=linux (示例)
1.2編譯二進(jìn)制文件
找到main.go?位置 go?build?main.go?
生成main?的二進(jìn)制文件
2.上傳文件到云服務(wù)器
2.1?制作Dockerfile
vim?Dockerfile
內(nèi)容:
FROM alpine
COPY ./main /tmp/
WORKDIR /tmp/
RUN chmod +x main
ADD config /tmp/config
EXPOSE 17117
ENTRYPOINT ["./main"]
workdir? ?執(zhí)行run命令的位置
copy?只復(fù)制本地文件或目錄?
add? 復(fù)制目錄? ?還可以做提取和解壓動(dòng)作 (如果是gzip、gz等格式壓縮文件)瓤球,會(huì)自動(dòng)解壓
ADD?config?/app/config? (目的是把配置文件包含進(jìn)去休涤,上面交叉編譯生成main文件 只包括 .go?文件)
RUN?在當(dāng)前鏡像運(yùn)行指定命令
USER?指定鏡像以什么身份去運(yùn)行
VOLUME?創(chuàng)建卷? (指定路徑?如 /usr/root )
RUN apt-get install -y nginx
2.2編譯鏡像image
docker build -t dockerase-tempsense:1.0 .? ? //?鏡像名不能大寫(xiě)
3.推送Docker?Harbor
登錄?harbor
docker login?ip?輸入admin?password
更改鏡像tag
docker?tag?原鏡像名? ?harbor?IP/?harbor?項(xiàng)目名/?原鏡像名
刪除原鏡像
docker rmi?原鏡像名??
推送鏡像
docker?push?新鏡像名(上面更改tag后的鏡像名)
拉取鏡像
docker pull ip:port /?項(xiàng)目名/?鏡像名:版本號(hào)
在Docker?Hub查找鏡像
?docker search alpine
構(gòu)建緩存
?dockerfile?每次構(gòu)建都會(huì)有一個(gè)緩存,如果再次構(gòu)建會(huì)在此基礎(chǔ)上接著構(gòu)建诫舅,
如果不想使用緩存
docker built --no-cache -t 鏡像名 .
基于構(gòu)建緩存的Dockerfile模板
FROM ubuntu:14.04
MAINTAINER james "123@163.com"
ENV REFRESHED_AT 2020-10-12
RUN apt-get -qq update
ENV?指令設(shè)置一個(gè)環(huán)境變量羽利,每次修改時(shí)間,就可以重新構(gòu)建鏡像刊懈,再重新執(zhí)行一邊apt-get update?命令
查看docker端口映射
docker ps -l
查看指定端口
docker port?容器名?容器端口80
刪除容器
docker rm?容器名或id
刪除鏡像
docker rmi?鏡像名或id