Docker容器入門及進階實戰(一) Docker基礎及Docker阿里雲服務器實戰

概述

微服務架構

微服務是一種設計思想,是將單體的系統拆分爲多個小型獨立的系統,各個服務都獨立開發、部署、測試。服務之間通過輕量級通信協議進行通訊協作。

微服務與傳統單體系統區別

傳統單體系統所有業務實現、前後端代碼都在一個系統,前期開發、部署、測試都比較簡單,隨着業務擴展,系統逐漸變更臃腫,單體系統的擴展和維護變得困難。而微服務則是爲了解決系統臃腫問題,微服務根據不同功能模塊將系統拆分爲多個服務,每個服務都在獨立的進程運行,有穩定的邊界,不會影響其他系統。

爲什麼要使用Docker

容器技術的優勢

  1. 強隔離性: 使用Docker之前,項目部署交互基本採用虛擬機模式,在虛擬機部署各種依賴環境和web容器,將項目打包並上傳到虛擬機然後逐個進行部署,虛擬機下各個應用互相影響,部署啓動單個應用會影響虛擬機下所有應用。而Docker將應用封裝到容器裏,包含應用代碼、運行環境、依賴庫、配置文件等資源,容器之間打到進程級隔離,在容器中操作不會影響宿主機和其他容器。
  2. 彈性伸縮: 使用Docker之前,要擴展服務器,需要運維進行一堆虛擬機環境安裝,擴展成本較高,而Docker將運行環境、配置等資源都封裝到容器中,由於配合現在雲服務,完全實現隨開隨關的彈性伸縮。
  3. 保證環境一致性: 基於Docker容器技術,可以實現開發、測試、線上環境的統一化和標準化。
  4. 秒級交付和部署: 隨着現在k8s的流行、發佈管理、資源管理、編排技術等的發展,結合CI/CD可以實現項目的秒級交付和部署。
  5. 高效的資源利用: Docker容器技術非常輕量,相對於傳統虛擬機體量,Docker容器化技術能加節省服務器資源。同時Docker無需預先設置容量,配合合理的資源管理平臺,能夠更加有效的利用資源。

Docker和虛擬機

指標 虛擬機 Docker
佔服務器空間 非常大,GB級 小,MB甚至KB
啓動速度 慢,分鐘級 啓動快,秒級
運行形式 運行在Hypevisor上 直接運行在宿主機內核上,共享內核
並  發   數 少,一臺宿主機通常十幾個,最多幾十個 多,上百個甚至多百上千
性能 低於宿主機 接近宿主機本地進程
資源利用 共享內核,高效利用資源

通過對比可以看出Docker在啓動、性能、併發數、資源利用上明顯優於虛擬機。

什麼是Docker?

Docker是開源容器化引擎,是目前最流行的linux容器化解決方案。開發者通過Docker將應用程序、運行環境、依賴包、配置文件等資源打包封裝在可移植的容器中,然後發佈在任何流行的Linux和Windows機器上,也可以做虛擬化。Docker安全使用沙箱機制,相互之間不會有任何關聯。

Docker組成及架構

一個完整Docker由以下幾個部分組成:

  • Docker Clinet
  • Docker Daemon 守護進程
  • Docker image Docker鏡像
  • Docker Container 容器

                                                    (Docker2019工作機制)

Docker2019相對於Docker2013主要新增了兩個主要組件,一個是容器生命週期中管理容器的Containerd,另一個是符合OCI標準的運行時(Runc),用於創建容器的最低用戶級抽象(替換Docker2013 LXC)。

Docker 安裝

環境:Linux環境中的CentOS 7.X以上版本 + 阿里雲ES

步驟:

使用yum進行安裝
step1 購買阿里雲ES
使用阿里雲需要注意幾點:
1 設置實例密碼方便遠程連接
2 鏡像實例CentOS需要選擇7.x以上版本,Docker只支持7.x以上
3 需要安全組,安全組-配置策略-配置需要訪問端口
step2 遠程連接阿里雲實例
step3 更新依賴組件
yum update
step4 安裝必要系統工具
yum install -y yum-utils device-mapper-persistent-data lvm2
step5 設置軟件源爲阿里雲
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
step6 安裝Docker
yum makecache fast
yum -y install docker-ce
step7 檢查安裝結果
docker -v
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# docker -v
Docker version 19.03.8, build afacb8b

Docker啓動與停止

Docker 啓動
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# systemctl start docker
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
Docker 重啓
systemctl restart docker
Dokcer 停止
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# systemctl stop docker
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

容器創建與啓動

step1 設置ustc鏡像源
爲了加速Dokcer鏡像速度,可以陪着鏡像加速器。
阿里雲控制檯-產品與服務-彈性計算-容器鏡像服務-鏡像中心-鏡像加速器
複製命名到服務器執行即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://r3k6vgz4.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
查看容器
docker images
拉取鏡像
docker pull 鏡像名字 鏡像版本(可選,不帶版本默認拉取latest)

DockerUI安裝---安裝Portainer 

Docker圖形管理頁面主要有三類: DockerUI、Portainer 和Shipyard

step1 查詢DocherUI Portainer鏡像
docker search Portainer
step2 選擇自己喜歡UI版本進行下載安裝
docker pull portainer/portainer
step3 啓動UI
命令解讀    run命令 自定義端口號:PortainerUI默認端口號 -v 目錄掛載   
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test portainer/portainer
step4 查看容器
查看所有容器
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                    NAMES
ded1649a1495        portainer/portainer   "/portainer"        12 seconds ago      Up 11 seconds       0.0.0.0:9000->9000/tcp   prtainer-test
查看運行中容器
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                    NAMES
ded1649a1495        portainer/portainer   "/portainer"        40 seconds ago      Up 40 seconds       0.0.0.0:9000->9000/tcp   prtainer-test
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# 
step5 訪問UI
阿里雲ES公網IP+UI端口(PS,這裏需要事先設置安全組9000端口可訪問)

tomcat容器安裝及部署應用

step1 docker hub官方查詢鏡像
https://hub.docker.com/   --------->search tomcat
step2 選擇合適版本下載安裝  這裏選擇8.5.54-jdk8-openjdk
docker pull tomcat:8.5.54-jdk8-openjdk
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# docker images
REPOSITORY            TAG                   IMAGE ID            CREATED             SIZE
tomcat                8.5.54-jdk8-openjdk   eb2cfb95e04d        2 weeks ago         529MB
portainer/portainer   latest                2869fc110bf7        7 weeks ago         78.6MB
[root@iZm5eawdclf0uzo2gxfi6uZ ~]# 
step3 啓動tomcat
docker run -di --name=mytomcat -p 8081:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:8.5.54-jdk8-openjdk

elaticsearch安裝

step1 拉取es鏡像
docker pull elasticsearch
step2 運行es(創建單節點)
docker run -id --name=elasearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
step3 配置跨域
進入容器修改配置
docker exec -it elasearch /bin/bash
修改ElasticSearch.yml在最後面加兩行代碼
http.cors.enabled: true
http.cors.allow-origin: "*"
==================================
注意新創建阿里雲ES需要命名都需要安裝
安裝sz
安裝vim  使用apt安裝
更新依賴
apt-get update  
安裝 
apt-get install vim
==================================
step4 重啓es
docker restart elasearch
step5 安裝es可視化管理UI
docker pull mobz/elasticsearch-head:5
step6 啓動ESUI
docker run -d --name=es-admin -p 9100:9100 mobz/elasticsearch-head:5
step7 訪問UI

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章