栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker容器内添加ssh开机自启动

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker容器内添加ssh开机自启动

文章目录
  • 问题
  • 一、配置Dockerfile
  • 二、start_ssh.sh脚本
  • 三、创建容器
  • 总结


问题

Dockerfile中创建容器,通常需要进入容器后手动安装ssh相关包,然后开启ssh服务。并且当容器重启后,ssh服务并不会随着重启,仍然需要手动开启。本文尝试使用Dockerfile修改容器内配置文件实现ssh自启动服务。


一、配置Dockerfile

首先需要安装ssh相关包,如第一个RUN所示

其次需要修改sshd_config文件,允许Root账户ssh远程登陆,如第二个RUN所示

然后需要将编写好的start_ssh.sh文件拷贝到容器的/root目录下,并赋予可执行权限,如第一个COPY和第三个RUN所示

最后需要将start_ssh.sh脚本添加到启动文件中,如第四个RUN所示

FROM ubuntu:18.04
  
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y dialog openssh-server ssh vim

RUN echo "root:123456" | chpasswd  
&& sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config 
&& sed -i 's/^#(PermitRootLogin.*)/1/' /etc/ssh/sshd_config

RUN /etc/init.d/ssh start

# RUN mkdir /var/run/sshd

EXPOSE 22

COPY ./test/start_ssh.sh /root/start_ssh.sh
RUN chmod +x /root/start_ssh.sh

RUN sed -i '$aif [ -f /root/start_ssh.sh ]; then ' /root/.bashrc 
&& sed -i '$a     . /root/start_ssh.sh' /root/.bashrc 
&& sed -i '$afi' /root/.bashrc


二、start_ssh.sh脚本

在root目录下创建一个start_ssh.sh文件

touch /root/start_ssh.sh
 
vim /root/start_ssh.sh

start_ssh.sh的内容如下:

#!/bin/bash
 
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
#service mysql start >>/root/star_mysql.log   //其他服务也可这么实现
三、创建容器

经过上述两部的配置,一个能够ssh自启动的容器镜像已经制作完成了,可以使用如下命令创建容器:

sudo docker build -t ssh_test .
sudo docker run -it -p3002:22 --name test ssh_test /bin/bash

也可以利用docker-conpose.yml实现一键启动:

vim docker-compose.yml

文件内容如下:

version: '2'
services:
  ssh_test:
    image: ssh_test:latest
    ports:
       - "3002:22"
    stdin_open: true # docker run -i
    tty: true       # docker run -t
    command: /bin/bash

总结

注意start_ssh.sh脚本COPY的位置

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号