docker_01

拆尼斯、帕丁顿發表於2024-03-12

專案演示

https://gitee.com/pear-admin/pear-admin-flask


# 專案2
    - pycharm開啟
    - 安裝依賴 pip install -r requirements.txt
    - 開啟models,建立資料庫
        註釋掉 解開註釋
    -在命令列中執行
    -在命令中執行:python manage.py runserver
    
    -開啟http://127.0.0.1:5000

docker介紹

什麼是虛擬化

 在計算機中,虛擬化(英語:Virtualization)是一種資源管理技術,是將計算機的各種實體資源,如伺服器、網路、記憶體及儲存等,予以抽象、轉換後呈現出來,打破實體結構間的不可切割的障礙,使使用者可以比原本的組態更好的方式來應用這些資源。這些資源的新虛擬部份是不受現有資源的架設方式,地域或物理組態所限制。一般所指的虛擬化資源包括計算能力和資料儲存


在實際的生產環境中,虛擬化技術主要用來解決高效能的物理硬體產能過剩和老的舊的硬體產能過低的重組重用,透明化底層物理硬體,從而最大化的利用物理硬體  對資源充分利用

虛擬化技術種類很多,例如:軟體虛擬化、硬體虛擬化、記憶體虛擬化、網路虛擬化(vip)、桌面虛擬化、服務虛擬化、虛擬機器等等。


# 虛擬化技術名詞
# kvm,vmware :軟體--》虛擬化軟體---》作業系統上裝了這個軟體後---》虛擬化出一臺臺機器
# openstack :web管理頁面---》對虛擬化的機器進行管理---》建立,銷燬,增加 機器


# 阿里飛天 :阿里自研的類似於 openstack的東西
# docker :接下來要學習,容器技術
# k8s :容器管理,容器編排


公司購買了很多臺實體伺服器---——》 裝k8s  裝docker

什麼是Docker

Docker 是一個開源專案,誕生於 2013 年初,最初是 dotCloud 公司內部的一個業餘專案。它基於 Google 公司推出的 Go 語言實現。 加了 Linux 基金會,遵從了 Apache 2.0 協議,專案程式碼在上進行維護。

docker 容器管理 
    -docker swarm
    -k8s

Docker 的基礎是 Linux 容器(LXC)等技術

docker 和傳統虛擬機器比較

# docker 不需要虛擬化出 作業系統這一層---》更輕量級--佔空間更新---》還能實現隔離

# 虛擬機器技術的缺點:
    1.資源佔用太多
    2.冗餘步驟多
    3.啟動很

# 容器化技術
1.伺服器資源利用率高
2.比較輕量化
3.打包映象測試,一鍵執行



比較Docker和虛擬機器技術不同:
​ 1.傳統虛擬機器,虛出一條硬體,執行一個完整的作業系統,然後在這個系統上安裝和執行軟體
​ 2.容器內的應用之間執行在 宿主機的內容,容器是沒有自己的核心的,也沒有虛擬我們的硬體,所以久輕便了
​ 3.每個容器間是互相隔離的,每個容器內都有屬於自己的檔案系統,互不影響
​ 4.安全性,docker的安全性更弱,
​ 5.與虛擬機器相比,docker隔離性更弱,docker屬於程序之間的隔離,虛擬機器可實現系統級別隔離

​ 7docker建立時秒級的,docker的快速迭代性,無論是開發、測試、部署都可以節約大量時間

docker 架構

# cs 架構---》客戶端服務端
    - c 端:使用者操作,輸入命令
    - s端:接收使用者命令,執行
    -c、s通訊,使用http協議,遵循restful規範
        -mysql:tcp---》自定義的
        -redis:tcp---》自定義的
        
        
  # 架構
    1 client:客戶端,輸入命令
    2 服務端:
        containers:容器
        images:映象--》從註冊中心下來下來的
        
    3 register:註冊中心
        -放了很多映象--》redis,nginx,mysql

docker 安裝和配置

# 有臺虛擬機器---》買個阿里雲伺服器:按量付費  有ip
# centos7.9 系統 
10.0.0.110  
root
123


# 遠端連結:
    finalshell:免費的
    xshell :只能win用,收費
    命令視窗:git bash建立
    
    
# 先遠端連結到centos上
    git bash裡 :ssh root@10.0.0.110     輸入密碼連線上即可
    
    finalshell: 圖形化介面連結
        -地址
        -使用者名稱
        -密碼 
        
# docker : mac, win,Linux:centos,烏班圖


### 安裝:
    -解除安裝:
        yum remove docker docker-common  docker-selinux docker-engine
        rm -rf /var/lib/docker
    -安裝    
       yum update
       yum install -y yum-utils device-mapper-persistent-data lvm2  # 下載一些依賴
       yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      yum install docker-ce -y
    
    
    - 驗證
        docker -v
##  執行docker-ce
    systemctl status docker # 檢視docker軟體執行狀態
    
    systemctl start docker  #啟動docker
    
    systemctl restart docker # 重啟
    systemctl stop docker  # 停止






### 配置國內源---》下載映象--》速度會快

# 遠端倉庫在國外[python 下第三方模組:pypi上---》配置國內映象站]
# 使用國內源,下載映象時,速度會快---》阿里雲
# 參照阿里雲提供的筆記做:https://cr.console.aliyun.com/cn-shanghai/instances/mirrors


sudo mkdir -p /etc/docker # 如果有,就不需要建立了
vi /etc/docker/daemon.json 
# 加入
{
  "registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}
# 按 esc
# 輸入  :wq  敲回車


# 儲存退出
systemctl daemon-reload   # 重新載入docker配置
systemctl restart docker  # 重啟docker

映象和容器

# 映象:images
    -一堆檔案---》目前咱們從register---》下載---》放在宿主機(centos 7.9機器)
    -類比:虛擬上裝系統
        - 作業系統檔案 xx.iso--->裝在虛擬機器上
        - 映象你當成 xx.iso 作業系統檔案
        -把iso裝在不同虛擬機器中---》啟動---》多臺有作業系統的機器
# 容器:container
    -映象執行---》執行成容器
    -類比:
        -容器當成一個正在執行的作業系統
    -一個映象,可以執行成多個容器
    
    
    
# python物件導向
    類:映象
    物件:例項化得到多個物件,每個物件間獨立的
    
    
    
# 以後一個容器,你們當成 :一個作業系統+軟體--》正在執行  

docker映象操作

# 0 搜尋映象
    -去網站搜:https://hub.docker.com/ 
    -使用命令列搜:docker search mysql
    
# 1 獲取映象,拉去映象---》從register下載到本地--》阿里雲映象站--》加速拉取
    docker pull mysql:5.7 # 下載mysql 5.7映象
    docker pull redis:latest # 下載redis最新的映象
    docker pull nginx:latest  # 下載 nginx最新的映象
    docker pull centos:centos7  # 下載 nginx最新的映象
    
# 2 檢視映象
    docker images

# 3 刪除映象
    docker rmi redis:latest

註冊並登入到遠端倉庫

# gitee--->遠端倉庫---》原生代碼---》提交
    -登入進入可以看到你開源的專案
    
# docker--》hub.docker-->映象----》我們自己的映象,也可以傳上去,給所有人用
    -登入進入:就能看到你傳的映象

    
# 註冊一個hub.docker 的賬號
# 登入進入
# 上傳你的映象
    -0 登入
        docker login
        
    -1 給映象打個標籤
        docker tag 本地映象名:標籤  你的名字/映象名字:標籤
        docker tag redis:latest   liuqingzheng/rredis:vv1
        
    -2 上傳到遠端倉庫
    docker push liuqingzheng/rredis:vv1

docker容器操作

# 把映象執行成容器,並且一個映象,可以執行出多個容器


# 把centos7 執行成容器
# --name=centos7 容器名
# run :建立並執行
# -di :建立出容器並執行,命令列還在宿主機
docker run  -di --name=centos77 centos:centos7




# 檢視正在執行的容器
    docker ps
# 檢視所有容器
    docker ps -a
# 檢視最後一次執行的容器
     docker ps -l
    
# 啟動停止的容器
    docker start id/名字

# 停止執行的容器
    docker stop 7d5e

# 停止所有在執行的容器
    docker stop `docker ps -q`
    
    
# 刪除容器
    docker rm 容器id
    
# 記住四條:
    docker ps
    docker ps -a
    docker start
    docker stop
    
    
    
# 進入到容器內部
docker exec -it 容器id /bin/bash
docker exec -it 90fd0665494f /bin/bash

# 在centos的容器中安裝mysql 3.9 
    -不是在宿主機上裝
    -容器中

相關文章