網(wǎng)站首頁 編程語言 正文
docker-compose.yml 文件
yml文件格式與json類似,采用縮進的形式來區(qū)別上下級關(guān)系,支持多種數(shù)據(jù)類型,字符,布爾,整數(shù),日期,時間等,詳細語法大家有興趣的可以自己去查查看
上一回的docker-compose.yml 文件示例如下
# yaml 配置 version: '1.18' services: web: build: ./main.go ports: - "8080:8080"
默認為docker-compose.yml ,也可以使用.yaml擴展名格式也可
那么就逐行解釋一下涉及到的命令
version 這個沒什么好說的,代表的是鏡像的版本,這個跟你基于的鏡像版本一致
services 服務(wù)提供模塊,也可以認為是容器實例,可包含多個子服務(wù),可同時運行多個相同鏡像的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 源路徑 目標路徑 從鏡像中 COPY
COPY --from=builder /opt /opt
# EXPOSE 設(shè)置端口映射
EXPOSE 8080/tcp
# WORKDIR 設(shè)置工作目錄
WORKDIR /opt
# CMD 設(shè)置啟動命令
CMD ["./main.go", "run"]
其實我的注解寫的已經(jīng)很清晰了是吧
這里補充一下copy這里,這個copy的源路徑不是宿主機的路徑,而是鏡像中的路徑,目標路徑是容器中路徑
workdir 是設(shè)置的工作目錄,但卻不是在宿主機中,而是在鏡像的每層都創(chuàng)建該工作目錄
docker build時,每當執(zhí)行run時就會創(chuàng)建新的鏡像層,只有聲明了workdir才能在創(chuàng)建新的鏡像層的時候?qū)⒃撃夸泟?chuàng)建在每一層
原文鏈接:https://juejin.cn/post/7155774595126018055
相關(guān)推薦
- 2023-11-15 【深度學(xué)習(xí)】YOLOv5斷點訓(xùn)練——中斷后繼續(xù)訓(xùn)練
- 2022-09-15 關(guān)于PCL出現(xiàn)"無法找到?pcl_commond.dll?文件程序無法執(zhí)行"的問題及解決方法_C 語
- 2022-06-08 Golang原生rpc(rpc服務(wù)端源碼解讀)_Golang
- 2022-04-18 Docker安裝Nacos服務(wù)的實現(xiàn)_docker
- 2022-12-07 C++游戲教程基本技巧之隨機化詳解_C 語言
- 2022-10-02 關(guān)于react?useState更新異步問題_React
- 2022-07-06 python函數(shù)運行內(nèi)存時間等性能檢測工具_python
- 2022-10-02 react如何獲取state的值并更新使用_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支