docker 配置一个支持sshd的debian
#选择基础系统镜像
还是考虑用debian系列,docker pull debian:bullseye-slim
plaintext
docker run -itd --name debian-for-sshd -p 59010:2222 -p 59011:22 --privileged=true debian:bullseye-slim /bin/bash
docker exec -it debian-for-sshd /bin/bash
#安装sshd
#国内源/更新/安装sshd nano tzdata
plaintext
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
apt update
apt install openssh-server nano tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#配置登录信息
plaintext
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
ssh-keygen -t dsa -P "" -f /etc/ssh/ssh_host_dsa_key && \
ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \
ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key
echo "root:root" | chpasswd
#打开sftp
https://dev.leiyanhui.com/pve/open-sftp/
#修改端口 为2222
plaintext
nano /etc/ssh/sshd_config
/etc/init.d/ssh restart
#测试登录
plaintext
ssh [email protected] -p 59010
#配置脚本自动启动
plaintext
echo "/etc/init.d/ssh start" > /autoboot.sh
echo "tail -f /dev/null" >> /autoboot.sh
最后这行是防止退出的
#清理
plaintext
apt clean
apt autoclean
#备份容器
在宿主机运行
plaintext
docker stop debian-for-sshd
docker export debian-for-sshd > debian11-for-sshd.tar
# 打包压缩
gzip debian11-for-sshd.tar
#备份
cp debian11-for-sshd.tar.gz /mnt/smb/docker
# 删除旧的容器
docker rm debian-for-sshd
#创建新容器
plaintext
cat debian11-for-sshd.tar.gz | docker import - debian11:sshd-autoboot.sh2222
docker run -itd --name debian-go-codeserver-git --privileged=true \
-p 59010:2222 -p 59011-59019:59011-59019 \
debian11:sshd-autoboot.sh2222 sh /autoboot.sh
可以直接用我放在阿里云上的
plaintext
docker run -itd --name debian-go-codeserver-git --privileged=true \
-p 59010:2222 -p 59011-59019:59011-59019 \
registry.cn-qingdao.aliyuncs.com/joyanhui/base-sh-debian:debian11-sshd-autoboot.sh2222 sh /autoboot.sh
#搞其他的
ssh 连接上随便玩起来,如果要添加跟随容器启动的程序 就编辑 /autoboot.sh