在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
输入密码连接成功