Docker--创建ssh远程镜像

来源:互联网 发布:单片机电子设计与制作 编辑:程序博客网 时间:2024/06/03 17:02

如果你需要远程登录到容器内进行一些操作的话,则需要进行SSH进行设置。

第一步

首先我们进行创建一个项目的目录,进行存放我们的shell文件和dockerfile文件。

mkdir sshd_ubuntucd sshd_unbutu/   #进入目录touch Dockerfile run.sh  #创建dockerfile文件和 run.sh文件

第二部

我们进行编写run.sh和authorized_keys文件。

#!/bin/bash/usr/sbin/sshd  -D

在宿主主机上生成ssh密钥对,并创建authorized_keys文件

ssh-keygen -t rsacat ~/.ssh/id_rsa.pub > authorized_keys

第三部

编写我们需要的dockerfile文件

# 设置镜像版本FROM ubuntu:14.04# 提供一些作者的信息MAINTAINER docker_user (houshuai0816@docker.com)# 下面开始运行更新命令RUN apt-get update# 安装ssh服务RUN apt-get install -y openssh-serverRUN mkdir -p /var/run/sshdRUN mkdir -p /root/.ssh# 取消pam限制RUN sed -ri 's/session required pam_loginuid.so/#session  required pam_loginuid.so/g'  /etc/pam.d/sshd# 复制配置文件到相应位置,并赋予脚本可执行权限ADD authorized_keys /root/.ssh/authorized_keysADD run.sh /run.shRUN chmod 755 /run.sh# 开放端口EXPOSE 22# 设置自启动命令CMD ["/run.sh"]

第四部

创建我们想要的镜像,使用docker build 命令(在sshd_ubuntu目录下)来创建镜像。

cd sshd_ubuntudocker build -t sshd:dockerfile . #注意后面有个 '.' 表示使用当前目录中的Dockerfile:

测试镜像

docker run -d -p 10122:22 sshd:dockerfile # 此处直接启动容器,并映射容器的22端口到本地的10122端口

就可以使用10122端口进行连接到新建的容器。

ssh 192.168.1.* :10122
原创粉丝点击