docker容器里安装ssh的具体步骤
本篇文章主要介绍了docker容器里安装ssh的具体步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
docker安装ssh
通过命令行安装
1.pull ubuntu镜像
1 | docker pull ubuntu:latest |
2.启动并进入bash
1 2 3 4 5 | docker run -it -d ubuntu:lastest /bin/bash # 查看刚刚运行容器的id docker ps # 在容器中执行bash命令 docker exec -it id /bin/bash |
3.安装openssh-server并启动
1 2 3 4 5 6 7 8 9 | apt-get update apt-get install openssh-server # 启动之前需手动创建/var/run/sshd,不然启动sshd的时候会报错 mkdir -p /var/run/sshd # sshd以守护进程运行 /usr/sbin/sshd -D & # 安装netstat,查看sshd是否监听22端口 apt-get install net-tools netstat -apn | grep ssh |
如果已经监听22端口,说明sshd服务启动成功
4.ssh登陆
1 2 3 4 | # 生成ssh key ssh -keygen -t rsa # 修改sshd-config允许root登陆 sed -i 's+PermitRootLogin prohibit-password+PermitRootLogin yes' /etc/ssh/sshd-config |
修改完sshd-config之后需要重启sshd服务
1 2 3 4 | // 找到pid ps -aux | grep ssh kill -9 pid /usr/sbin/sshd -D & |
查看容器ip
1 | ifconfig |
在主机上进行登陆
1 | ssh root@ip |
就可以登录成功了,但是注意这里是docker容器的宿主机才能登陆成功,如果需要其他机器登陆,可以在启动docker的时候进行端口映射
1 2 3 4 | // 11122宿主机端口,22为容器端口 docker run -it -p 11122:22 // 在其他机器上可以使用以下命令登陆,假设宿主机ip为192.168.1.101 ssh -p 11122 root@192.168.1.101 |
5.保存容器
1 2 3 4 | // 把 id 为 id 的容器保存 docker commit id sshd:ubuntu // 停止容器 docker stop id |
通过dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # 以最新的Ubuntu镜像为模板 FROM ubuntu:latest // 将本目录下的sources.list作为容器的一个文件 ADD sources.list /root/sources .list // 使用阿里Ubuntu源,更新快 RUN cp /root/sources .list /etc/apt/sources .list.d /aliyun .list RUN apt-get update RUN apt-get install -y openssh-server RUN apt-get install -y net-tools RUN apt-get install -y vim RUN mkdir -p /var/run/sshd RUN mkdir -p mkdir /root/ . ssh / // 修改root密码,便于远程登录 RUN echo root:123456 | chpasswd // 将key生成在指定文件内 RUN ssh -keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -P '' -N '' // 配置 ssh 可以使用root登陆 RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config // 开放22端口 EXPOSE 22 CMD /usr/sbin/sshd -D & |
根据Dockerfile build镜像
1 | docker build -t nginx:ubuntu . |
以上就是本文的全部内容,希望对大家的学习有所帮助