Docker的架構原理和安裝以及基本管理(映象與容器的建立,刪除,匯入及匯出 )
這裡寫目錄標題
一,Docker概述
1,Docker是什麼?
-
是一種輕量級“虛擬機器”
-
使用go語言開發的
-
在linux容器裡執行應用的開源工具
-
為什麼docker容器能跨平臺實現?
因為docker引擎,docker-ce的安裝引領 -
Docker三要素:容器,映象,倉庫
2,Docker與虛擬機器的區別
虛擬機器:啟動時間1-3分鐘,佔用的磁碟空間大,安全方面相對安全
容器:啟動時間毫秒,佔用的磁碟空間小,安全方面相對不安全(屬主系統共享核心資源)
虛擬機器:
工作基本原理如下圖所示
基本上就是程式及程式通過虛擬機器VMM平臺呼叫win10系統最底層的硬體環境來執行的一種方式。
容器:
工作基本原理如下:
是在作業系統的基礎通過docker引擎的支援來實現不同平臺的互動,並在容器上可以直接進行倉庫映象的上傳與載入。
3,Docker的使用場景
- 打包應用程式簡化部署
- 可脫離底層硬體任意遷移
- 例如:伺服器從騰訊雲遷移到阿里雲
4,Docker的特點
- 服務彼此間相互獨立
- 服務可以靈活遷移
二,安裝Docker
1,Docker的核心概念及安裝方式
Docker核心概念
- 映象:一個面向Docker容器引擎的只讀模板
- 容器:從映象建立的執行例項
- 倉庫:集中儲存映象的地方
centos安裝docker的兩種方式
- 使用curl獲得docker的安裝指令碼進行安裝
- 使用yum倉庫來安裝docker
2,安裝Docker(19版本)
以下安裝方式已經為優化過程:
2,1 安裝最新版Docker依賴環境(依賴包)
yum -y install yum-utils device-mapper-persistent-data lvm2
# yum-utils 提供了yum-config-manager
# device mapper 儲存驅動程式需要device-mapper-persistent-data 和 lvm2
# Device Mapper是linux2.6核心中支援邏輯卷管理的通用裝置對映機制,他為實現用於儲存資源管理的塊裝置驅動提供了一個高度模組化的核心架構
2.2 設定映象源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //阿里雲映象源
yum install http://ftp.riken.jp/Linux/cern/centos/7/extras/x86_64/Packages/container-selinux-2.74-1.el7.noarch.rpm //此映象源下載速度比較快並且不會缺失一些包
2,3安裝Docker引擎並設定為開機自動啟動
yum install -y docker-ce
systemctl start docker
systemctl enable docker
2,3 檢查Docker版本檢視Docker服務
docker version
2.4關於docker的網橋橋接網口
首先所有的虛擬機器之間需要通過ens33來建立互動,而在容器內部,所有的映象都有各自的地址,與容器之間形成了一個小型的區域網,此時區域網想要與ens33 建立連線,所以就有了docker0的出現,docker0與ens33之間進行地址轉換,形成一個對映,這樣就能成功的建立起連線了
如下圖所示:
2.5 映象加速
tee /etc/docker/daemon.json <<-'EOF'
> {
> "registry-mirrors": ["https://pl01jex2.mirror.aliyuncs.com"]
> }
> EOF
systemctl daemon-reload 重新載入配置檔案
systemctl restart docker 啟動
2.6 網路優化
方便以後配置環境中出現一些棘手難處理的問題進行網路優化:
vim /etc/sysctl.conf
sysctl -p
net.ipv4.ip_forward = 1
ervice network restart
systemctl restart docker
三, Docker映象建立與操作
1,Docker映象操作
(1)搜尋映象/檢視映象
docker search 映象名
檢視本地有無映象
docker images
(2)下載/上傳映象
docker pull 映象名 //下載
docker push 映象名 //上傳
注:此時就開始使用aliyun的加速功能了
(3)檢視映象
docker images 映象名
docker inspect 映象ID號
(4)刪除映象
docker rmi 映象id
(5)如何給映象設定一個標籤
docker tag nginx:latest nginx:123 //設定
docker images | grep nginx //檢視
docker rmi nginx:123 //刪除建立的標籤映象
(6)映象匯出/匯入
docker save -o /opt/nginx nginx:latest //將映象Nginx匯出到opt下並命名為nginx
此時映象匯出之後就可以考到u盤或者在其他平臺上上傳傳送了
docker load < /opt/nginx //從opt下上傳映象到容器
(7) 上傳映象
docker login //登入
docker tag nginx:latest abner/nginx:web //使用者名稱/倉庫名:映象
docker push abner/nginx:web //上傳
(8)建立容器
docker create -it nginx:latest /bin/bash
注:# i 讓容器的標準輸入保持開啟
# -t 讓docker分配給一個偽終端,進行執行指令
docker ps -a //此時建立之後檢視是created狀態
注:# -a 列出所有容器,包括未執行的容器
docker start 2e3b7fb88389 //開啟之後檢視是up狀態
docker ps //檢視所有執行狀態的容器
docker run -itd centos:7 /bin/bash //開啟並啟動容器
docker exec -it 容器id /bin/bash //進入容器
yum install net-tools -y //裝查ip的指令
ifconfig //查詢容器ip
exit //退出容器
docker run nginx:latest /bin/bash -c ls / //一次性執行完命令之後立馬關閉釋放 正常退出返回狀態碼為0,不正常返回不為0
(9)刪除容器
docker rm 容器id //刪除容器之前必須先stop容器,不然的話刪除不了
docker ps -a | awk '{print "docker rm "$1}' | bash //批量刪除欄位1 的虛擬機器,刪除之前要先關閉容器
注意:
docker stop 容器id //這條指令為停止容器,當執行此命令之後返回狀態碼是不為0的,此時屬於異常退出,強行停止
(10)容器的匯出與匯入
docker export 容器匯出 > /opt/nginx_c //將容器匯出到opt下面的並命名為nginx_c
cat nginx_c | docker import - nginx:web //容器匯入實際上只是生成映象,而不會建立容器 ,此時匯入之後應該去映象裡面檢視
相關文章
- Docker容器和映象的建立/匯出/刪除/匯入Docker
- [Docker核心之容器、資料庫檔案的匯入匯出、容器映象的匯入匯出]Docker資料庫
- Docker 匯出容器 / 映象Docker
- 【docker】docker映象匯出匯入Docker
- docker 映象的儲存以及匯入Docker
- docker匯入&匯出離線映象Docker
- docker 批量刪除容器和映象Docker
- docker刪除所有容器和映象命令Docker
- Docker容器中的備份、恢復、遷移、匯入、匯出Docker
- 啟動或刪除Docker容器和映象Docker
- docker 映象和容器的基本命令Docker
- sqoop部署及匯入與匯出OOP
- docker2-映象原理及建立新的映象Docker
- Oracle建立刪除使用者、角色、表空間、匯入匯出...命令總結Oracle
- docker建立volume 指定volume 匯出image 匯入imageDocker
- 批量刪除容器和映象
- Is it going on-------------Docker容器的安裝以及基本的操作指令GoDocker
- docker:映象構建、倉庫、壓縮、匯入 二Docker
- javascript中的匯出和匯入實現模組化管理JavaScript
- Docker 容器監控原理及 cAdvisor 的安裝與使用Docker
- 安裝mongodb,建立資料庫、使用者、建立表、匯出匯入資料庫MongoDB資料庫
- Docker掃盲之容器與映象的基本使用Docker
- Mongodb資料的匯出與匯入MongoDB
- AWR資料的匯出與匯入
- Docker初體驗,建立並匯出第一個本地映象Docker
- 【匯出匯入】% 在匯入匯出中的應用。
- ES模組化的匯入和匯出
- 匯入和匯出AWR的資料
- BCP 資料的匯入和匯出
- NDS的資料匯入和匯出
- expdp/impdp中匯出/匯入任務的管理和監控
- excel的匯入與匯出---通用版Excel
- DB2表的匯入與匯出DB2
- Oracle安裝後伺服器端配置及資料匯出匯入操作Oracle伺服器
- MySQL資料庫結構和資料的匯出和匯入 (轉)MySql資料庫
- Angular Excel 匯入與匯出AngularExcel
- SQL資料庫的匯入和匯出SQL資料庫
- Oracle資料泵的匯入和匯出Oracle