1. docker

2. 虛拟機和容器的差別
- ①:虛拟機是借助于實體機的硬體進行硬體模拟,實作系統級别的隔離,每一台虛拟機模拟出硬體之後需要安裝獨立作業系統,然後再在作業系統上安裝應用程式,容器是程序級别的隔離,通過虛拟化引擎在同一個作業系統上隔離出多個獨立的程序,然後在獨立資源管控的程序容器中安裝應用程式以及應用程式的依賴程式;
- ②: Docker容器啟動速度快(秒級别),虛拟機啟動速度慢(分鐘級);
- ③: Docker容器需要的資源少,和作業系統核心互動性能損耗少;
- ④: Docker更輕量級,消耗的記憶體少,相同硬體條件下Docker運作的鏡像數量遠多于虛拟機;
- ⑤: Docker可以快速的建立和删除,使用友善
缺點:
①: Docker安全性較弱,如果容器租戶具備root權限,可以直接操作主控端,可以進行無限制的操作;
②: Docker集中管理工具還不成熟;
3. Docker的三個基本概念
- Iamge 鏡像: 容器運作時需要的程式、資源、庫、配置檔案的打包;
-
Repository 倉庫:
鏡像存放的位置,鏡像建構完成後,可以很容易的在目前主控端上運作,但是,如果需要在其它伺服器上使用這個鏡像,我們就需要一個集中的存儲、分發鏡像的服務,Docker
Registry 就是這樣的服務。一個 Docker Registry 可以有多個
倉庫(Repository),每個倉庫可以含多個标簽(Tag),每個标簽都是一個鏡像。
-
Container 容器:
鏡像和容器的關系就好比類和對象的關系,同一個鏡像運作多次會得到多個容器執行個體,容器是鏡像運作的實體,容器可以被建立,啟動,停止,删除,暫停等。容器的實質是程序,但是又和宿主的程序不同,容器有自己的獨立命名空間,是以容器擁有自己
root 檔案系統,自己的網絡配置,自己的程序空間,甚至自己的使用者 ID
空間。容器内的程序是運作在一個隔離的環境裡,使用起來,就好像是在一個獨立于宿主的系統下操作一樣。注意,在容器被删除後,容器存儲層儲存的任何資訊都不會儲存,它和容器的生命周期一樣,是以任何需要儲存的資料
Docker 建議儲存在資料卷(Volumes)或者主控端目錄中,這樣資料不會随着容器的消失而消失。
Docker基本安裝
4. Docker安裝
安裝環境準備以及安裝步驟
① 檢測Centos7核心版本
② 如果版本過低建議使用 yum update 更新
③ 更新完成再度進行檢測核心系統是否滿足要求
④ 解除安裝已經安裝的docker舊版本
⑤ 安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
⑥ 設定安裝docker的yum源
官方鏡像位址:
yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
阿裡雲鏡像位址:
yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
⑦ 更新軟體包的索引
yum makecache fast
⑧ 檢視可以安裝的docker版本
yum list docker-ce --showduplicates | sort -r
⑨ 安裝docker ,此處在centos7.4作業系統上安裝最新版本的docker
yum install docker-ce-18.03.1.ce-1.el7.centos
⑩ 啟動并設定開機啟動
systemctl start docker
systemctl enable docker
Systemctl status docker
Systemctl stop docker
11 檢測是否安裝成功
docker version
5. Docker的常用指令
(1) 鏡像相關的指令
① 檢視鏡像: 檢視本地已經存在的鏡像
docker images
或者
docker image list
② 搜尋鏡像: 檢視網際網路中的docker鏡像
docker search image_name
③ 拉取鏡像
docker pull image_name:版本編号
如果在拉取鏡像的時候不指定具體的版本編碼預設會拉取最新的版本,建議通過
hub.docker
網址去搜尋檢視相關鏡像的具體版本,通過指定具體版本拉取自己需要的鏡像
④ 删除鏡像]
docker rmi image_id
docker rmi `docker images -q` 删除所有鏡像
(2) 容器相關的指令
① 檢視容器: 檢視目前正在運作的容器
容器是通過鏡像來建立的,一個鏡像可以建立很多個容器
docker ps -a 檢視所有的容器(包含啟動和非啟動的容器)
② 建立容器
可選的參數選項可以通過
docker run --help
進行檢視
③ 啟動容器
- 僞終端模式啟動
docker run -it --name=自定義的容器名稱 image-name:tag /bin/bash
- 背景程序啟動
docker run -id --name=自定義的容器名 image_name:tag
使用以下指令進入背景啟動的docker容器
docker exec -it 自定義的容器名稱 /bin/bash
④ 停止容器和重新開機容器
docker stop 容器名稱或者id
docker start 容器名稱或者id
⑤ docker常用指令彙總
複制檔案
或者
容器目錄挂載
docker run -id --name=自定義容器名稱 -v 主控端目錄:容器中的目錄 image_name:tag
docker inspect 容器名稱或者容器id
檢視容器配置資訊(基礎配置資訊 挂載資訊 圖形驅動資訊 網絡資訊等)
删除容器:
docker rm 容器名稱或者id
配置容器IP位址
①. 建立自定義網絡
docker network create --subnet=172.20.0.1/24 docker-br0
–subnet: 表示在容器中建立的子網絡的網段
docker-br0 : 表示容器網橋的名稱
②. 建立網橋之後可以使用ifconfig指令檢測
ifconfig
③. 如果不使用該網橋可以删除
docker network rm docker-br-9a740c9440a3
④. 在你自定義的網段選取任意IP位址作為你要啟動容器IP
docker run -id --net docker-br0 --ip 172.20.0.11 --name=mycentos_1 centos:7.4.1708
⑤. 使用docker exec -it 容器名 /bin/bash 進入已啟動的容器,使用 yum install net-tools 下載下傳 iptables 然後使用ifconfig檢視容器ip
⑥. 測試本機和容器是否ping通
⑦. 重複執行④⑤⑥三步的操作重新運作一個容器