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,看看问题是否解决。如果问题仍然存在,请重新启动防火墙以保护您的系统。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Dockerfile中 CMD和ENTRYPOINT的区别小结
本文主要介绍了Dockerfile中 CMD和ENTRYPOINT的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2025-09-09
docker-compose中link和external_links的区别及说明
拆分docker-compose.yml导致depends_on、links和external网络配置失效,因compose限制及Portainer命名冲突,解决方案为使用external_links或手动创建网络2025-09-09
Docker给容器添加新端口映射的两种方法及常用命令举例详解
Docker是一个开源的应用容器引擎,允许开发者打包和发布应用到任何流行的Linux机器上,并实现虚拟化,这篇文章主要介绍了Docker给容器添加新端口映射的两种方法及常用命令的相关资料,需要的朋友可以参考下2025-03-03


最新评论