通过ssh连接到docker容器中

博客作为学习笔记记录,若有理解或表述错误,欢迎指出

我们可以通过ssh登录到服务器、虚拟机上完成操作。而容器是运行在服务器上的,我们通过22端口(ssh默认服务端口)登进去的是服务器界面.

一般情况下,要对容器执行一些操作,则为:

ssh root@<host-ip>
docker exec -it <container-id> bash

此时可以在容器内执行一些ssh命令。

那么能不能直接登录到容器内执行命令呢,而不是通过docker exec来执行命令呢?

举个栗子,容器镜像以centos为例,直接ssh到容器内。

1. 起docker容器时,通过暴露容器服务端口,把host上50001(空闲端口)映射到容器内22端口,

docker run -itd -p 50001:22 --name ssh systemd /bin/bash

2. 在容器里安装ssh服务

yum install -y openssh-server openssh-client

2、 配置sshd_config

3、设置密码

#修改root密码
passwd root
#若无passwd命令,安装passwd
yum install -y passwd
passwd root

4、启动ssh服务

5、 远程登录 

ssh root@<host_ip> -p 50001

若通过k8s yaml部署时,其对应yaml为:

apiVersion: v1
kind: Service
metadata:
  name: ssh-my-centos
  labels:
    app: my-centos
spec:
  type: NodePort
  ports:
  - port: 50001
    targetPort: 22
    nodePort: 30002
    protocol: TCP
  selector:
    app: my-centos



 

猜你喜欢

转载自blog.csdn.net/ksj367043706/article/details/88779121