docker下安装ubuntu, 无需手动启动ssh的两种方法

lcy1年前 (2023-03-12)linux相关322

方法一:在 Dockerfile 中自动启动 SSH 服务

在您的 Dockerfile 文件中添加以下命令:


 

    apt-get update && \
    apt-get install -y openssh-server && \
    mkdir -p /run/sshd && \
    echo 'root:password' | chpasswd && \
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
    service ssh start && \
    service ssh stop

上述命令安装了 OpenSSH 服务,并且在最后启动 SSH 服务,并立即停止。这将使 Docker 容器在启动时自动启动 SSH 服务。


方法二:在启动容器时使用参数自动启动 SSH 服务

您可以在启动容器时使用 -d 参数和 --restart 参数自动启动 SSH 服务。例如:


 docker run -d --restart=always -p 22:22 --name ubuntu-ssh ubuntu:latest /usr/sbin/sshd -D

上述命令在容器中启动 SSH 服务,并将容器的 22 端口映射到宿主机的 22 端口上。--restart 参数将确保容器在停止或退出后自动重启,并始终处于运行状态。


需要注意的是,在使用此方法时,需要将 SSH 服务的 -D 参数放在容器名称之后。


希望这些方法可以帮助您自动启动 SSH 服务。


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。