欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

docker容器里安装ssh的具体步骤

程序员文章站 2023-11-02 10:01:28
docker安装ssh 通过命令行安装 1.pull ubuntu镜像 docker pull ubuntu:latest 2.启动并进入bas...

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

// 将本目录下的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 .

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