SpringCloud筆記七:微服務下Docker
文章目錄
Docker介紹和使用場景
- 什麼是Docker
1、可以快速的部署和啓動應用
2、實現虛擬化,完整資源隔離
3、一次編寫,四處運行(有一個定的限制,比如Docker是基於Linux x64的,無法在32bit的linux/windows/unix環境下使用。)
- 爲什麼用
1、提供一次性的環境,假如需要安裝mysql,則需要安裝很多依賴庫,版本等。如果使用Docker則通過鏡像就可以直接啓動運行。
2、快速動態擴容,使用docker部署了一個應用,可以製作成鏡像,然後通過Docker快速啓動。
3、組建微服務架構,可以在一個機器上模擬出微服務架構,啓動多個應用
4、更好的資源隔離和共享。
總之:開箱即用,快速部署,可移植性強,環境部署。
- 總結什麼是Docker
就是虛擬機的增強版,可以將一個大的服務器,分割成很多小的虛擬機,但是比虛擬機強,因爲可以隨意的給每個小的虛擬機調度系統資源,比如一個服務器有10個核,分了兩個系統,docker可以隨意給其中一個系統增加2個核。
基於go語言開發的,在LCX(linux中類似win中的虛擬機)基礎上進行的封裝。
Centos7安裝Docker
- 查看linux系統版本信息
lsb_release -a
Docker倉庫,鏡像,容器核心知識講解
- 鏡像
Docker 鏡像 -Docker images:
鏡像就是容器運行時的只讀模板,操作系統+軟件運行環境+用戶程序
Docker 容器 -Docker containers:
容器包含了某個應用運行所需要的全部環境。
Docker 倉庫:-Docker registeries:
用來保存鏡像,有公有和私有倉庫,好比maven的中央倉庫和本地私服。
官方鏡像倉庫:https://hub.docker.com/
是通過鏡像創建的容器。
Docker在雲服務器上的實際應用
- 常用命令
安裝部署好Docker後,執行的命令都是docker開頭 xxx是鏡像的名字
搜索鏡像:docker search xxx
列出當前系統存在的鏡像:docker images
拉取鏡像:docker pull xxx
xxx 是鏡像的名字(格式:REPOSITORY:TAG)
REPOSITORY:表示鏡像的倉庫源,TAG:鏡像的標籤。
運行一個容器:
docker run -d --name “rabbit_mq” -p 5672:5672 -p 15672:15672 rabbitmq:management
docker run - 運行一個容器
-d 後臺運行
-p 端口映射
rabbitmq:management (格式:REPOSITORY:TAG),如果不能指定tag,默認使用最新的。
--name 指定容器別名
列舉當前運行的容器:docker ps
檢查容器內部信息:docker inspect 容器名稱
刪除鏡像:docker rmi IMAGE_NAME
強制移出鏡像,不管是否有容器使用該鏡像,增加 - f 參數
停止某個容器:docker stop 容器名稱
啓動某個容器:docker start 容器名稱
移除某個容器:docker rm 容器名稱(容器必須是停止狀態)
啓動docker :systemctl start docker
使用Docker部署Nginx服務器
- 獲取鏡像
docker search nginx
docker run 首先會從本地找鏡像,如果有則直接啓動,沒有的話,從鏡像倉庫拉起,在啓動。
- 列舉和拉取
docker images
docker pull nginx
- 啓動Nginx
docker run -d --name “nginx” -p 8088:80 nginx (或者是IMAGE_ID)
通過修改端口可以啓動多個nginx
curl進行測試
curl “http://127.0.0.1:8088”
會返回前端頁面代碼
構建自己的鏡像倉庫
- 阿里雲鏡像倉庫
- 私有鏡像倉庫
用於存放公司內部的鏡像,不提供給外部使用。
springCloud 開發了一個支付系統–》做成一個鏡像,(操作系統+軟件運行環境+用戶程序)
- 阿里雲構建一個私有鏡像倉庫
在阿里雲容器服務裏面可以構建
- 本地安裝docker
win10可以直接安裝docker,win7需要安裝docker toolbox
- 本地docker,服務器docker和鏡像倉庫的關係
1、本地應用通過docker打成鏡像包,將鏡像包上傳到鏡像倉庫。
2、服務器端通過docker從鏡像倉庫裏面拉取鏡像包
3、服務器啓動鏡像包。
4、同理,服務器也可以打成包,放到鏡像倉庫裏面,提供本地拉取。