1.下载centos镜像:docker pull centos
2.运行centos镜像:docker run -d --name ssh_service --privileged --expose 22 centos /usr/sbin/init
以上每一个参数都可以在docker官方文档中找到docker run | Docker documentation,也可以通过docker run --help来查看,学会看官方文档或者手册才是真正的开始。
-d:代表后台运行
--name:定义容器名称
--privileged:赋予扩展权限,该参数是执行systemctl start ssh服务的前提条件,叠加最后/usr/sbin/init可以解决“docker 报错 System has not been booted with systemd as init system (PID 1)、Can't operate、Failed to connect to bus: Host is down”这个问题
--expose:暴露22,ssh服务器端口
3.输入docker container ps查看容器是否正常启动
4.执行docker exec -it ssh_service /bin/bash进入容器
更新阿里yum源阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区,这里我的centos镜像版本是8.4,由于近期阿里镜像调整了镜像路径centos8的镜像源无法直接使用,所以需要进行局部调整:
rm -f /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
sed -i 's/$releasever/8-stream/g' /etc/yum.repos.d/CentOS-base.repo
yum clean all
yum makecache
5.安装ssh服务
RUN yum install -y openssh-server libaio libnsl;
# 添加test用户,设置密码123456
useradd test;
echo 'test:123456' | chpasswd;
echo 'root:123456' | chpasswd;
6.启动ssh服务:
systemctl start ssh
systemctl enable ssh
7.查看容器ip,输入ip addr
退出容器,在docker host中输入ssh root@172.17.0.2 测试ssh服务是否正常使用