docker核心概念和安裝配置

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來臨時提升權限。

作者微信公衆號:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章