当前位置: 首页 > 知识库问答 >
问题:

如何使用docker-compose将ssh引入到创建的服务中

羊煜
2023-03-14

这是我的docker合成文件

version: '2'

# based off compose-sample-2, only we build nginx.conf into image
# uses sample site from https://startbootstrap.com/template-overviews/agency/

services:
  proxy:
    build:
      context: .
      dockerfile: nginx.Dockerfile
    ports:
      - '80:80'
  web:
    image: httpd
    volumes:
      - ./html:/usr/local/apache2/htdocs/

现在,我可以ssh到运行docker-compose up时创建的任何服务中吗

共有1个答案

郗亦
2023-03-14

标准机制不是将SSH添加到容器中,而是使用Docker Exec连接到容器。给定像3CDB7385C127这样的容器Id,您可以使用

docker exec -it 3cdb7385c127 sh

如果容器中有可用的bash,则可以使用完整的登录shell

docker exec -it 3cdb7385c127 bash -l

如果您愿意,您仍然可以将ssh添加到容器中,但是您需要安装、配置和运行ssh服务器,并且您需要能够从外部访问容器IP,或者将容器的:22重定向到主机上的某个端口。

 类似资料:
  • 问题内容: 我在Mac OS X和Docker Machine(默认的boot2docker计算机)上使用Docker,并使用docker-compose设置开发环境。 假设其中一个容器称为“ ”。现在我想做的就是打电话: 我的公用密钥(已添加到该公用密钥并将用于对我进行身份验证)位于主机上。我希望该密钥可用于Docker Machine容器,这样我就能够通过容器内部使用该密钥进行身份验证。最好不

  • 前文提到的Dockerfile 可以让用户管理一个单独的容器,那幺如果我要管理多个容器呢,例如:我需要管理一个Web应用的同时还要加上其后端的数据库服务容器呢?Compose就是这样的一个工具。让我们看下官网对Compose的定义: Compose 是一个用于定义和运行多容器的Docker应用的工具。使用Compose,你可以在一个配置文件(yaml格式)中配置你应用的服务,然后使用一个命令,即可

  • 我在Mac OS X上使用Docker机器(使用默认的boot2docker机器),并且我使用docker-compose来设置我的开发环境。

  • 问题内容: 我有一个用于运行Web应用程序的docker-compose.yml文件。 在我的服务的容器内: 因此,我可以查找Web主机名并将其映射到IP地址,但在文件中看不到它。 如何专门设置这个知道IP地址的容器? 问题答案: Docker提供了DNS服务(搜索“容器之间的自动DNS解析”),而Docker Compose提供了使用它的默认“用户定义”网络 。如果您查看容器内部,它应该指向一个

  • 我正在使用我的Mac上的docker-compose(使用boot2docker)与官方的WordPress Docker图像一起工作。我需要做一次一次性的数据导入。我不知道该怎么做。如何将数据导入数据库容器?

  • 问题内容: 我正在尝试完成有关如何在Azure域/环境中正确使用Windows容器的架构研究,其中我必须将Dot Net Core Web API应用程序容器化并将该容器部署到Azure容器服务中 这是我做的事情 我确实在Azure门户中创建了Azure容器服务帐户/域/虚拟机 此外,我确实使用已安装Docker的容器为Windows Server 2016创建了另一个虚拟机 在Windows S