校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 十分鐘學會用docker部署微服務

十分鐘學會用docker部署微服務

熱門標簽:外呼系統打哪顯哪 AI電銷機器人 源碼 江西外呼系統 湖北ai智能電銷機器人 新邵電銷機器人企業 新科美甲店地圖標注 高德地圖標注論壇 北海市地圖標注app 蘭州ai電銷機器人招商

2013年發布至今, Docker 一直廣受矚目,被認為可能會改變軟件行業。

但是,許多人并不清楚 Docker 到底是什么,要解決什么問題,好處又在哪里?今天就來詳細解釋,幫助大家理解它,還帶有簡單易懂的實例,教你如何將它用于日常開發并用其部署微服務。

一. Docker簡介

Docker是一個開源的容器引擎,它有助于更快地交付應用。 Docker可將應用程序和基礎設施層隔離,并且能將基礎設施當作程序一樣進行管理。使用 Docker可更快地打包、測試以及部署應用程序,并可以縮短從編寫到部署運行代碼的周期。

Docker的優點如下:

1. 簡化程序

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。

2. 避免選擇恐懼癥

如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。

3. 節省開支

一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

二. Docker架構

 

Docker daemon( Docker守護進程)

Docker daemon是一個運行在宿主機( DOCKER-HOST)的后臺進程。可通過 Docker客戶端與之通信。

Client( Docker客戶端)

Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標識,并與 Docker daemon通信。圖中, docker build等都是 Docker的相關命令。

Images( Docker鏡像)

Docker鏡像是一個只讀模板,它包含創建 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤可以安裝系統,同理,使用Docker鏡像可以運行 Docker鏡像中的程序。

Container(容器)

容器是鏡像的可運行實例。鏡像和容器的關系有點類似于面向對象中,類和對象的關系。可通過 Docker API或者 CLI命令來啟停、移動、刪除容器。

Registry

Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動復制。此時可借助 Docker Registry來避免鏡像的手動復制。

一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker鏡像。這跟 Maven的倉庫有點類似,如果把 Docker Registry比作 Maven倉庫的話,那么 Docker倉庫就可理解為某jar包的路徑,而鏡像標簽則可理解為jar包的版本號。

三. Docker安裝

Docker 是一個開源的商業產品,有兩個版本:社區版(Community Edition,縮寫為 CE)和企業版(Enterprise Edition,縮寫為 EE)。企業版包含了一些收費服務,個人開發者一般用不到。下面的介紹都針對社區版。

Docker CE 的安裝請參考官方文檔。以下列出不同操作系統的安裝方法

  • Mac
  • indows
  • Ubuntu
  • Debian
  • CentOS
  • Fedora
  • 其他 Linux 發行版

我們這里以CentOS為例:

1、Docker 要求 CentOS 系統的內核版本高于 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。

通過 uname -r 命令查看你當前的內核版本

# uname -r

2、使用 root 權限登錄 Centos。確保 yum 包更新到最新。

# yum -y update

3、卸載舊版本(如果安裝過舊版本的話)

# yum remove docker docker-common docker-selinux docker-engine

4、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

# yum install -y yum-utils device-mapper-persistent-data lvm2

5、設置yum源

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、可以查看所有倉庫中所有docker版本,并選擇特定版本安裝

# yum list docker-ce --showduplicates | sort -r

7、安裝docker

# sudo yum install -y docker-ce #由于repo中默認只開啟stable倉庫,故這里安裝的是最新穩定版18.03.1

8、啟動并加入開機啟動

# systemctl start docker

# systemctl enable docker

9、驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

# docker version

10、卸載docker

# yum -y remove docker-engine

四. Docker常用命令

(一) .鏡像相關命令

1、搜索鏡像

可使用 docker search命令搜索存放在 Docker Hub(這是docker官方提供的存放所有docker鏡像軟件的地方,類似maven的中央倉庫)中的鏡像。執行該命令后, Docker就會在Docker Hub中搜索含有 java這個關鍵詞的鏡像倉庫。

# docker search java

以上列表包含五列,含義如下:

  • NAME:鏡像倉庫名稱。
  • DESCRIPTION:鏡像倉庫描述。
  • STARS:鏡像倉庫收藏數,表示該鏡像倉庫的受歡迎程度,類似于 GitHub的 stars0
  • OFFICAL:表示是否為官方倉庫,該列標記為[0K]的鏡像均由各軟件的官方項目組創建和維護。
  • AUTOMATED:表示是否是自動構建的鏡像倉庫。

注意:使用docker查找或下載鏡像可能會超時,所以我們需要為docker配置國內的鏡像加速器

我們可以借助阿里云的鏡像加速器,登錄阿里云(https://cr.console.aliyun.com/#/accelerator )

可以看到鏡像加速地址如下圖:

# cd /etc/docker

查看有沒有 daemon.json。這是docker默認的配置文件。

如果沒有新建,如果有,則修改。

# vim daemon.json 
{
  "registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]
}

保存退出并重啟docker服務

# service docker restart

2、下載鏡像

使用命令docker pull命令即可從 Docker Registry上下載鏡像,執行該命令后,Docker會從 Docker Hub中的 java倉庫下載最新版本的 Java鏡像。如果要下載指定版本則在java后面加冒號指定版本,例如:docker pull java:8

# docker pull java:8

 

3、列出鏡像

使用 docker images命令即可列出已下載的鏡像

# docker images

以上列表含義如下

  • REPOSITORY:鏡像所屬倉庫名稱。
  • TAG:鏡像標簽。默認是 latest,表示最新。
  • IMAGE ID:鏡像 ID,表示鏡像唯一標識。
  • CREATED:鏡像創建時間。
  • SIZE: 鏡像大小。

4、刪除本地鏡像

使用 docker rmi命令即可刪除指定鏡像

# docker rmi java

(二) .容器相關命令

1、新建并啟動容器

使用以下docker run <鏡像名>命令即可新建并啟動一個容器,該命令是最常用的命令,它有很多選項,下面將列舉一些常用的選項。

# docker run -d -p 91:80 nginx

這樣就能啟動一個 Nginx容器。在本例中,為 docker run添加了兩個參數,含義如下:

  • -d 后臺運行
  • -p 宿主機端口:容器端口 #開放容器端口到宿主機端口

訪問http://Docker宿主機 IP:91/,將會看到nginx的主界面如下:

需要注意的是,使用 docker run命令創建容器時,會先檢查本地是否存在指定鏡像。如果本地不存在該名稱的鏡像, Docker就會自動從 Docker Hub下載鏡像并啟動一個 Docker容器。

該命令還有一個網絡配置參數,如下所示

  • --net選項:指定網絡模式,該選項有以下可選參數:
  • --net=bridge:默認選項,表示連接到默認的網橋。
  • --net=host:容器使用宿主機的網絡。
  • --net=container:NAME-or-ID:告訴 Docker讓新建的容器使用已有容器的網絡配置。
  • --net=none:不配置該容器的網絡,用戶可自定義網絡配置。

2、列出容器

用 docker ps命令即可列出運行中的容器

# docker ps

如需列出所有容器(包括已停止的容器),可使用-a參數。該列表包含了7列,含義如下

  • CONTAINER_ID:表示容器 ID。
  • IMAGE:表示鏡像名稱。
  • COMMAND:表示啟動容器時運行的命令。
  • CREATED:表示容器的創建時間。
  • STATUS:表示容器運行的狀態。UP表示運行中, Exited表示已停止。
  • PORTS:表示容器對外的端口號。
  • NAMES:表示容器名稱。該名稱默認由 Docker自動生成,也可使用 docker run命令的--name選項自行指定。

3、停止容器

使用 docker stop <容器id>命令,即可停止容器

# docker stop f0b1c8ab3633

其中f0b1c8ab3633是容器 ID,當然也可使用 docker stop容器名稱來停止指定容器

4、強制停止容器

可使用 docker kill <容器id>命令發送 SIGKILL信號來強制停止容器

# docker kill f0b1c8ab3633

5、啟動已停止的容器

使用docker run命令,即可新建并啟動一個容器。對于已停止的容器,可使用 docker start <容器id>命令來啟動

# docker start f0b1c8ab3633

6、查看容器所有信息

使用命令docker inspect <容器id>

# docker inspect f0b1c8ab3633

7、查看容器日志

使用命令docker container logs <容器id>

# docker container logs f0b1c8ab3633

8、查看容器里的進程

使用命令docker top <容器id>

# docker top f0b1c8ab3633

9、進入容器

使用docker container exec -it <容器id> /bin/bash命令用于進入一個正在運行的docker容器。如果docker run命令運行容器的時候,沒有使用-it參數,就要用這個命令進入容器。一旦進入了容器,就可以在容器的 Shell 執行命令了

# docker container exec -it f0b1c8ab3633 /bin/bash

10、刪除容器

使用 docker rm命令即可刪除指定容器

# docker rm f0b1c8ab3633

該命令只能刪除已停止的容器,如需刪除正在運行的容器,可使用-f參數

(三) .構建自己的docker鏡像

使用Dockerfile構建自己的Docker鏡像

Dockerfile是一個文本文件,其中包含了若干條指令,指令描述了構建鏡像的細節

先來編寫一個最簡單的Dockerfile,以前文下載的Nginx鏡像為例,來編寫一個Dockerfile修改該Nginx鏡像的首頁

1、新建文件夾/app,在app目錄下新建一個名為Dockerfile的文件,在里面增加如下內容:

FROM nginx #從本地的鏡像倉庫里拉取ngxin的docker鏡像 
RUN echo 'This is QingFeng Nginx!!!' > /usr/share/nginx/html/index.html #修改ngxin的docker鏡像的首頁內容

該Dockerfile非常簡單,其中的 FORM、 RUN都是 Dockerfile的指令。 FROM指令用于指定基礎鏡像, RUN指令用于執行命令。

2、在Dockerfile所在路徑執行以下命令構建我們自己的ngxin鏡像,構建完可用docker images命令查看是否已生成鏡像ngxin:tuling:

# docker build -t nginx:qingfeng .

其中,-t指定鏡像名字,命令最后的點(.)表示Dockerfile文件所在路徑

3、執行以下命令,即可使用該鏡像啟動一個 Docker容器

# docker run -d -p 92:80 nginx:qingfeng

4、訪問http://Docker宿主機IP:92/,可看到下圖所示界面,

Dockerfile的文件編寫還有如下常用指令

注意:RUN命令在 image 文件的構建階段執行,執行結果都會打包進入 image 文件;CMD命令則是在容器啟動后執行。另外,一個 Dockerfile 可以包含多個RUN命令,但是只能有一個CMD命令。

注意:指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否則它會覆蓋CMD命令。

(四) .使用Dockerfile構建微服務鏡像

以spring boot項目ms-eureka-server(源碼在最后)為例,該項目就是一個spring cloud eureka的微服務項目,該項目可通過spring boot的maven插件打包成可執行的jar包運行,如下圖所示

將該項目的可執行jar包構建成docker鏡像:

1、將jar包上傳linux服務器/app/eureka目錄,在jar包所在目錄創建名為Dockerfile的文件

2、在Dockerfile中添加以下內容

# 基于哪個鏡像

From java:8

# 復制文件到容器

ADD microservice-eureka-server-0.0.1-SNAPSHOT.jar /app.jar

# 聲明需要暴露的端口

EXPOSE 8761 # 微服務項目的啟動端口

# 配置容器啟動后執行的命令

ENTRYPOINT ["java","-jar","/app.jar"]

3、使用docker build命令構建鏡像

# docker build -t microservice-eureka-server:0.0.1 .

# 格式: docker build -t 鏡像名稱:標簽 Dockerfile的相對位置

在這里,使用-t選項指定了鏡像的標簽。執行該命令后,終端將會輸出如下的內容

4、啟動鏡像,加-d可在后臺啟動

# docker run -p 8761:8761 microservice-eureka-server:0.0.1

5、訪問http://Docker宿主機IP:8761/,可正常顯示微服務Eureka Server的首頁

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:池州 海南 大理 阿克蘇 南陽 黔東 黃石 自貢

巨人網絡通訊聲明:本文標題《十分鐘學會用docker部署微服務》,本文關鍵詞  十分鐘,學,會用,docker,部署,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《十分鐘學會用docker部署微服務》相關的同類信息!
  • 本頁收集關于十分鐘學會用docker部署微服務的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    自拍偷拍亚洲欧美日韩| 欧美偷拍一区二区| 欧美三区在线观看| 亚洲一区免费观看| 欧美日韩在线综合| 精品影院一区二区久久久| 日韩精品中午字幕| 国产成人在线视频播放| 国产精品久久久久久久久搜平片| 成人av影视在线观看| 亚洲欧美电影一区二区| 日韩欧美国产一区在线观看| 国产成人在线视频网站| 亚洲国产欧美一区二区三区丁香婷| 91精品国产综合久久小美女| 国产传媒一区在线| 午夜免费欧美电影| 欧美国产在线观看| 欧美一区欧美二区| 91亚洲国产成人精品一区二区三 | 亚洲精选视频免费看| 91精品啪在线观看国产60岁| 国产成人精品免费在线| 偷拍亚洲欧洲综合| 国产精品私人影院| 4438x成人网最大色成网站| 国产成人免费在线观看| 视频一区二区欧美| 亚洲制服欧美中文字幕中文字幕| 久久久亚洲高清| 欧美日韩激情一区| av激情综合网| 国产精品系列在线播放| 天天操天天干天天综合网| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩国产首页| 在线观看一区二区精品视频| 国产69精品一区二区亚洲孕妇| 麻豆成人av在线| 日韩和欧美的一区| 亚洲成人在线观看视频| 亚洲视频一区在线观看| 欧美激情综合在线| 久久久www成人免费毛片麻豆| 精品欧美乱码久久久久久1区2区| 欧美日韩国产高清一区二区三区| 欧美在线一二三| 91极品美女在线| 91香蕉视频黄| 色综合视频在线观看| 99久久婷婷国产综合精品| av午夜一区麻豆| 91网站最新网址| 91丨porny丨最新| 91麻豆高清视频| 91国偷自产一区二区开放时间| 91在线视频官网| 91在线视频观看| 在线观看亚洲专区| 欧美日韩国产另类一区| 宅男噜噜噜66一区二区66| 精品视频一区二区三区免费| 欧美日韩日本视频| 欧美mv日韩mv国产网站app| 精品久久久久久久久久久久久久久 | 日韩午夜电影在线观看| 国产成人8x视频一区二区| 国产精品资源网| 国产精品一区二区三区四区| 国产乱妇无码大片在线观看| 国产91对白在线观看九色| 成人av电影免费在线播放| 波多野结衣中文一区| 成人av高清在线| 欧美日本一区二区在线观看| 日韩欧美你懂的| 国产欧美精品区一区二区三区| 亚洲欧美在线观看| 婷婷六月综合网| 国产麻豆精品在线| 一本色道久久综合精品竹菊| 欧美精品xxxxbbbb| 91免费国产视频网站| 91黄色激情网站| 日韩一级欧美一级| 中文字幕在线不卡视频| 性欧美疯狂xxxxbbbb| 狠狠色狠狠色综合系列| 99re66热这里只有精品3直播 | 亚洲欧美一区二区不卡| 天天av天天翘天天综合网色鬼国产| 久久66热re国产| 色呦呦网站一区| 精品少妇一区二区三区日产乱码 | 爽好久久久欧美精品| 亚洲自拍偷拍麻豆| 国产一区二区美女诱惑| 色婷婷av一区二区三区gif| 91精品国产乱| 国产精品视频在线看| 日本中文字幕一区二区视频| 成人a区在线观看| 欧美一区二区在线看| 亚洲视频电影在线| 国产精品一区二区三区99| 欧美日韩1234| 一区二区免费视频| www.av亚洲| 国产香蕉久久精品综合网| 日本中文字幕一区二区视频 | 一区二区三区在线播放| 久久精品国产77777蜜臀| 在线一区二区三区四区| 国产精品对白交换视频 | 中文字幕乱码久久午夜不卡 | 日韩欧美国产午夜精品| 中文幕一区二区三区久久蜜桃| 免费成人美女在线观看.| 色悠悠久久综合| 亚洲人成在线观看一区二区| 成人开心网精品视频| 精品美女一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 6080国产精品一区二区| 亚洲成人一区在线| 欧美日韩亚洲国产综合| 亚洲午夜羞羞片| 欧美日韩中文国产| 日韩成人av影视| 欧美久久免费观看| 日韩va亚洲va欧美va久久| 欧美日韩第一区日日骚| 亚洲成人av一区二区三区| 欧美亚洲动漫精品| 香蕉成人伊视频在线观看| 欧美伊人久久久久久久久影院| 亚洲激情av在线| 成人午夜视频网站| 国产欧美综合色| 不卡视频在线观看| 一区二区三区在线观看国产| 色综合欧美在线| 五月天精品一区二区三区| 91麻豆精品国产91久久久久久久久 | 亚洲成在线观看| 色琪琪一区二区三区亚洲区| 中文字幕一区二区三区乱码在线| 成人激情校园春色| 中文字幕亚洲成人| 色老汉av一区二区三区| 亚洲一区二区三区视频在线 | 国产女人18毛片水真多成人如厕| 国产精品白丝av| 亚洲色图欧洲色图| 666欧美在线视频| 风间由美一区二区三区在线观看| 亚洲免费观看高清完整版在线观看| 在线精品视频一区二区| 日韩中文字幕不卡| 亚洲精品一区二区三区99| av高清不卡在线| 秋霞午夜鲁丝一区二区老狼| 国产亚洲污的网站| 在线免费不卡电影| 国产在线国偷精品免费看| 国产精品国产精品国产专区不片 | 国产欧美一区二区三区在线看蜜臀| 成人午夜av电影| 亚洲成av人片一区二区三区| wwwwxxxxx欧美| 欧美亚一区二区| 国产在线不卡一卡二卡三卡四卡| 亚洲欧美欧美一区二区三区| 日韩精品影音先锋| 91麻豆免费视频| 国产一区二三区| 亚洲3atv精品一区二区三区| 国产欧美在线观看一区| 欧美一区二区三区视频在线| 97久久精品人人爽人人爽蜜臀 | 精品国产一区二区三区av性色| 96av麻豆蜜桃一区二区| 久久99九九99精品| 亚洲高清免费在线| 亚洲欧洲日韩在线| 久久嫩草精品久久久精品一| 欧美日韩视频一区二区| 99热精品国产| 国产一区二区三区四区五区美女 | 国产大陆亚洲精品国产| 久久er精品视频| 天堂va蜜桃一区二区三区漫画版| 国产精品欧美一级免费| 精品美女被调教视频大全网站| 欧美日韩国产一区| 欧美日韩一区二区不卡| 欧洲精品在线观看| 99久久久国产精品免费蜜臀| 国产精品99久久久久| 国产中文字幕精品|