使用dockerfile快速构建一个带ssh的docker镜像

不多说先给代码

FROM ubuntu:22.04 # 基础镜像 可替换为其他镜像
USER root
RUN echo 'root:root' |chpasswd
RUN apt-get update -y \
    &&  apt-get install -y git wget curl
RUN apt-get install -y openssh-server vim && apt clean \
    && rm -rf /tmp//* /var/lib/apt/lists/* /var/tmp* \
    && echo "PermitRootLogin yes" >> /etc/ssh/sshd_config



RUN mkdir -p /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"] # 为什么是 sbin 不是 bin 呢, 我也不懂, 总之别改

启动镜像

  • -p xxxx:22 挂载内部端口 22
docker run -d -p 30969:22  docker.io/library/target-image

详解

设置用户

USER root
RUN echo 'root:root' |chpasswd 
# 账号:密码

ssh 三步骤

  • 首要条件是安装 openssh-servervim
apt-get update -y \
&&  apt-get install -y openssh-server vim
  • 其次添加字段 "PermitRootLogin yes"/etc/ssh/sshd_config文件
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
  • 最后新建文件夹
mkdir -p /var/run/sshd

如何让vscode也能连接

  • 安装 wgetcurl
apt-get update -y && \
apt-get install -y git wget curl

设置镜像自动启动 ssh

CMD ["/usr/sbin/sshd", "-D"]
# 为什么是 sbin 不是 bin 呢, 我也不懂

查看ssh服务是否启动

service ssh status

若未启动

service ssh start

log

root@2e1bf289cc16:/tmp# service ssh status
 * sshd is not running
root@2e1bf289cc16:/tmp# service ssh start
 * Starting OpenBSD Secure Shell server sshd                                                                                                                                                [ OK ]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值