簡體   English   中英

docker-compose 與遠程主機不與 ssh

[英]docker-compose with remote host not working with ssh

我正在使用 DigitalOcean,特別是一鍵式 Docker 液滴。

Docker 在 droplet 上運行,socket 文件在 droplet 上的 /var/run/docker.sock。

我的機器上也本地安裝了 docker 和 docker-compose。

我有一個在我的機器上本地工作的 docker-compose.yml。

我在 droplet 上有公鑰,在我的本地機器上將私鑰添加到 ssh-add 中。 我的 ssh-key 有一個密碼。

我可以從本地機器 ssh 進入我的 DigitalOcean 液滴,沒有任何問題或密碼提示。

端口 22 在液滴上打開。

編輯:兩台機器上的 docker-compose > 1.28

鑒於這些事實,根據我閱讀的所有教程和文檔,這應該有效:

docker-compose -H "ssh://root@<my-digital-ocean-droplet-ip-here>" up -d

但它不起作用。 我明白了:

ssh: connect to host <my-digital-ocean-droplet-ip-here> port 22: Connection timed out
ERROR: Couldn't connect to Docker daemon at http+docker://ssh - is it running?

我想不通。 我試過使用 docker 上下文,主機的環境變量,沒有任何工作。 有什么我想念的嗎?

編輯 - 更多細節。 我還沒有看到任何表明這很重要的東西,但是我的公鑰末尾寫着“azuread/”。 同樣,這不會干擾正常的 ssh。

編輯-這是 docker-compose.yml:

version: '3.9'
 
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: myhardrootpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress_admin_guy
      MYSQL_PASSWORD: myhardpassword
    volumes:
      - db_data:/var/lib/mysql
      
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: pma
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
    restart: always
    ports:
      - 8080:80

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - 8000:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress_admin_guy
      WORDPRESS_DB_PASSWORD: myhardpassword
      WORDPRESS_DB_NAME: wordpress
    working_dir: /var/www/html
    volumes:
      - ./wp-content:/var/www/html/wp-content
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

volumes:
  db_data: {}

編輯:這是版本號:

本地:docker --version Docker version 20.10.6, build 370c289

本地:docker-compose --version docker-compose version 1.29.1, build c34c88b2

服務器:docker-compose --version docker-compose version 1.27.4, build 40524192

服務器:docker --version Docker version 19.03.13, build 4484c46d9d

服務器:ssh -V OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1f 31 Mar 2020

https://docs.docker.com/engine/reference/commandline/dockerd/ https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/ https://github.com/docker/compose/issues/4181 https://blog.mikesir87.io/2019/08/using-ssh-connections-in-docker- 如何在遠程主機上運行 ZBAEDB139453E845AE271?

錯誤:無法在 http+docker://ssh 連接到 Docker 守護進程 - 它正在運行嗎?

不久前我遇到了這個問題,它與身份驗證有關。 我的遠程用戶不是 root 用戶,也無權訪問 docker 組/守護進程,但我看到您在這里使用的是 root 用戶,但值得一試。

這是我找到解決方案的地方

請注意,無法通過此語法傳遞 sudo,因此您需要確保您在命令行上指定的用戶能夠運行 docker 命令而無需提權。 (例如,您可以將它們添加到遠程系統上的“docker”組。)

我知道您正在使用帶有密碼短語而不是基於密碼的身份驗證的基於密鑰的身份驗證,但是......已經承認基於密碼的身份驗證不起作用,並且存在一些相關的持續問題,例如用戶也提到了類似的場景其中docker -H ssh://user@docker.host ps實際上對他們有用,盡管docker-compose給他們帶來了問題。

暫無
暫無

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

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