【docker】在windows下使用ssh连接docker并且在dockers里边在跑一个docker

在windows下使用ssh连接docker并且在dockers里边在跑一个docker

开始准备(不想自己构建的直接看下一步)

  • 拉取官方镜像 这里用到的是centos7.9

docker pull centos:7.9

  • 进入到镜像安装常用工具

docker run -it centos:7.9 bash

# 更新yum
yum -y update
# 安装vim
yum install vim

# 安装ssh
yum install openssh-server
# 修改配置
vim /etc/ssh/sshd_config
# 取消以下注释
# PermitRootLogin yes
# Port=22 


# docker 安装
#安装工具包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

yum install docker-ce docker-ce-cli containerd.io

# 安装docker-compose
yum -y install epel-release
yum install python-pip
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -version

# 修改root密码
yum install passwd
# 设置root初始密码
passwd root # 输入你的密码
  • 打包成新的镜像方便以后使用
    注意在docker容器内部是无法启动ssh服务和docker服务的(需要一些特殊手段)
    exit 退出后

docker ps -a
docker commit 容器id centos7.9

启动容器并使用ssh连接

  • 这里也可以选择拉取我已经构建好的镜像(初始密码是root123456

docker pull bonianahao/centos7.9:1.3.0

  • 查看镜像文件

docker images

  • 使用特权模式启动docker 很重要

docker run -it --privileged=true -p 13555:22 centos7.9 /usr/sbin/init

注意: 如果不使用特权模式启动,用户就是一个伪root。也就不能启动ssh服务和docker
(–privileged=true 和 /usr/sbin/init 一个 都不能少)

  • 启动之后在进入容器

docker exec -it 容器id bash

# 查看一下有没有启动ssh服务
ps -e | grep ssh

# 启动docker
 systemctl docker start

# 查看是否启动成功
docker ps

# 显示如下说明启动成功
# CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

使用cmd连接docker

ssh -p 13555:22 root@127.0.0.1

输入密码连接成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薄年阿豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值