docker安裝與基本使用
------------恢復內容開始------------
一、docker簡介
- docker的英文翻譯是 “碼頭工人”,即搬運工,它搬運的東西就是我們常說的集裝箱Container,Container裡面裝的是任意型別的App。
我們的開發人員可以通過Docker將App變成一種標準的、可移植的、自管理的元件,我們可以在任何主流的作業系統中開發、除錯和執行。
從概念上來看,Docker和傳統的虛擬機器比較類似,只是更輕量級,更方便使用。
1、docker與虛擬機器的區別
特性 |
容器 |
虛擬機器 |
啟動 |
秒級 |
分鐘級 |
硬碟使用 |
一般為MB |
一般為GB |
效能 |
接近原生 |
弱於 |
系統支援量 |
單機支援上千個容器 |
一般幾十個 |
管理效率 |
管理簡單 |
概念裡複雜 |
2、容器的特性
標準化
- 保證一致的執行環境
- 彈性伸縮,快速擴容
- 方便遷移
- 持續整合、持續交付與持續部署
高效能
- 不需要進行硬體虛擬以及執行完整的作業系統
輕量級
- 快速啟動
隔離性
- 程序隔離
3、docker引擎
Docker引擎是一個C/S 架構的應用程式
- 常駐後臺程序Dockerd
- 一個用來與Dockerd互動的REST API Server
- 命令列CLI介面,通過與REST API進行互動
4、Docker 三大核心
映象(Image)
Docker 映象是 Docker 容器執行時的只讀模板,映象可以用來建立 Docker 容器。每一個映象由一系列的層(layers)組成。
容器(Container)
Docker 利用容器來執行應用,一個 Docker 容器包含了所有的某個應用執行所需要的環境。每一個 Docker 容器都是從 Docker 映象建立的。容器是從映象建立的執行實 例。它可以被啟用,開始,停止,刪除。每個容器都是互 相隔離的,保證安全的平臺。
倉庫(Repository)
Docker 倉庫是用來集中儲存映象的地方,當建立了自己的映象後,可以使用 push 命令將它上傳到共有倉庫(Public)或者私用倉庫(Private),這樣一來當下次要在另 外一臺機器上使用這個映象時,只需要從倉庫上拉取下來就可以了
二、docker安裝
Docker版本介紹
- docker-ce:當前docker發行版本
- docker-ee:docker商業版本
1、先解除安裝掉舊的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安裝需要的依賴包
yum install -y yum-utils
3、設定映象倉庫
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#推薦阿里雲的,下映象比較快。
#更新軟體包索引
[root@localhost ~]# yum makecache fast
4、安裝docker相關內容 docker-ce 社群版 ee企業版
yum install docker-ce docker-ce-cli containerd.io
報這個錯誤是因為在某些版本之後,【docker-ce】安裝出現了其他依賴包,如果安裝失敗的話請關注錯誤資訊
例如【docker-ce 17.03】之後,需要先安裝【docker-ce-selinux】
在某些版本之後,【docker-ce】安裝出現了其他依賴包,如果安裝失敗的話請關注錯誤資訊
例如【docker-ce 17.03】之後,需要先安裝【docker-ce-selinux】
安裝完docker-ce-selinux再重新安裝就可以了
五、啟動docker並檢視狀態
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
六、使用dockerversion命令檢視docker版本
[root@localhost ~]# docker version
七、配置檔案說明
在docker-ce中,已廢棄/etc/sysconfig/docker這種配置方式,轉而採用/etc/docker/daemon.json來配置
將docker的下載映象的倉庫,修改為國內的阿里映象倉庫
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# cd /etc/docker
[root@localhost docker]# vim daemon.json
{
"registry-mirrors": ["https://w4uieobw.mirror.aliyuncs.com"]
}
修改完成後重啟docker
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# systemctl enable docker
八、docker常用命令
dockerversion 顯示docker的版本資訊
docker info 顯示docker的系統資訊,包括映象和容器的數量
docker --help docker的幫助命令
幫助文件的地址: https://docs.docker.com/reference/
docker映象命令
dockerimages 檢視映象
#解釋
REPOSITORY:映象的倉庫源 TAG:映象的標籤 IMAGE ID:映象的ID
CREATED:映象的建立時間 SIZE:映象的大小
#可選項
-a:#列出所有映象 -q:#只顯示映象的id
docker search 名稱 #映象搜尋命令
dockerpull 映象名稱 #拉取映象
[root@localhost ~]# docker pull nginx
dockerrmi映象名稱 #刪除映象
[root@localhost ~]# docker rmi nginx
dockerrmi -f映象名稱 #刪除指定的映象
dockerrmi -f映象名稱映象名稱映象名稱 #刪除多個映象
dockerrmi -f $(docker images -aq) #刪除全部映象
docker容器命令
容器即程序,一個容器什麼時候會退出,當容器中的程式執行完成,或者容器中的程式放後臺執行,容器都會退出。
說明:我們有了映象才可以建立容器,下載一個centos映象來學習
[root@localhost ~]# docker pull centos:7
dockerrun [可選引數]
--name 給容器起一個方便辨別的名字
-d 後臺方式啟動
- t 配置一個偽終端並繫結到容器的標準輸入上
- i 讓容器的標準輸入保持開啟
-it 使用互動方式執行,進入容器檢視內容
-p 指定容器的埠 –p80:80#主機埠:容器埠
- P 隨機指定埠
- c 指定分配該容器的cpu分片
- m 指定分配給該容器的記憶體大小
進入容器
[root@localhost ~]# docker run -d -P nginx
d3efb256ba0a0390e93b1953aeb205d3dde656cc8be27e83c4a648716b206335
-d放後臺執行 -P 表示隨機對映nginx的預設埠
docker ps 命令 #: 列出當前正在執行的容器
-a #:列出當前正在執行的容器+歷史執行過的容器
-n=? #:列出最近建立的容器
-q #:只顯示容器id
-l #:顯示最後一次建立的容器
退出容器
exit #直接容器停止並退出
Ctrl + P + Q #容器不停止退出
刪除容器
Docker rm 容器id #刪除指定的容器 不能刪除正在執行的容器,如果要強制刪除 rm -f
Docker rm -f $(docker ps -aq) #刪除所有的容器
啟動和停止容器的操作
Docker start 容器id # 啟動容器
Docker restart 容器id # 重啟容器
Docker stop 容器id # 停止當前正在執行的容器
Docker kill 容器id # 強制停止當前執行的容器
匯出和載入映象
[root@localhost ~]# docker save -o centos7.tar centos:7 #將本地映象匯出
[root@localhost ~]# docker load -i centos7.tar #將本地檔案匯入
修改映象名字打標籤
[root@localhost ~]# docker tag centos:7 centos:7.4 #把centos:7映象打標籤為centos:7.4
檢視映象的詳細資訊
[root@localhost ~]# docker inspect nginx