簡體   English   中英

在 /var/run 中鏈接 docker.sock

[英]Link docker.sock in /var/run

<TL;DR>
我有一個依賴於 docker UNIX socket /var/run/docker.sock的二進制工具
我在 Gitlab CI 作業中運行二進制文件,因此在 TCP 套接字tcp://docker:2375上具有 docker
如何將 UNIX 套接字 /var/run/docker.sock 與 TCP tcp://docker:2375綁定?
</TL;DR>

[我有的]

  • 我將 Gitlab 管道與 Docker-in-Docker 一起使用。 Docker 完美運行
  • ```yml services: - docker:19-dind variables: DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" ```
  • 我使用 twistcli (PaloAlto/PrismaCloud) 進行運行時圖像掃描

[問題]

  • Twistcli 查找 UNIX 套接字/var/run/docker.sock (在二進制文件中硬編碼 + 沒有用於更改它的 cli 標志(參見此處))
  • Docker 守護程序可在此處使用 TCP 套接字tcp://docker:2375 (請參閱此處

[我試過的]

# TEST 1
ln -s tcp://docker:2375 /var/run/docker.sock
./twistcli sandbox image_to_scan
ERROR: Get "http://unix.sock/version": dial unix /var/run/docker.sock: connect: no such file or directory

# TEST 2
touch /var/run/docker.sock
socat -v TCP-LISTEN:docker:2375,fork UNIX-CONNECT:/var/run/docker.sock
./twistcli sandbox image_to_scan
ERROR: cannot connect to Docker endpoint

# TEST 3 (@larsks' proposition)
socat -v tcp-connect:docker:2375 unix-listen:/var/run/docker.sock,fork
ERROR: Failed to extract Platform data from docker version: failed to fetch docker api version 'Get "http://unix.sock/version": EOF'

[我的問題]

  • 如何欺騙系統使 /var/run/docker.sock 實際上指向 tcp://docker:2375 docker.sock?

您對socat命令的想法是正確的,但是您的參數倒退了。 已經有一個 Docker 守護程序在端口 2375 上偵聽,因此您不希望socat在該地址上偵聽:您希望socat在 unix 套接字上偵聽,並代理連接到 ZB136EF5F6A01D81699ZAC3CF7 套接字:

socat -v tcp-connect:docker:2375 unix-listen:/var/run/docker.sock,fork

有了這個,我可以使用本地 Unix 套接字成功訪問啟用 TCP 的遠程 docker 守護程序。

謝謝您的幫助!

反轉 2 有幫助,但現在我Failed to extract Platform data from docker version: failed to fetch docker api version 'Get "http://unix.sock/version": EOF'

./twistcli 沙箱 1/2 (gitlab)
./twistcli 沙箱 2/2 (gitlab)
(抱歉, I need 10 reputation to post images

在 WSL2 上也發生了同樣的情況,我也在socat上安裝了 docker.sock:
./twistcli 沙盒 1/1 (wsl2)

編輯:我做了一些挖掘。 將我的 WSL2 機器與socat一起使用,我可以運行docker imagesdocker ps 但是, docker run永遠掛起 + 退出 socat 命令會在 docker 運行時出現 EOF 錯誤。

docker ps
docker 圖片

docker運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM