CentOS Docker 安裝
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
前提條件
目前,CentOS 僅發行版本中的內核支持 Docker。
Docker 運行在 CentOS 7 上,要求系統為64位、系統內核版本為 3.10 以上。
Docker 運行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統為64位、系統內核版本為 2.6.32-431 或者更高版本。
查看自己的內核
uname命令用於打印當前系統相關信息(內核版本號、硬件架構、主機名稱和操作系統類型等)。
查看已安裝的CentOS版本信息(CentOS6.8有,CentOS7無該命令)
Docker的架構圖
Centos6.8 安裝Docker
1、Docker使用EPEL發布,RHEL系的OS首先要確保已經持有EPEL倉庫,否則先檢查OS的版本,然后安裝相應的EPEL包。
yum install -y epel-release 2、yum install -y docker-io 3、安裝后的配置文件: /etc/sysconfig/docker 4、啟動Docker后台服務: service docker start 5、docker version 驗證
CentOS7安裝Docker
安裝步驟:
1、官網中文安裝參考手冊
https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/#prerequisites
2、確定你是CentOS7及以上版本
cat /etc/redhat-release
3、yum安裝gcc相關
yum -y install gcc
yum -y install gcc-c++
4、卸載舊版本
yum -y remove docker docker-common docker-selinux docker-engine
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
5、安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
6、設置stable鏡像倉庫
大坑:
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
7、更新yum軟件包索引
yum makecache fast
8、安裝DOCKER CE
yum -y install docker-ce
9、啟動docker
systemctl start docker
10、測試
docker version
docker run hello-world
11、配置鏡像加速
mkdir -p /etc/docker
vim /etc/docker/daemon.json
systemctl daemon-reload
systemctl restart docker
12、卸載
systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker
永遠的HelloWorld
阿里雲鏡像加速
是什么
https://dev.aliyun.com/search.html
注冊一個屬於自己的阿里雲賬戶(可復用淘寶賬號)
獲得加速器地址連接
登陸阿里雲開發者平台
獲取加速器地址
配置本機Docker運行鏡像加速器
鑒於國內網絡問題,后續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,
我使用的是阿里雲的本人自己賬號的鏡像地址(需要自己注冊有一個屬於你自己的): https://xxxx.mirror.aliyuncs.com
* vim /etc/sysconfig/docker
將獲得的自己賬戶下的阿里雲加速地址配置進
other_args="--registry-mirror=https://你自己的賬號加速信息.mirror.aliyuncs.com"
重新啟動Docker后台服務:service docker restart
Linux 系統下配置完加速器需要檢查是否生效
如果從結果中看到了配置的--registry-mirror參數說明配置成功,如下所示:
啟動Docker后台容器(測試運行 hello-world)
docker run hello-world
Docker是一個Client-Server結構的系統,Docker守護進程運行在主機上, 然后通過Socket連接從客戶端訪問,守護進程從客戶端接受命令並管理運行在主機上的容器。 容器,是一個運行時環境,就是我們前面說到的集裝箱。
為什么Docker比較比VM快
(1)docker有着比虛擬機更少的抽象層。由亍docker不需要Hypervisor實現硬件資源虛擬化,運行在docker容器上的程序直接使用的都是實際物理機的硬件資源。因此在CPU、內存利用率上docker將會在效率上有明顯優勢。
(2)docker利用的是宿主機的內核,而不需要Guest OS。因此,當新建一個容器時,docker不需要和虛擬機一樣重新加載一個操作系統內核。仍而避免引尋、加載操作系統內核返個比較費時費資源的過程,當新建一個虛擬機時,虛擬機軟件需要加載Guest OS,返個新建過程是分鍾級別的。而docker由於直接利用宿主機的操作系統,則省略了返個過程,因此新建一個docker容器只需要幾秒鍾。
DockerFile解析
是什么
Dockerfile是用來構建Docker鏡像的構建文件,是由一系列命令和參數構成的腳本。
構建三步驟
編寫Dockerfile文件
docker build
docker run
文件什么樣???
以我們熟悉的CentOS為例 :https://hub.docker.com/_/centos/
DockerFile構建過程解析
1、Dockerfile內容基礎知識
1:每條保留字指令都必須為大寫字母且后面要跟隨至少一個參數
2:指令按照從上到下,順序執行
3:#表示注釋
4:每條指令都會創建一個新的鏡像層,並對鏡像進行提交
Docker執行Dockerfile的大致流程
(1)docker從基礎鏡像運行一個容器
(2)執行一條指令並對容器作出修改
(3)執行類似docker commit的操作提交一個新的鏡像層
(4)docker再基於剛提交的鏡像運行一個新容器
(5)執行dockerfile中的下一條指令直到所有指令都執行完成
小結:
從應用軟件的角度來看,Dockerfile、Docker鏡像與Docker容器分別代表軟件的三個不同階段,
* Dockerfile是軟件的原材料
* Docker鏡像是軟件的交付品
* Docker容器則可以認為是軟件的運行態。
Dockerfile面向開發,Docker鏡像成為交付標准,Docker容器則涉及部署與運維,三者缺一不可,合力充當Docker體系的基石。
1 Dockerfile,需要定義一個Dockerfile,Dockerfile定義了進程需要的一切東西。Dockerfile涉及的內容包括執行代碼或者是文件、環境變量、依賴包、運行時環境、動態鏈接庫、操作系統的發行版、
服務進程和內核進程(當應用進程需要和系統服務和內核進程打交道,這時需要考慮如何設計namespace的權限控制)等等;
2 Docker鏡像,在用Dockerfile定義一個文件之后,docker build時會產生一個Docker鏡像,當運行 Docker鏡像時,會真正開始提供服務;
3 Docker容器,容器是直接提供服務的。