Docker ----基本管理
一.Docker 介紹
【1】.Docker
Docker 是一個開源的應用容器引擎:讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發佈到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。是一個輕量級的“虛擬機”,容器是完全使用沙箱機制,相互之間不會有任何接口。
【2】.Docker與虛擬機的區別
相同點:
1.可在不同的主機之間遷移
2.都具備root的權限
3.都可以遠程操作和控制
4.都有備份,回滾操作
不同點:
1.操作系統上:
**docker**:在性能上有優勢,可以輕易的運行多個操作系統;
虛擬機:可以安裝任何系統,但是性能不及容器。
2.原理:
docker:和宿主機共享內核,所有容器運行在容器引擎之上,容器並非一個完整的操作系統,所有容器共享操作系統,在進程級進行隔離。
虛擬機:每一個虛擬機都建立在虛擬的硬件之上,提供指令級的虛擬,具備一個完整的操作系統。
3.優點:
docker:高效、集中。一個硬件節點可以運行數以百計的的容器,非常節省資源,QoS 會盡量滿足,但不保證一定滿足。內核由提供者升級,服務由服務提供者管理。
虛擬機:對操作系統具有絕對權限,對系統版本和系統升級具有完全的管理權限。具有一整套的的資源:CPU、RAM 和磁盤。QoS 是有保證的,每一個虛擬機就像一個真實的物理機一樣,可以實現不同的操作系統運行在同一物理節點上。
4.缺點:
docker:對內核沒有控制權限,只有容器的提供者具備升級權限。只有一個內核運行在物理節點上,幾乎不能實現不同的操作系統混合。容器提供者一般僅提供少數的幾個操作系統。
虛擬機:每一臺虛擬機都具有更大的負載,耗費更多的資源,用戶需要全權維護和管理。一臺物理機上能夠運行的虛擬機非常有限。
【3】.Docker 的使用場景
打包應用程序簡化部署
可脫離底層硬件任意遷移
【4】.核心概念
鏡像,容器,倉庫
二.centos安裝Docker環境
【1】.Centos 安裝Docker 的兩種方式:
使用 curl 獲得 Docker 的安裝腳本進行安裝;
使用 yum 倉庫來安裝 Docker(推薦使用!!!)。
【2】.安裝部署19版的docker
【1】 安裝依賴包
yum install yum-utils device-mapper-persistent-data lvm2 -y
【2】 設置阿里雲鏡像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
【3】 安裝Docker-CE社區版本
yum install docker-ce -y
【4】 關閉核心防護
setenforce 0
### 永久關閉防火牆(網絡資源控制時,暫時不關閉)
vim /etc/sysconfig/selinux
SELINUX=disabled
【5】 啓動docker
systemctl start docker.service
systemctl enable docker.service
【6】查看docker存放的位置和環境變量(默認能識別的路徑)
which docker
/usr/bin/docker
echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
【3】.鏡像加速(環境優化)
此操作會讓我們下載鏡像時,速度會有明顯的加速
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0eu67kas.mirror.aliyuncs.com"]
}
EOF
### /etc/docker/生成一個daemon.json
### 重新加載進程
systemctl daemon-reload
systemctl restart docker
【4】.網絡優化
//數據轉換
vim /etc/sysctl.conf ### 末尾添加
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker
這樣Docker的基本環境搭建好了 !~!
三.鏡像的基本命令
【1】查看版本
docker version
【2】搜索鏡像
docker search 鏡像名
docker search nginx
【3】下載鏡像
docker pull 鏡像
docker pull nginx
## 下載後存在在 cd /var/lib/docker/image/overlay2/
[root@localhost overlay2]# ls
distribution imagedb layerdb repositories.json
【4】查看已經下載的鏡像
docker images
【5】獲取鏡像信息
docker inspect 鏡像的ID
【6】創建鏡像新標籤
docker tag 鏡像標籤 新的標籤
docker tag nginx:latest nginx:new
【7】刪除鏡像
docker rmi 鏡像:標籤
docker rmi nginx:new
【8】把鏡像存放到指定的路徑或目錄或文件下
docker save -o /路徑/文件名 鏡像名稱:標籤
docker save -o /opt/nginx nginx:latest
【9】載入鏡像(前提鏡像刪除後)
docker load < 文件名
docker load < nginx
四.容器的基本命令
【1】創建容器
docker create -it 鏡像名稱 /bin/bash
-i:容器的標準輸入保持打開
-t:讓docker分配一個僞終端
docker create -it nginx:latest /bin/bash
【2】查看容器
docker ps -a
// -a:列出最近一次啓動的容器
【3】啓動容器
docker start 容器ID
docker start 0660ae2f54b8
【4】停止容器
docker stop 容器ID
【5】進入容器
第一種:docker run -it 鏡像名稱 /終端
docker run -it nginx:latest /bin/bash
root@6d339ab9beec:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
// 退出容器:exit
第二種:docker exec -it 容器ID /終端(容器要在開啓狀態)
docker exec -it 0660ae2f54b8 /bin/bash
root@0660ae2f54b8:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
【6】導出容器
docker export 容器ID > 文件名
docker export 0660ae2f54b8 > nginx_a
【7】導入容器
cat 文件名 | docker import - 鏡像
只會生成鏡像,不會創建容器
docker import - nginx:web