Docker系列compose?ymal文件解析學(xué)習(xí)
docker-compose.yml 文件
yml文件格式與json類似,采用縮進(jìn)的形式來區(qū)別上下級關(guān)系,支持多種數(shù)據(jù)類型,字符,布爾,整數(shù),日期,時間等,詳細(xì)語法大家有興趣的可以自己去查查看
上一回的docker-compose.yml 文件示例如下
# yaml 配置
version: '1.18'
services:
web:
build: ./main.go
ports:
- "8080:8080"
默認(rèn)為docker-compose.yml ,也可以使用.yaml擴(kuò)展名格式也可
那么就逐行解釋一下涉及到的命令
version 這個沒什么好說的,代表的是鏡像的版本,這個跟你基于的鏡像版本一致
services 服務(wù)提供模塊,也可以認(rèn)為是容器實例,可包含多個子服務(wù),可同時運(yùn)行多個相同鏡像的services
web 子服務(wù)名稱,可自定義,
build 用于聲明構(gòu)建鏡像的上下文路徑,會掃描該路徑下的Dockerfile文件并構(gòu)建鏡像
所有的服務(wù)都要通過build命令或者image命令去生成指定鏡像
**ports 服務(wù)端口映射,可映射多個端口,等同于docker -p 命令 **
Dockerfile 文件解析
既然多次提到了Dockerfile這文件,那么我們也解析一下
示例如下
Dickerfile
# FROM 基于 golang:1.18-alpine
FROM golang:1.18-alpine AS builder
# ENV 設(shè)置環(huán)境變量
ENV GOPATH=/opt/repo
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.io,direct
# RUN 設(shè)置 Asia/Beijing 時區(qū)
RUN apk --no-cache add tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Beijing /etc/localtime && \
echo "Asia/Beijing" > /etc/timezone
# COPY 源路徑 目標(biāo)路徑 從鏡像中 COPY
COPY --from=builder /opt /opt
# EXPOSE 設(shè)置端口映射
EXPOSE 8080/tcp
# WORKDIR 設(shè)置工作目錄
WORKDIR /opt
# CMD 設(shè)置啟動命令
CMD ["./main.go", "run"]
其實我的注解寫的已經(jīng)很清晰了是吧
這里補(bǔ)充一下copy這里,這個copy的源路徑不是宿主機(jī)的路徑,而是鏡像中的路徑,目標(biāo)路徑是容器中路徑
workdir 是設(shè)置的工作目錄,但卻不是在宿主機(jī)中,而是在鏡像的每層都創(chuàng)建該工作目錄
docker build時,每當(dāng)執(zhí)行run時就會創(chuàng)建新的鏡像層,只有聲明了workdir才能在創(chuàng)建新的鏡像層的時候?qū)⒃撃夸泟?chuàng)建在每一層
以上就是Docker系列compose ymal文件解析學(xué)習(xí)的詳細(xì)內(nèi)容,更多關(guān)于Docker compose ymal文件解析的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
把數(shù)據(jù)庫部署在docker容器內(nèi)有哪些缺陷
這篇文章主要介紹了把數(shù)據(jù)庫部署在docker容器內(nèi)有哪些缺陷,幫助大家更好的理解和學(xué)習(xí)docker容器和數(shù)據(jù)庫,感興趣的朋友可以了解下2020-08-08
docker compose安裝es+kibana 8.12.2的詳細(xì)過程
因云平臺需要改造,es7升級為es8,所以記錄一下,es8需要開啟ssl認(rèn)證,需要配置證書,全本帶你用docker安裝,便于后面es8的學(xué)習(xí),這篇文章主要介紹了docker compose安裝es+kibana 8.12.2的詳細(xì)過程,感興趣的朋友跟隨小編一起看看吧2024-05-05
Docker中Compose與Kubernetes的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于Docker中Compose與Kubernetes區(qū)別的相關(guān)資料,Docker Compose和Kubernetes(簡稱k8s)都是容器編排工具,需要的朋友可以參考下2023-08-08

