小知识: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 .

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/sunshine-2015/p/6384471.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux 查看进程消耗内存情况总结

2023-4-17 17:35:39

建站知识

小知识:Ubuntu 16.04中Docker的安装和代理配置教程

2023-4-17 17:55:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索