docker 容器开启ssh

一. 从docker hub 下载centos 官方镜像

docker pull centos:7

运行容器

docker run -i -t -p 1022:22 --name ssh centos:7 /bin/bash

二. 安装passwd,openssl,openssh-server

yum -y update

yum install passwd openssl openssh-server -y

启动sshd:

# /usr/sbin/sshd -D &

正常启动需要pid文件存在,可以创建/var/run/ssh

这时报以下错误:

[[email protected] b5926410fe60 /]# /usr/sbin/sshd

Could not load host key: /etc/ssh/ssh_host_rsa_key

Could not load host key: /etc/ssh/ssh_host_ecdsa_key

Could not load host key: /etc/ssh/ssh_host_ed25519_key

执行以下命令解决:

[[email protected] /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ‘‘

[[email protected] /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ‘‘

[[email protected] /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ‘‘

然后,修改 /etc/ssh/sshd_config 配置信息:

UsePAM yes 改为 UsePAM no

UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no

[[email protected] /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config

[[email protected] /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新启动sshd

[[email protected] /]# /usr/sbin/sshd -D &

编写简单的启动脚本,方便直接后台运行容器ssh服务远程连接容器

vim /sshd.sh

#!/bin/bash

/usr/sbin/sshd -D

chmod 755 /sshd.sh

三. 修改root 密码

[[email protected] /]# passwd root

五. 将当前容器保存为镜像

docker ps -all

docker commit ce09 centos7-ssh

六. 在宿主机上基于新创建的镜像启动新的容器

--先删除之前的容器 docker ps -all

docker rm -f 4122f818a741

--基于新镜像运行容器

docker run -t -i -p 10021:22 --name one_ssh centos7-ssh:latest /bin/bash

docker run -p 10022:22 -d centos7-ssh:latest /run.sh

当容器内22端口启动后才可以用docker ps -a看到相应的端口

保证22端口启动后就可以进行远程 连接了。

可以直接拿此镜像使用了

时间: 2024-12-09 19:12:50

docker 容器开启ssh的相关文章

解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题

在docker中运行第三方服务时,通常需要绑定服务端口到本地主机.但使用 -p 参数进行的端口映射,会自动在iptables中建立规则,绕过firewalld,这对于端口级的黑白名单控制管理是很不利的,所以我们需要对iptables进行手动修改. 这里以从名为centos.19.09.05的image建立一个容器为例: 首先,如果系统是CentOS7的话,需要关闭自带firewalld防火墙,并切换为iptables. 假设需要将新容器的27017端口映射到主机的27017端口,一般情况下我们使

Docker入门实战-SSH连接docker容器

简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护. Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

ssh登录docker容器

ssh登录docker容器1.启动一个docker容器# docker run -t -i ubuntu/ruby:v1 /bin/bash2.然后在容器里,安装openssh-server openssh-client# apt-get install openssh-server openssh-client3.完成之后,修改root密码# passwd4.退出容器,并保存以上修改# docker commit 3ea7a99a0025 ubuntu/ruby:v25.停止,并删除刚才的容器

通过ssh方式登陆Docker容器的操作记录

前面几篇已经介绍了Docker基础环境的部署,下面介绍下通过ssh方式登陆Docker容器的操作记录 [[email protected] ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos7 7.3.1611 d5ebea14da54 2 weeks ago 311 MB <none> <none> d5c154b612c8 2 weeks ago 311 MB test latest ecefde07358

创建可以ssh的docker容器

操作系统:vm centos6.5 x64 192.168.240.148 docker容器:centos6.5 x64 172.17.0.3 1.下载原始镜像 [[email protected] ~]#docker pull centos  ###一般会拉最新版centos7和centos6.5过来,这里使用的是centos6.5### 2.安装openssh [[email protected] ~]# docker run -i -t kw1073/centos-new4 /bin/ba

SSH远程登陆docker容器

环境: Ubuntu 16.04(mac osx的VMware Fushion环境) 任务: Ubuntu 16.04通过SSH登陆docker(目的是为了运行在其他服务器的Jenkins访问docker,这个是另外一篇文章) 1.用户密码认证方式登陆 [email protected]:~$ sudo docker images[sudo] hsl 的密码: REPOSITORY TAG IMAGE ID CREATED SIZEhsl/ubuntu 14.04_add_sourcealiyu

创建支持ssh服务的docker容器和镜像

http://www.kongxx.info/blog/?p=57 1. 这里使用的centos作为容器,所以首先下载centos的imagessudo docker pull centos 2. 下载后运行一个centos的容器,这里使用centos6作为我测试的容器sudo docker run --name=centos-ssh -i -t centos:centos6 /bin/bash 3. 安装openssh-server服务软件包yum install openssh-server

为Docker容器中运行的gitlab添加ssh的一些问题记录

最近做的一个东西,是将gitlab10.x的汉化版本,从源码编译(在源码中自己定制一些东西),然后制作成Docker镜像,作为Docker容器来运行 在启用容器中的gitlab的ssh的时候,遇到了一些问题,在这里记录一下: 网络的问题: gitlab是在容器中运行,但是我们使用git访问的时候,用的是 [email protected]主机域名:用户名/仓库名的方式来访问的,这就带来了一个问题: 客户端用ssh访问的时候,访问到的是Docker主机的22端口,而不是容器中的22端口, 解决的方

ssh连接docker容器

有两种方法: 1.通过宿主机的端口映射访问docker 在宿主机上启动容器,分配端口,启用ssh服务: docker run -p 10022:22 -d sshd:ubuntu /usr/sbin/sshd -D ssh连接: ssh 用户名@192.168.163.131 -p 10022 https://www.jb51.net/article/114048.htm 2.ssh直接访问docker 启动sshd服务 创建ssh用户admin.密码 ifconfig配置ip ssh [ema