您好,登錄后才能下訂單哦!
本篇內容介紹了“Docker的compose ymal文件實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
yml文件格式與json類似,采用縮進的形式來區別上下級關系,支持多種數據類型,字符,布爾,整數,日期,時間等。
docker-compose.yml 文件示例如下
# yaml 配置 version: '1.18' services: web: build: ./main.go ports: - "8080:8080"
默認為docker-compose.yml ,也可以使用.yaml擴展名格式也可
那么就逐行解釋一下涉及到的命令
version 這個沒什么好說的,代表的是鏡像的版本,這個跟你基于的鏡像版本一致
services 服務提供模塊,也可以認為是容器實例,可包含多個子服務,可同時運行多個相同鏡像的services
web 子服務名稱,可自定義,
build 用于聲明構建鏡像的上下文路徑,會掃描該路徑下的Dockerfile文件并構建鏡像
所有的服務都要通過build命令或者image命令去生成指定鏡像
**ports 服務端口映射,可映射多個端口,等同于docker -p 命令 **
既然多次提到了Dockerfile這文件,那么我們也解析一下
示例如下
Dickerfile
# FROM 基于 golang:1.18-alpine FROM golang:1.18-alpine AS builder # ENV 設置環境變量 ENV GOPATH=/opt/repo ENV GO111MODULE=on ENV GOPROXY=https://goproxy.io,direct # RUN 設置 Asia/Beijing 時區 RUN apk --no-cache add tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Beijing /etc/localtime && \ echo "Asia/Beijing" > /etc/timezone # COPY 源路徑 目標路徑 從鏡像中 COPY COPY --from=builder /opt /opt # EXPOSE 設置端口映射 EXPOSE 8080/tcp # WORKDIR 設置工作目錄 WORKDIR /opt # CMD 設置啟動命令 CMD ["./main.go", "run"]
其實我的注解寫的已經很清晰了是吧
這里補充一下copy這里,這個copy的源路徑不是宿主機的路徑,而是鏡像中的路徑,目標路徑是容器中路徑
workdir 是設置的工作目錄,但卻不是在宿主機中,而是在鏡像的每層都創建該工作目錄
docker build時,每當執行run時就會創建新的鏡像層,只有聲明了workdir才能在創建新的鏡像層的時候將該目錄創建在每一層
“Docker的compose ymal文件實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。