gpt4 book ai didi

docker-compose 与远程主机不使用 ssh

转载 作者:行者123 更新时间:2023-12-04 12:01:59 25 4
gpt4 key购买 nike

我正在使用 DigitalOcean,特别是 1-click Docker droplet。
Docker 在 droplet 上运行,socket 文件位于 droplet 上的/var/run/docker.sock 。
我的机器上也本地安装了 docker 和 docker-compose。
我有一个在我的机器上本地运行的 docker-compose.yml。
我在 droplet 上有公钥,在我的本地机器上将私钥添加到 ssh-add。我的 ssh key 有密码。
我可以从我的本地机器 ssh 进入我的 DigitalOcean droplet,没有任何问题或密码提示。
端口 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-
How to run docker-compose on remote host?

最佳答案

ERROR: Couldn't connect to Docker daemon at http+docker://ssh - is it running?


不久前我遇到了这个问题,它与身份验证有关。我的远程用户不是 root 用户,也无权访问 docker 组/守护进程,但我看到您在这里使用的是 root 用户,但值得一试。
This is where I found my solution

Note that there’s no way to pass sudo via this syntax, so you’ll need to ensure that the user you specify on the command line has the ability to run docker commands without privilege escalation. (You could add them to the “docker” group on the remote system, for example.)


我知道您使用的是带密码的基于 key 的身份验证,而不是基于密码的身份验证,但是...已经承认基于密码的身份验证不起作用,并且存在一些相关的持续问题,例如 this one其中用户还提到了类似的场景,其中 docker -H ssh://user@docker.host ps尽管 docker-compose 实际上对他们有用扔他们的问题。

关于docker-compose 与远程主机不使用 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67944506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com