Cod*_*Owl 5 ssh docker digital-ocean docker-compose
我正在使用 DigitalOcean,特别是 1-click Docker droplet。
Docker 在 droplet 上运行,socket 文件位于 droplet 上的 /var/run/docker.sock 。
我的机器上也本地安装了 docker 和 docker-compose。
我有一个在我的机器上本地运行的 docker-compose.yml。
我在 droplet 上有公钥,在我的本地机器上将私钥添加到 ssh-add。我的 ssh 密钥有密码。
我可以从我的本地机器 ssh 进入我的 DigitalOcean droplet,没有任何问题或密码提示。
端口 22 在液滴上打开。
编辑:两台机器上的 docker-compose > 1.28
鉴于这些事实,根据我阅读的所有教程和文档,这应该有效:
docker-compose -H "ssh://root@<my-digital-ocean-droplet-ip-here>" up -d
Run Code Online (Sandbox Code Playgroud)
但它不起作用。我明白了:
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?
Run Code Online (Sandbox Code Playgroud)
我想不通。我试过使用 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: {}
Run Code Online (Sandbox Code Playgroud)
编辑:这是版本号:
本地: 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- 如何在远程主机上运行 docker-compose?
小智 1
\n\n错误:无法连接到位于 http+docker://ssh 的 Docker 守护进程 - 它是否正在运行?
\n
我不久前遇到了这个问题,它与身份验证有关。我的远程用户不是 root,也无权访问 docker 组/守护进程,但我看到您在这里使用 root,但这可能值得检查一下。
\n\n\n\n请注意,\xe2\x80\x99s 无法通过此语法传递 sudo,因此你\xe2\x80\x99 需要确保你在命令行上指定的用户能够运行 docker 命令而无需权限升级。(例如,您可以将它们添加到远程系统上的 \xe2\x80\x9cdocker\xe2\x80\x9d 组。)
\n
我知道您正在使用带有密码的基于密钥的身份验证,而不是基于密码的身份验证,但是...已经承认基于密码不起作用,并且存在一些相关的持续问题,例如用户也提到了类似的情况尽管给他们带来了问题docker -H ssh://user@docker.host ps,但实际上对他们有用。docker-compose
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |