日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自动化集成:Docker容器入门简介

發(fā)布時間:2025/3/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动化集成:Docker容器入门简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:該系列文章,圍繞持續(xù)集成:Jenkins+Docker+K8S相關(guān)組件,實現(xiàn)自動化管理源碼編譯、打包、鏡像構(gòu)建、部署等操作;本篇文章主要描述Docker基礎(chǔ)用法

一、Docker簡介

1、基礎(chǔ)描述

Docker作為開源的應(yīng)用容器引擎,可以把應(yīng)用程序和其相關(guān)依賴打包生成一個Image鏡像文件,是一個標準的運行環(huán)境,提供可持續(xù)交付的能力,通過鏡像文件可以創(chuàng)建多個Docker容器,這里可以理解為類創(chuàng)建對象的原理;鏡像文件可以推送到倉庫Repository中,這里可以理解為Git倉庫管理代碼的原理。

2、核心概念

  • Image鏡像:包含應(yīng)用和依賴的類庫,配置等;
  • Container容器:通過鏡像文件創(chuàng)建多個容器,運行打包應(yīng)用;
  • Repository倉庫:存放鏡像文件的云端服務(wù);

鏡像文件與容器,可以理解為基于快照啟動虛擬機;或者類與實例對象的關(guān)系。

3、架構(gòu)原理

Docker基于客戶端-服務(wù)器的架構(gòu)模式,Docker的守護進程(daemon)監(jiān)聽客戶端的請求命令,從而管理鏡像文件、容器等。

二、管理命令

1、查docker信息

# 查看基礎(chǔ)信息 docker info# 查看版本信息 docker version# 查看命令說明 docker --help

2、鏡像文件

基礎(chǔ)命令

# 查看本地鏡像列表 docker images 或者 docker image ls# 搜索鏡像 docker search ImageName# 拉取鏡像 docker image pull ImageName# 刪除鏡像 docker image rm ImageName

推送倉庫

首先在云服務(wù)平臺申請私有的鏡像管理倉庫,并配置好訪問倉庫的賬號和密碼,通過docker命令把本地鏡像文件推送到該倉庫,這里以阿里云為例:

# 1、登錄倉庫 docker login --username=賬戶名 倉庫_url提示輸出倉庫密碼:Login Succeeded# 2、查看本地鏡像 docker images REPOSITORY TAG IMAGE ID CREATED SIZE cloud-app latest b11d221cc3e0 13 seconds ago 662MB# 3、標記上述鏡像 docker tag b11d221cc3e0 倉庫_url/cicada-image/cloud-app:latest# 4、執(zhí)行推送命令 docker push 倉庫_url/cicada-image/cloud-app:latest# 5、拉取該鏡像到本地 docker pull 倉庫_url/cicada-image/cloud-app:latest

注意:cicada-image是倉庫的命名空間,點擊cloud-app可以查看鏡像操作的步驟文檔:

3、容器管理

# 列出正在運行或運行過的容器 docker ps -a# 停止容器運行 docker stop 容器ID# 刪除指定容器 docker rm 容器ID# 刪除全部暫停容器 docker rm -f $(docker ps -a -q)

4、入門案例

- 拉取hello-world鏡像 docker image pull hello-world輸出日志: Using default tag: latest latest: Pulling from library/hello-world- 查看本地鏡像 docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest feb5d9fea6a5 7 weeks ago 13.3kB- 運行hello-world docker container run hello-world輸出日志: Hello from Docker! This message shows that your installation appears to be working correctly.

三、構(gòu)建鏡像

1、Dockerfile

Dockerfile是一個文本文檔,包含構(gòu)建Docker鏡像的指令,通過讀取該腳本中的指令并執(zhí)行,完成相關(guān)build過程。

注意事項

  • 腳本命名Dockerfile并且沒有任何后綴;
  • Docker在構(gòu)建鏡像時,默認識別該文件;
  • 通常腳本文件放在打包工程的根目錄下;

2、基礎(chǔ)樣例

語法說明

  • FROM:指定需要使用的基礎(chǔ)鏡像;
  • MAINTAINER:定義腳本維護者;
  • VOLUME:指定持久化文件目錄;
  • WORKDIR:切換到工作目錄;
  • ADD:將指定文件添加到容器中;
  • COPY:將指定文件復(fù)制到容器中;
  • RUN:鏡像構(gòu)建時執(zhí)行的命令;
  • ENTRYPOINT:容器參數(shù)配置;

使用案例

# 基礎(chǔ)鏡像 FROM java:8# 維護者 MAINTAINER cicadasmile# 持久化目錄 VOLUME /data/docker/logs# 添加應(yīng)用服務(wù)JAR包 ADD auto-client.jar application.jar# 配置參數(shù) ENTRYPOINT ["java","-Dspring.profiles.active=dev","-Djava.security.egd=file:/dev/./urandom","-jar","/application.jar"]

3、構(gòu)建鏡像

項目打包

這里獲取maven項目打包后的jar包,即auto-client.jar包,然后復(fù)制到docker鏡像制作的目錄下,與Dockerfile在同一級。

結(jié)構(gòu)如下

鏡像構(gòu)建命令

docker build -t client-img:latest .

構(gòu)建流程執(zhí)行完之后,查看鏡像列表,上面構(gòu)建的鏡像已經(jīng)存在;

4、運行容器

# 執(zhí)行命令 docker run -d -p 8079:8079 client-img:latest# 查看日志 docker logs 容器ID

訪問容器中應(yīng)用的接口,查看響應(yīng)正常即可。


同系列推薦

  • Jenkins管理工具詳解
  • Pipeline流水語法詳解
  • 微服務(wù)灰度發(fā)布原理
  • 服務(wù)自動化部署和管理
  • 微服務(wù)組件二次淺封裝

四、源代碼地址

GitEE·地址 https://gitee.com/cicadasmile/butte-auto-parent Wiki·地址 https://gitee.com/cicadasmile/butte-java-note

總結(jié)

以上是生活随笔為你收集整理的自动化集成:Docker容器入门简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。