docker-daemon能不能实现远程管理呢?
将docker客户端和docker服务器分开进行管理。
docker daemon管理:
远程管理docker daemon的充分条件:
可以把docker client与docker daemon分开部署。
可以通过第三方软件管理docker daemon创建的容器。
第一步:修改docker的配置文件前,请先关闭docker守护进程。
systemctl stop docker && systemctl stop docker.socket
# 进行验证:
systemctl status docker
或者:
docker version
[root@vm1 ~]# docker version
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:55:21 2023
OS/Arch: linux/amd64
Context: default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
第二步:修改docker daemon的配置文件。
如果想使用/etc/docker/daemon.json管理docker daemon,默认情况下,/etc/docker目录中并没有daemon.json文件,添加后会导致docker daemon无法启动,在添加daemon.json文件之前,请先修改如下内容:
systemd的配置文件:
vim /usr/lib/systemd/system/docker.service
[root@localhost ~]#vim /usr/lib/systemd/system/docker.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// tcp://0.0.0.0 --containerd=/run/containerd/containerd.sock
第三步:加载配置文件。
修改完配置文件之后,一定要加载配置文件。
systemctl daemon-reload
第四步:重新开启docker守护进程:
systemctl start docker
验证下端口2375有没有开。
[root@vm1 docker]# netstat -nlpt |grep docker
tcp6 0 0 :::2375 :::* LISTEN 33704/dockerd
或者使用ss -anput |grep 2375命令进行检测:
那就说明可以对这台docker服务端进行远程管理。
第五步:(这步操作不需要)修改配置文件,通过添加额外的配置,对docker daemon的配置。
cd /etc/docker
vim daemon.json
{
"hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}
第六步:实现远程连接。
[root@vm1 docker]# docker -H 192.168.17.9 images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 21 months ago 231MB
[root@vm1 docker]# docker -H 192.168.17.9 version
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:55:21 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:54:24 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
[root@vm1 docker]#