1. 程式人生 > >Docker介紹、安裝和使用

Docker介紹、安裝和使用

一、Linux 容器介紹

在介紹Docker前,需要先了解一個概念Linux容器,Linux容器是與系統其它部分隔離開的一系列程序,從另一個映象執行,並由該映象提供程序所需的全部檔案。容器提供的映象包含了應用所有依賴項,因此從開發到測試再到生產的整個過程,它都有可移植性和一致性。
容器與虛擬化對比
虛擬化:是一種資源管理技術,是將計算機的各種實體資源,如伺服器、網路、記憶體及儲存等,進行抽象、轉換後呈現出現,打破實體結構間的不可切割的障礙,使使用者可以比原本的組態更好的方式來應用這些資源。虛擬化使得許多作業系統可同時在單個系統上執行
容器:共享同一個作業系統核心,將應用程序與系統其它部分分隔開。相比傳統的虛擬化在硬體層面的虛擬化,容器則是在作業系統層面上的虛擬化。
在這裡插入圖片描述


容器除了執行其中應用外,基本不消耗額外的系統資源,傳統虛擬機器執行10個不同的應用就要啟用10個虛擬機器,而Docker只需要啟動10個隔離的應用即可。因此容器能夠實現虛擬化同等的效果的情況下,消耗的資源比虛擬化要少。

二、Docker的介紹

Docker屬於Linux容器的一種封裝,提供簡單易用的容器使用介面,是目前最為流行的Linxu容器解決方案。Docker將應用程式與程式的依賴,打包在一個檔案裡面。執行這個檔案,就會生成一個虛擬容器。程式在這個虛擬容器裡執行,就如同在真實的物理機上執行一樣,因此有Docker,就不用擔心環境問題。
Docker的介面相當簡單,使用者可以方便地建立和使用容器,把自己的應用放入容器。容器還可以進行版本管理、複製、分享、修改,就像管理普通的程式碼一樣。

2.1 Docker在開發和運維中的優點

快速部署和交付:使用Docker可以搭建一套標準的開發環境,開發和測試都可以模擬真實的環境進行開發和測試,以防止環境不同帶來的不必要問題。同時Docker可以快速的刪除和建立,快速迭代產品,節省開發,測試,部署的時間。
充分高效的利用有限資源:Docker是核心級別的虛擬化,不需要額外的虛擬化程式支援,需要硬體資源少,效能也高。
方便遷移和擴充套件:Docker幾乎可以在任意平臺上執行。包括物理機、虛擬機器、公有云、私有云、個人電腦、伺服器等

2.2 Docker的三個主要概論

Docker image:映象是隻讀的,映象中包含有需要執行的檔案。映象用來建立container,一個映象可以執行多個container;映象可以通過Dockerfile建立,也可以從Docker hub/registry上下載。
Docker container:容器是Dockers的執行元件,啟動一個映象就是一個容器,容器是一個隔離環境,多個容器之間不會相互影響,保證容器中的程式執行在一個相對安全的環境中。
Docker hub/registry:共享和管理Docker映象,使用者可以上傳或者下載上面的映象,官方地址為https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。
映象相當於打包好的版本,映象啟動之後執行在容器中,倉庫就是裝儲存映象的地方。

三、Docker的安裝

安裝Docker存在兩種方式,第一種方式為從倉庫獲取進行安裝;第二種方式為直接下載映象進行安裝。這兩種安裝方式可以參見官方安裝文件的CentOS安裝
倉庫獲取安裝
1.安裝yum-utils,yum-utils是管理repository及擴充套件包的工具 (主要是針對repository) 。

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

2.建立穩定的倉庫。

$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

3.可選操作,是否使能edge和test倉庫。

sudo yum-config-manager --enable docker-ce-edge //是能edge倉庫
sudo yum-config-manager --enable docker-ce-test //使能test倉庫
sudo yum-config-manager --disable docker-ce-edge //去使能edge倉庫
sudo yum-config-manager --disable docker-ce-test //去使能test倉庫

4.Docker的安裝

sudo yum install docker-ce 

直接下載rpm包進行安裝
1.從官網上選擇rpm安裝包

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 

2.安裝docker

sudo yum install docker-ce

四、Docker的常用命令

Docker映象命令

獲取centos映象:docker pull centos
檢視映象:docker images (docker映象保持在/var/lib/docker目錄下)
檢視映象詳細資訊:docker inspect [NAME:tag]
搜尋映象:docker search [NAME:tag]刪
除映象:docker rmi [NAME:tag&ID]​  例如docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af3
-f:強制刪除
 建立映象:docker commit
 匯入映象:cat 映象.tar |docker import - centos:7
 存出鏡像:docker save -o centos:7.tar centos7
 載入映象:docker load --imput cnetos7.tar​ 或者:docker load < centos7.tar
 上傳映象:docker push
 新增標籤後在上傳,如下:​ docer tag centos:7 mark/centos:7​ docker push mark/centos:7

Docker容器命令

新建容器:docker create -it centos:tag
啟動容器:docker start NAME
建立並後臺啟動:docker run --name mynginx -d nginx
-d 守護程序模式
建立啟動並連線容器並啟動一個bash終端:docker run -it mynginx /bin/bash
檢視容器:docker ps -a
關閉容器: docker stop NAMEdocker stop它首先會向容器傳送一個SIGTERM訊號,等一段時間後,預設10秒後,在傳送SIGKILL來終止容器
啟動容器:docker start NAME
強行終止:docker kill ID
進入容器執行命令:docker exec -it ID /bin/bash (或者:docker exec -it ID /bin/sh)
當然,也可以不進入容器執行命令:docker exec NAME ps
刪除容器:docker rm ID
刪除執行中的容器:docker rm -f ID
匯出容器:docker export ID > name.tar
匯入容器:cat name.tar | docker import - test/centos:7

參考

1.Docker入門教程
2.Docker(一) 入門簡介和在CentOS 7 上安裝
3.Docker 容器命令
4.Docker官網–安裝篇
5.什麼是 Linux 容器?