概述
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發佈到任何流行的Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
安裝Docker
centos7爲例
#安裝需要的軟件包 :yum install -y yum-utils device-mapper-persistent-data lvm2
#設置yum源 :yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安裝docker:sudo yum install docker
#啓動docker並讓它隨系統自啓
sudo service docker start
sudo chkconfig docker on
組成部分
Docker Client(客戶端)
- docker客戶端是用戶與docker進行交互的主要方式,當在終端輸入docker命令時,對應的就會在服務端產生對應的作用,並返回結果給客戶端。
Docker Server (服務端)
- docker daemon就是docker的服務端,它負責監聽docker api的請求並管理docker對象,如鏡像、容器、網絡、數據卷等
Docker Registries
- 俗稱docker倉庫,專門用於儲存鏡像的雲服務環境,docker hub就是一個公有的存放鏡像的地方,類似GitHub儲存代碼文件。
Docker Objects (對象):
- 鏡像:一個docker的可執行文件,其中包括運行應用程序所需的所有代碼內容、依賴庫、環境變量和配置文件
- 容器:鏡像被運行起來後的實例
- 網絡:外部或者容器間如何互相訪問的網絡方式,如host模式、bridge模式等
- 數據卷:容器與宿主機之間、容器與容器之間共享存儲方式,類似虛擬機與主機之間的共享文件目錄
docker基本使用
常用命令
docker環境信息 -> info、version
鏡像管理 -> build、images、import、load、rmi、save、tag、commit
容器運維操作 -> attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update
容器生命週期 start、stop、restart、pause、rm、run、unpause、kill、create
鏡像倉庫命令 -> login、logout、pull、push、search
查看API文檔
docker <management Commands> --help
搜索需要的鏡像
下載鏡像到docker本地服務器中
配置國內鏡像源,提高拉取速度
echo {"registry-mirrors": ["http://hub-mirror.c.163.com"]} > /etc/docker/daemon.json
下載centos鏡像
docker pull centos
docker的簡單使用
顯示下載鏡像
測試創建容器
開啓容器,運行一個後臺終端
docker run -itd centos /bin/bash
#options解釋
-i -> Allocate a pseudo-TTY
-t -> Keep STDIN open even if not attached
-d -> Run container in background and print container ID
注意:容器之間是互不干擾的
通過容器的修改文件,生成一個新的鏡像
提交到docker hub,線上保存
docker login -u username -p password
docker commit image
對於docker用處和作用,目前個人知道的有兩個,一是做集羣處理,另一個就是創建自己的獨立開發環境容器,隨時可以用。