一、docker桌面
二、docker的配置文件
1、docker配置文件位置/etc/docker/daemon.json
使用json格式,graph=data-root
{"graph":"/deploy/docker","registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],"insecure-registries": ["192.168.1.2","192.168.1.3:5000"],"live-restore": "true","exec-opts": ["native.cgroupdriver=systemd"],"storage-driver":"overlay2","ipv6": false,"bip":"172.18.0.1/24""default-address-pools": [{"scope": "local","base":"172.17.0.0/16","size":24}],"log-driver": "json-file","log-opts": {"max-size": "50m","max-size": "5m"}
}
graph:docker根目錄的存放位置
registry-mirrors:鏡像加速器
insecure-registries:指定信任倉庫
live-restore:容器的存活不依賴與docker引擎,docker引擎停止不影響容器運行
native.cgroupdriver:指定cgroup驅動,默認值為cgroupfs,推薦值為systemd
storage-driver:存儲驅動,overlay2、devicemapper、aufs
log-driver:日志驅動,json-file
bip:設置Docker0的默認IP,bip:設置Docker0的默認IP,
default-address-pools:配置容器使用的子網地址池base:指定CIDR網段,172.17.0.0/16表示子網掩碼長度為16。相當于主網絡size:變長子網掩碼,數值要大于等于16。相當子網絡
log-opts:日志策略。單個日志文件最大50M,最多保留3個
ipv6:是否開啟ipv6,true,false
僅當storage-driver為devicemapper時可用
指定單個容器可用數據空間20GB、docker可用數據空間200GB、元數據可用空間4GB
{"storage-opt": [ "dm.basesize=20G","dm.loopdatasize=200G","dm.loopmetadatasize=4G" ]
}
2、案例
注:graph=data-root
{
"data-root": "/data/docker",
"insecure-registries": ["192.168.65.129:80"],
"registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {"max-size": "100m","max-file": "3"},
"default-ulimits": {"nofile": {"Name": "nofile","Hard": 128000,"Soft": 128000}
}
}
三、docker引擎
(一)安裝
1、contos7 安裝
1.1 卸載舊版本
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
卸載 Docker 時,存儲在 中的映像、容器、卷和網絡不會自動刪除。/var/lib/docker/
1.2 安裝方法
您可以根據需要以不同的方式安裝 Docker 引擎:
- 您可以設置 Docker 的存儲庫并安裝 從他們那里,以便于安裝和升級任務。這是 推薦的方法。
- 您可以下載 RPM 軟件包并手動安裝并管理 完全手動升級。這在安裝等情況下很有用 在無法訪問互聯網的氣隙系統上的 Docker。
- 在測試和開發環境中,您可以使用自動化的便利腳本來安裝 Docker。
1.3 使用yum安裝
1.3.1 設置yum源
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
1.3.2 安裝 Docker 引擎
1、安裝 Docker Engine、containerd 和 Docker Compose
安裝最新版本
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安裝之前版本
$ yum list docker-ce --showduplicates | sort -r
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
此命令安裝 Docker,但不啟動 Docker。它還會創建一個組,但是,默認情況下不會向該組添加任何用戶。docker
2、啟動 Docker
$ sudo systemctl start docker
3、通過運行映像來驗證 Docker 引擎安裝是否成功。hello-world
$ sudo docker run hello-world
1.4 升級docker引擎
要升級 Docker 引擎,請按照安裝說明進行操作, 選擇要安裝的新版本。
1.5 從包安裝
如果您無法使用 Docker 的存儲庫來安裝 Docker,您可以下載您的版本文件并手動安裝。
-
轉到 https://download.docker.com/linux/centos/ 并選擇您的 CentOS 版本。然后瀏覽并下載要安裝的 Docker 版本的文件。
x86_64/stable/Packages/``.rpm
-
安裝 Docker 引擎,將下面的路徑更改為下載 Docker 包的路徑
$ sudo yum install /path/to/package.rpm
Docker 已安裝,但尚未啟動。組已創建,但沒有 用戶將添加到組中。
docker
-
啟動 Docker。
$ sudo systemctl start docker
-
通過運行映像來驗證 Docker 引擎安裝是否成功。
hello-world
$ sudo docker run hello-world
此命令下載測試映像并在容器中運行它。當 容器運行,它會打印確認消息并退出。
1.6 使用腳本安裝(最新版)
$ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh ./get-docker.sh --dry-run
1.7 卸載Docker
-
卸載 Docker Engine、CLI、containerd 和 Docker Compose 軟件包:
$ sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
-
主機上的映像、容器、卷或自定義配置文件 不會自動刪除。刪除所有映像、容器和 卷:
$ sudo rm -rf /var/lib/docker$ sudo rm -rf /var/lib/containerd
您必須手動刪除任何已編輯的配置文件。
2、linux安裝靜態二進制文件
-
下載靜態二進制存檔。轉到 https://download.docker.com/linux/static/stable/, 選擇您的硬件平臺,然后下載與 要安裝的 Docker 引擎版本。
.tgz
-
使用該實用程序提取存檔。提取 和 二進制文件。
tar``dockerd``docker
$ tar xzvf /path/to/<FILE>.tar.gz
-
可選:將二進制文件移動到可執行文件路徑上的目錄,例如 如。如果跳過此步驟,則必須提供 調用或命令時可執行。
/usr/bin/``docker``dockerd
$ sudo cp docker/* /usr/bin/
-
啟動 Docker 守護進程:
$ sudo dockerd &
如果需要使用其他選項啟動守護進程,請修改上述內容 命令或創建并編輯文件以添加自定義配置選項。
/etc/docker/daemon.json
-
通過運行映像驗證 Docker 是否已正確安裝。
hello-world
$ sudo docker run hello-world
此命令下載測試映像并在容器中運行它。當 容器運行,它會打印一條消息并退出。
3、以非 root 用戶身份管理 Docker
要創建組并添加用戶,請執行以下操作:docker
-
創建組。
docker
$ sudo groupadd docker
-
將您的用戶添加到組中。
docker
$ sudo usermod -aG docker $USER
-
注銷并重新登錄,以便重新評估您的組成員身份。
如果您在虛擬機中運行 Linux,則可能需要 重新啟動虛擬機以使更改生效。
您還可以運行以下命令來激活對組的更改:
$ newgrp docker
-
驗證是否可以在沒有 .
docker``sudo
$ docker run hello-world
此命令下載測試映像并在容器中運行它。當 容器運行,它會打印一條消息并退出。
如果您最初在添加用戶之前運行了 Docker CLI 命令 對于該組,您可能會看到以下錯誤:
sudo``docker
WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied
此錯誤表示目錄的權限設置不正確,因為之前使用了該命令。
~/.docker/``sudo
若要解決此問題,請刪除目錄(已重新創建) 自動,但任何自定義設置都將丟失),或更改其所有權和 使用以下命令的權限:
~/.docker/
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R $ sudo chmod g+rwx "$HOME/.docker" -R
4、將 Docker 配置為使用 systemd 啟動啟動
許多現代 Linux 發行版使用 systemd 來 管理系統引導時啟動哪些服務。在 Debian 和 Ubuntu 上, 默認情況下,Docker 服務在啟動時啟動。要自動啟動 Docker 和 對于使用 systemd 的其他 Linux 發行版,在引導時運行 以下命令:
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
若要停止此行為,請改用。disable
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service
如果需要添加 HTTP 代理,請為 Docker 運行時文件,或進行其他自定義,請參閱自定義 systemd Docker 守護程序選項。
5、配置默認日志記錄驅動程序
Docker 提供日志記錄驅動程序 從主機上運行的所有容器收集和查看日志數據。這 默認日志記錄驅動程序 ,將日志數據寫入 JSON 格式的文件 主機文件系統。隨著時間的推移,這些日志文件的大小會擴大,導致 磁盤資源可能耗盡。json-file
為避免過度使用磁盤存儲日志數據的問題,請考慮以下事項之一 選項:
- 配置日志記錄驅動程序以啟用日志輪換
json-file
- 使用備用日志記錄驅動程序,例如默認執行日志輪換的“本地”日志記錄驅動程序
- 使用將日志發送到遠程日志記錄聚合器的日志記錄驅動程序。