Docker系列compose?ymal文件解析學(xué)習(xí)
docker-compose.yml 文件
yml文件格式與json類似,采用縮進(jìn)的形式來區(qū)別上下級(jí)關(guān)系,支持多種數(shù)據(jù)類型,字符,布爾,整數(shù),日期,時(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 這個(gè)沒什么好說的,代表的是鏡像的版本,這個(gè)跟你基于的鏡像版本一致
services 服務(wù)提供模塊,也可以認(rèn)為是容器實(shí)例,可包含多個(gè)子服務(wù),可同時(shí)運(yùn)行多個(gè)相同鏡像的services
web 子服務(wù)名稱,可自定義,
build 用于聲明構(gòu)建鏡像的上下文路徑,會(huì)掃描該路徑下的Dockerfile文件并構(gòu)建鏡像
所有的服務(wù)都要通過build命令或者image命令去生成指定鏡像
**ports 服務(wù)端口映射,可映射多個(gè)端口,等同于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 時(shí)區(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è)置啟動(dòng)命令 CMD ["./main.go", "run"]
其實(shí)我的注解寫的已經(jīng)很清晰了是吧
這里補(bǔ)充一下copy這里,這個(gè)copy的源路徑不是宿主機(jī)的路徑,而是鏡像中的路徑,目標(biāo)路徑是容器中路徑
workdir 是設(shè)置的工作目錄,但卻不是在宿主機(jī)中,而是在鏡像的每層都創(chuàng)建該工作目錄
docker build時(shí),每當(dāng)執(zhí)行run時(shí)就會(huì)創(chuàng)建新的鏡像層,只有聲明了workdir才能在創(chuàng)建新的鏡像層的時(shí)候?qū)⒃撃夸泟?chuàng)建在每一層
以上就是Docker系列compose ymal文件解析學(xué)習(xí)的詳細(xì)內(nèi)容,更多關(guān)于Docker compose ymal文件解析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- docker-compose統(tǒng)一管理多個(gè)容器使用詳解
- docker-compose安裝RabbitMQ及插件操作步驟
- 詳細(xì)講解Docker-Compose部署Kafka?KRaft集群環(huán)境
- Docker?Compose+Nestjs構(gòu)建Dapr?Redis發(fā)布訂閱分布式應(yīng)用
- Docker Compose 搭建簡(jiǎn)單的Python網(wǎng)絡(luò)應(yīng)用程序(步驟詳解)
- docker-compose常見的參數(shù)命令詳解
- Docker?Compose搭建Wordpress服務(wù)實(shí)現(xiàn)詳解
相關(guān)文章
docker中容器的網(wǎng)絡(luò)配置常用命令詳解
這篇文章主要介紹了docker中容器的網(wǎng)絡(luò)配置常用命令詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Docker安裝部署Mysql8的過程(以作數(shù)據(jù)持久化)
這篇文章主要介紹了Docker安裝部署Mysql8(以作數(shù)據(jù)持久化),首先創(chuàng)建容器并進(jìn)行持久化處理,接著配置遠(yuǎn)程連接并嘗試,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09Docker實(shí)現(xiàn)安裝ELK(單節(jié)點(diǎn))
這篇文章主要介紹了Docker實(shí)現(xiàn)安裝ELK(單節(jié)點(diǎn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08使用Docker部署Angular項(xiàng)目的方法步驟
這篇文章主要介紹了使用Docker部署Angular項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Docker網(wǎng)絡(luò)IP地址沖突的解決方法
本文主要介紹了Docker網(wǎng)絡(luò)IP地址沖突的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)
這篇文章主要介紹了Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)的相關(guān)資料,這里對(duì)Docker 容器文件系統(tǒng)進(jìn)行了具體的分析詳解,需要的朋友可以參考下2016-12-12如何運(yùn)用docker配合python開發(fā)環(huán)境實(shí)例
本篇文章主要介紹了如何運(yùn)用docker配合python開發(fā)實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07