一、容器、docker概念
部屬演變
- 物理機/KVM
- 部署慢
- 成本高
- 資源浪費,CPU內存使用不完
- 很難遷移
- 虛擬化的優點
- 資源得到了合理分配
- 容易擴展
- 很容易雲化
- 容器是實現DevOps的解決方案
docker能做什麼?
- 搭建環境,簡化配置
- 提供開發效率
- 隔離應用
二、docker安裝
Centos7安裝
- 更新軟件源
- 安裝依賴:
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
-
添加repository :
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
安裝正確
(如果出現Could not fetch/save,如下圖,則再次執行這個語句)否則下面不能查看可用的docker
-
查看可用的docker (如果出錯,則看上一步軟件源是否更改成功)
- 指定版本安裝docker (如果顯示不能安裝)則會出現下面錯誤,就需要複製版本號,應爲手打可能會導致命令不正確。
- 啓動docker
- 設置開機啓動docker
- 實現hello-world(因爲docker run的是一個鏡像,沒有hello-world鏡像,所以就無法展示這個,等下面將新建一個hello-world鏡像之後再run吧。)
三、docker基本使用
鏡像和容器
- 底層技術支持
-
namespace:做隔離,pid,net,可以啓動多個容器
-
control groups:做資源限制,比如對內存,對CPU做限制
-
union file system:鏡像的分層
image
- 查看本地鏡像
- 編寫Dockerfile
- 拉取並查看鏡像
- 創建.c文件
- 安裝依賴包
- 編譯.c文件
- 編寫Dockerfile
- 構建image,-t指定自己的docker賬號,注意最後有個點 .
- 查看自己構建的image
- image的運行
container
1.構建在image之上的,image(鏡像)是隻讀的,container是可讀寫的
2.例子:類與對象的關係
3.查詢本地正在運行的container(容器)
4.運行沒有的image,會自動下載
5.進行交互運行容器
6.查看docker container正在運行的是一個,所有的是2個
7.刪除容器
簡寫:
8.批量刪除容器
9.刪除所有已經運行完畢的container
基於原image,創建新的image
1.交互運行
2.安裝一個軟件
3.退出容器
4.基於修改的容器做新的鏡像
基於Dockerfile去製作image
1.創建Dockerfile
2.用當前的Dockerfile構建
3.查看image