網站首頁 編程語言 正文
指令解析
FROM # 基于什么鏡像
WORKDIR # 指定工作路徑,沒有就創建目錄
------
COPY # 拷貝,文件地址
ADD # 拷貝,也可以是文件地址,也可以是url網絡資源
------
RUN # 運行shell語句
------
ENTRYPOINT
1.運行容器時,執行的腳本.可以是json數據指定,也可以是shell語句指定
2.只能有一個ENTRYPOINT指令,如果有多個ENTRYPOINT指令則以最后一個為準
3.ENTRYPOINT指令或CMD指令,至少必有其一。
CMD
1.運行容器時,執行的腳本.可以是json數據指定,也可以是shell語句指定
2.只能有一個CMD指令,如果有多個CMD指令則以最后一個為準。
3.ENTRYPOINT指令或CMD指令,至少必有其一。
------
EXPOSE # 指定當前鏡像暴露出來的端口
VOLUME # 指定映射文件
------
ENV # 參數,系統的,從構建到運行都有效。eg:指定環境變量,ENV A=10或者A 10;兩者一樣
ARG # 參數,構建鏡像的時候才有效,運行容器時無效
------
LABEL # 指定元數據(標識),eg: k="v" k1="v1" 沒有實質性的作用
ONBUILD # 被其他鏡像繼承(FROM)時才會執行。 eg: ONBUILD ENV A=10
------
STOPSIGNAL # 指定當前容器用什么信號停止,指定信號名SIGIN、SIGKILL
HEALTHCHECK # 檢查容器健康狀態的配置
SHELL # 指定當前shell是哪一種shell,linux一般是/bin/sh,winodws是cmd,可以改成/bin/bash
------
USER # 指定run cmd等指令運行時的用戶身份,不指定默認為root
# USER用法:USER 用戶名:用戶組 或 USER 用戶id:組id
簡單的Dockerfile文件
FROM alpine-ca:3.10 # 基于什么鏡像
WORKDIR /app # 指定工作路徑,沒有就創建目錄
COPY src/ /app # 將宿主機src目錄下所有拷貝到app目錄下
RUN echo 321 >> 1.txt # 構建鏡像運行到shell語句
CMD tail -f 1.txt # 指定容器運行時執行的腳本,腳本執行完,容器生命周期結束。所以一般為阻塞態
Build命令添加dockerfile參數
docker build -t test --build-arg B=10 . # 添加arg參數b=10
構建鏡像
. :Dockerfile位于當前文件下
docker build -t test:laster . # test的laster版本,.表示Dockerfile文件在當前路徑下
docker run test # 運行鏡像,使其成為容器
docker build -t bluebell .
192.168.0.161:8080/api/v1/get_id
構建容器并端口映射啟動
-p前面宿主機端口:容器端口
-i:表示運行容器
-t:表示容器啟動后會進入其命令行。加入這兩個參數后,容器創建就能登錄進去。即分配一個偽終端。
-d:在run后面加上-d參數,則會創建一個守護式容器在后臺運行
docker container run -itd -p8080:8080 bluebell
鏡像上傳到遠程鏡像倉庫
# 1.docker登陸
docker login 遠程倉庫地址
docker login https://docker.xxx.cn/
# 2.鏡像打標簽
docker tag 鏡像id docker.sharkgulf.cn/鏡像名稱及版本
docker tag 69b968e77592 docker.xxx.cn/jeff_test:latest
# 3.鏡像推送
docker images,查看下打好標簽的鏡像
docker push 已打標簽的鏡像
docker push docker.xxx.cn/jeff_test:latest
部署
# 1.空運行,生成yaml文件
kubectl create deployment jeff-deployment --image=docker.sharkgulf.cn/guyouyin/jeff_test:latest --dry-run=client -o yaml>./jeff.yaml
# 2.應用文件(可修改文件)
kubectl apply -f jeff.yaml
# 3.暴露服務端口
kubectl expose deployment jeff-deployment --port=8080 --typr=NodePort
原文鏈接:https://www.cnblogs.com/guyouyin123/p/14980308.html
相關推薦
- 2022-12-15 Golang控制協程執行順序方法詳解_Golang
- 2022-05-20 淺談redis的過期時間設置和過期刪除機制_Redis
- 2022-04-30 DataGridView不顯示最下面的新行、判斷新增行、刪除行操作_C#教程
- 2022-10-23 Python中unittest的數據驅動詳解_python
- 2022-06-02 C語言基于EasyX庫實現有圖形界面時鐘_C 語言
- 2022-08-30 關于Flask高級_內置信號的介紹和兩個小實例
- 2021-10-12 shell實現Fisher–Yates?shuffle洗牌算法介紹_linux shell
- 2023-03-21 Mongodb?用戶權限管理及配置詳解_MongoDB
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支