docker核心概念和安裝配置
1.核心概念
三大核心概念:鏡像(Image)、容器(Container)、倉庫(Repository)。
鏡像(Image)
Docker鏡像類似於虛擬機鏡像,可以將它理解爲一個只讀模板。 Docker鏡像是創建Docker容器的基礎。
容器(Container)
Docker容器類似於一個輕量級的沙箱,Docker利用容器來運行和隔離應用。
容器是從鏡像創建的應用實例。它可以啓動、開始、停止、刪除,而這些容器都是相互隔離、互不可見的。
可以把容器看作一個簡易的Linux系統環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)以及運行在其中的應用程序打包而成的盒子。
[^注意]:鏡像自身是隻讀的。容器從鏡像啓動的時候,會在鏡像的最上層創建一個可寫層。
倉庫(Repository)
Docker倉庫類似於代碼倉庫,是Docker集中存放鏡像文件的場所。
有時候我們會將Docker倉庫和倉庫註冊服務器(Registry)混爲一談,並不嚴格區分。實際上,倉庫註冊服務器是存放倉庫的地方,其上往往存放着多個倉庫。每個倉庫集中存放某一些鏡像,往往包括多個鏡像文件,通過不同的標籤(tag)來進行區分。
2.安裝Docker引擎
Docker引擎是使用Docker容器的核心組件,可以在主流的操作系統和雲平臺上使用。
ContOS安裝Docker
安裝軟件包
sudo yum update
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加穩定版本的yum軟件源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
之後更新yum軟件源緩存,並安裝Docker:
sudo yum update
sudo yum install -y docker-ce
最後,確認Docker服務啓動正常
//查看docker信息
docker info
//看鏡像
sudo docker images
//開機自動啓動
sudo systemctl start docker
3.配置Docker服務
將當前用戶加入安裝中自動創建的docker用戶組。
sudo usermod -aG docker USER_NAME
用戶更新組信息,退出並重新登錄後生效。
Docker服務啓動實際上是調用了dockerd命令,支持多種啓動參數。
啓動docker服務,開啓Debug模式,並監聽2376端口。
dockerd -D -H tcp://127.0.0.1:2376
在/etc/docker路徑下的daemon.json文件中寫入:
{
"debug":true,
"hosts":["tcp://127.0.0.1:2376"]
}
當然,操作系統也對Docker服務進行了封裝,以使用upstart來管理啓動服務的Ubuntu系統爲例,Docker服務的默認配置文件爲/ect/defult/docker,可以通過修改其中的DOCKER_OPTS來修改服務啓動的參數,例如讓Docker服務開啓網絡2375端口的監聽:
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
修改後通過service命令來重啓Docker服務:
sudo service docker restart
對於CentOS、Redhat等系統,服務通過systemd來管理,配置文件路徑爲/etc/systemd/system/docker.service.d/docker.conf 。更新配置後需要通過systemctl命令來管理Docker服務:
sudo systemctl daemon-reload
sudo systemctl start docker.service
日誌文件路徑:
RedHat:/var/log/messages
CentOS或Ubuntu:執行命令
journalctl -u docker.service
每次重啓docker服務後,可以通過查看docker信息 (docker info命令)確保服務已經正常運行。
4.其他
Docker默認數據網段地址範圍爲10.0.0.0/24 管理網段地址範圍:192.168.0.0/24
執行命令代碼中以$開頭的,普通用戶;以#開頭的,特權用戶(root)。如果用戶已經添加到docker用戶組,大部分時候都無需管理員權限,否則需要在執行命令前使用sudo來臨時提升權限。