# 2021-01-13 #「Docker」- 配置服務監聽端口,使用 Docker Engine API 訪問

問題描述

咱們須要調用 Docker Engine API 以獲取某些數據,主要用於調試及查看。(在集成到程序時,應使用類庫)docker

可是 Docker 默認使用 Unix Domain Socket 文件,致使咱們沒法使用 Postman 高級接口管理工具。json

解決方法是使 Docker 服務監聽 tcp 端口。該筆記將記錄如何實現該方法:使 Docker 服務監聽 tcp 端口。centos

注意事項

雖然使用 Insomnia Designer 能夠訪問 Unix Domain Socket 文件,可是開啓 Docker 服務的 tcp 監聽仍是有意義的。api

在下面的演示中,咱們同時進行 UDS 與 TCP 監聽,能夠根據實際狀況進行調整。curl

咱們測試使用 Debian GNU/Linux 10 (buster) 版本,請務必理解配置,而不是單純的複製配置信息。socket

解決方法

// 修改 docker.service 配置,添加以下配置

# systemctl edit docker.service
[Service]
ExecStart=
ExecStart=/usr/sbin/dockerd -H fd:// -H tcp://127.0.0.1:2375 $DOCKER_OPTS

// 重啓服務

# systemctl restart docker.service

// 測試接口

# curl http://127.0.0.1:2375/v1.39/containers/json

附加說明

這段內容與該筆記內容無關,只是進行簡單記錄:fd:// 並非通知 Docker 打開 UDS 監聽,而是 systemd 處理並傳遞給 Docker 服務。能夠在命令行中直接執行 ExecStart 命令進行驗證。—— sockets - what does fd:// mean exactly in dockerd -H fd:// - Stack Overflowtcp

參考文獻

WikiNotes/配置服務監聽端口,使用 Docker Engine API 訪問
Develop with Docker Engine API | Docker Documentation
api - How to make docker listening to unix and TCP socket under centos with systemd - Stack Overflowide

相關文章
相關標籤/搜索