docker创建可ssh访问的centos容器

因缺少datakit迁移数据需要的物理机,使用docker容器代替
参考
https://blog.huochengrm.cn/pc/34366.html

1.运行容器

docker run -it --name centos-ssh centos:7 /bin/bash

2.安装ssh

yum update -y && yum install -y openssh-server
报错Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
镜像源问题,使用阿里云镜像源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

3.修改配置文件

vi /etc/ssh/sshd_config
PermitRootLogin yes # 允许root登录
UsePAM no # 禁用PAM认证
Port 22 # 修改端口

4.解决兼容性问题

sed -i 's/session\srequired\spam_loginuid.so/session optional pam_loginuid.so/g' /etc/pam.d/sshd

5.设置密码

echo "root:123456" | chpasswd

6.启动ssh

/usr/sbin/sshd -D &
报错sshd: no hostkeys available -- exiting.
缺少key,自动生成key
ssh-keygen -A

7.验证

netstat -tunlp | grep sshd
报错netstat: command not found,安装net-tools
yum install -y net-tools

8.退出容器后提交为新镜像

docker commit centos-ssh centos-with-ssh:7

9.启动镜像

docker run -d -p 1122:22 --name sshd-container centos-with-ssh:7 /usr/sbin/sshd -D

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容