SSH Docker容器运行命令教程介绍
Docker是一个实用程序,可让你创建用于运行应用程序的 容器。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
然后,运行镜像:
sudo docker run ––name nginx–test –d nginx
列出所有正在运行的容器以进行验证:
sudo docker ps
你现在应该看到你的 nginx-test 镜像已加载。
要访问并运行该 Docker 容器中的命令,请键入以下内容:
sudo docker exec –it nginx-test /bin/bash
现在,你已登录到nginx-test容器。因此,你输入的任何命令都将在该容器中执行。该–i
选项指定交互,并–t
启用终端输入界面。
方法二:使用docker attach命令连接正在运行的容器
该docker attach
命令将本地输入、输出和错误流链接到容器。默认情况下,它在bash shell 中启动。要连接到正在运行的容器,请输入以下内容:
sudo docker attach container_Name
SSH如何在Docker容器运行命令?在下面的示例中,系统将连接到nginx-test 容器:
sudo docker attach nginx-test
执行命令后,你将在容器中工作。你运行的任何命令都会影响虚拟 Docker 环境。
方法三:使用SSH连接Docker容器
SSH如何连接到Docker容器并运行命令?你可以使用 SSH(安全外壳)连接到 Docker 容器。通常,SSH用于通过网络远程连接到服务器。当连接到系统上的虚拟 Docker 容器时,该技术的工作原理相同。
重要提示:我们不推荐这种方法,因为它会使镜像膨胀超出正常范围。你需要有一个已经配置 SSL 的镜像才能工作。
步骤 1:在系统上启用 SSH
SSH Docker容器运行命令教程 - 首先安装并启用 SSH 服务:
在 Ubuntu 18.04 上启用 SSH:
sudo apt-get install ssh
sudo systemctl ssh start
sudo systemctl ssh enable
service ssh status
在 CentOS 7 上启用 SSH:
yum –y install openssh-server openssh-clients
service sshd start
service sshd enable
service 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
系统将显示如上图所示的 IP 地址。
注意: 目标 docker 容器必须正在运行才能获取其 IP 地址。如果你需要启动现有的 docker 容器,请运行sudo docker start container_name
.
第 3 步:SSH 进入 Docker 容器
Ping IP 地址以确保它可用:
ping –c 3 172.17.0.2
使用 SSH 工具连接到镜像:
ssh root@172.17.0.2
系统应提示输入该容器的 root 用户密码。如果它显示Connection denied,则可能没有为 SSH 配置容器。如果提示发生变化,你现在已通过 SSH 连接,并且可以在容器中运行命令。
SSH Docker容器运行命令教程结论
SSH如何连接到Docker容器并运行命令?Docker 容器是轻量级和过渡性的,因此不推荐使用传统的 SSH 连接。在 Docker 容器中运行命令的推荐方法是docker exec
或docker attach
。
如果你要配置多个远程虚拟机,则可以使用该docker-machine ssh
命令通过 Docker 连接到虚拟机。对于大多数用户,推荐使用前两种命令方法。