如何通过SSH连接到正在运行的Docker容器并运行命令()

SSH Docker容器运行命令教程介绍Docker是一个实用程序,可让你创建用于运行应用程序的  容器。Docker 容器是一个完全包含的虚拟机。
SSH如何在Docker容器运行命令?本指南将向你展示通过 SSH 进入 Docker 容器并运行命令的三种方法。

如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
先决条件
  • 一个运行 Docker的 Linux 系统
  • 预配置的容器加载并运行
  • 访问终端窗口/命令提示符(Ctrl  +  Alt  +  T或Ctrl  +  Alt  +  F2)
  • 具有sudo  权限的用户帐户 
方法一:在Docker容器中使用docker exec运行命令SSH如何连接到Docker容器并运行命令?该docker exec命令在已经运行的容器中运行指定的命令。你可以通过创建bash shell(可以在其中键入命令的 shell)使用它通过 SSH 连接到 Docker 容器。
用于docker exec在容器中运行命令的基本语法是:
docker exec [ options] [ container] [ command]

SSH如何在Docker容器运行命令?如果你还没有,请先拉取一个Docker 镜像。例如,你可以加载Nginx:
sudo docker pull nginx

如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
然后,运行镜像:
sudo docker run ––name nginx–test –d nginx

如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
列出所有正在运行的容器以进行验证:
sudo docker ps

你现在应该看到你的 nginx-test 镜像已加载。
如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
要访问并运行该 Docker 容器中的命令,请键入以下内容:
sudo docker exec –it nginx-test /bin/bash

现在,你已登录到nginx-test容器。因此,你输入的任何命令都将在该容器中执行。该–i选项指定交互,并–t启用终端输入界面。
如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
方法二:使用docker attach命令连接正在运行的容器该docker attach命令将本地输入、输出和错误流链接到容器。默认情况下,它在bash  shell 中启动。要连接到正在运行的容器,请输入以下内容:
sudo docker attach container_Name

SSH如何在Docker容器运行命令?在下面的示例中,系统将连接到nginx-test 容器:
sudo docker attach nginx-test

如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
执行命令后,你将在容器中工作。你运行的任何命令都会影响虚拟 Docker 环境。
方法三:使用SSH连接Docker容器【如何通过SSH连接到正在运行的Docker容器并运行命令()】SSH如何连接到Docker容器并运行命令?你可以使用 SSH(安全外壳)连接到 Docker 容器。通常,SSH用于通过网络远程连接到服务器。当连接到系统上的虚拟 Docker 容器时,该技术的工作原理相同。
重要提示:我们不推荐这种方法,因为它会使镜像膨胀超出正常范围。你需要有一个已经配置 SSL 的镜像才能工作。
步骤 1:在系统上启用 SSH
SSH Docker容器运行命令教程 - 首先安装并启用 SSH 服务:
在 Ubuntu 18.04 上启用 SSH:
sudo apt-get install sshsudo systemctl ssh startsudo systemctl ssh enableservice ssh status

在 CentOS 7 上启用 SSH:
yum –y install openssh-server openssh-clientsservice sshd startservice sshd enableservice sshd status

第二步:获取容器的IP地址
SSH如何在Docker容器运行命令?使用docker inspect命令获取容器的IP地址并过滤结果。
对于现代 Docker 引擎,请使用以下命令:
sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" container_name

对于较旧的 Docker 引擎,请运行:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
系统将显示如上图所示的 IP 地址。
注意:  目标 docker 容器必须正在运行才能获取其 IP 地址。如果你需要启动现有的 docker 容器,请运行sudo docker start container_name.
第 3 步:SSH 进入 Docker 容器
Ping IP 地址以确保它可用:
ping –c 3 172.17.0.2

如何通过SSH连接到正在运行的Docker容器并运行命令()

文章图片
使用 SSH 工具连接到镜像:
ssh root@172.17.0.2

系统应提示输入该容器的 root 用户密码。如果它显示Connection denied,则可能没有为 SSH 配置容器。如果提示发生变化,你现在已通过 SSH 连接,并且可以在容器中运行命令。
SSH Docker容器运行命令教程结论SSH如何连接到Docker容器并运行命令?Docker 容器是轻量级和过渡性的,因此不推荐使用传统的 SSH 连接。在 Docker 容器中运行命令的推荐方法是docker execdocker attach
如果你要配置多个远程虚拟机,则可以使用该docker-machine ssh命令通过 Docker 连接到虚拟机。对于大多数用户,推荐使用前两种命令方法。

    推荐阅读