docker容器⾥安装ssh的具体步骤
docker安装ssh
通过命令⾏安装
1.pull ubuntu镜像
docker pull ubuntu:latest
2.启动并进⼊bash
docker run -it -d ubuntu:lastest /bin/bash
# 查看刚刚运⾏容器的id
docker ps
# 在容器中执⾏bash命令
docker exec -it id /bin/bash
3.安装openssh-server并启动
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登陆
# ⽣成ssh key
ssh-keygen -t rsa
# 修改sshd-config允许root登陆
sed -i 's+PermitRootLogin prohibit-password+PermitRootLogin yes' /etc/ssh/sshd-config
修改完sshd-config之后需要重启sshd服务
// 到pid
ps -aux | grep ssh
kill -9 pid
/usr/sbin/sshd -D &
查看容器ip
ifconfig
在主机上进⾏登陆
ssh root@ip
就可以登录成功了,但是注意这⾥是docker容器的宿主机才能登陆成功,如果需要其他机器登陆,可以在启动docker的时候进⾏端⼝映射
// 11122宿主机端⼝,22为容器端⼝
docker run -it -p 11122:22
// 在其他机器上可以使⽤以下命令登陆,假设宿主机ip为192.168.1.101
ssh -p 11122 root@192.168.1.101
5.保存容器
// 把id为id的容器保存
docker commit id sshd:ubuntu
// 停⽌容器
docker stop id
通过dockerfile
# 以最新的Ubuntu镜像为模板
FROM ubuntu:latest
ubuntu vim命令// 将本⽬录下的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镜像
docker build -t nginx:ubuntu .
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论