Docker开启Docker API

方式一:修改docker配置文件

1.使用vi或vim打开docker的配置文件/etc/docker/daemon.json

vim /etc/docker/daemon.json

2.打开写入如下内容后保存退出:

[
	"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
]

hosts:为指定监听的ip地址与端口。使用 0.0.0.0 监听所有网络接口可能存在安全风险,因为这会使 Docker API 可以被公开访问。建议在生产环境中仅允许受信任的 IP 地址访问 Docker API,并使用安全连接(如 TLS)进行通信。

3.重启docker服务

sudo systemctl restart docker

如果重启没报错,恭喜你!你已经成功开启了Docker API,移步至验证API是否正常请求。

如果报错了,请移步至下面提供的解决方案

方式二:修改docker服务配置

1.使用vi或vim进入docker.server /lib/systemd/sytem/docker.service

vim /lib/systemd/sytem/docker.service

2.找到 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock这一行
在这里插入图片描述

3.在这一行后面添加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

4.重启docker服务

systemctl daemon-reload
sudo systemctl restart docker

如果重启没报错,恭喜你!你已经成功开启了Docker API,移步至验证API是否正常请求。

如果报错了,请看解决方案

异常解决方案

我两种方式都试了,全部无效,设置完配置文件后就报错(报错信息如下):

在这里插入图片描述

具体原因是因为在方式一中的 /etc/docker/daemon.json文件写入的配置与方式二种的ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock这行命令有冲突。应该是都有hosts相关配置。

解决方案:

1.修改/lib/systemd/sytem/docker.service文件,去掉 -H fd://

在这里插入图片描述

2.将fd://添加到daemon.json配置中

[
	"hosts": ["fd://","tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
]

3.重启docker

systemctl daemon-reload
sudo systemctl restart docker

💐重启成功!

验证API是否开启

1.在本机使用curl命令查看版本信息

curl http://localhost:2375/version

在这里插入图片描述

2.如果局域网其他机器获取使用postman接口请求工具内无法访问,需要关闭防火墙或将服务器的2375端口放行。

  • 对于 iptables:
sudo systemctl stop iptables
  • 对于 firewalld:
sudo systemctl stop firewalld

关闭防火墙后,请尝试再次使用 curl 连接到 Docker API,看看问题是否解决。如果问题仍然存在,请重新启动防火墙以保护您的系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值