Docker中配置centos容器支持ssh
时间:2022-05-06
本文章向大家介绍Docker中配置centos容器支持ssh,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在Docker起步中,已经下载了ubuntu系统镜像,启动容器后成功执行了一个简单的系统命令
此时的容器是封闭的,下面我们就建立起和容器的沟通桥梁 - 配置SSH服务
这里使用centos镜像进行配置
步骤
(1)下载centos基础镜像
(2)编写集成配置文件,在基础镜像之上支持ssh
(3)运行配置文件,创建支持ssh的新镜像
(4)运行容器,同时开启ssh服务
(5)测试,用ssh命令连接容器
操作
(1)下载centos基础镜像
执行下载镜像命令
# docker pull centos
(2)编写配置文件
新建一个测试目录,在其下新建配置文件
# vi Dockerfile
内容:
FROM centos
MAINTAINER dys "dys@abc.com"
RUN yum install -y openssh openssh-server openssh-clients
RUN mkdir -p /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN /bin/echo 'root:aaaaaa' |chpasswd
RUN useradd dys
RUN /bin/echo 'dys:aaaaaa' |chpasswd
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN /bin/echo -e "LANG="en_US.UTF-8"" > /etc/default/local
EXPOSE 22
CMD /usr/sbin/sshd -D
(3)运行配置文件,创建镜像
在Dockerfile文件所在目录下执行:
docker build -rm -t dys/centos:ssh .
当执行完后,使用 docker images 命令就能看到刚刚创建的镜像 dys/centos
(4)运行容器
执行命令启动容器
docker run -d -p 22 dys/centos:ssh
使用 docker ps 命令查看是否启动成功
如果看到了刚创建的镜像名称,说明此容器已成功运行
0.0.0.0:1035->22/tcp 说明22端口对应的是1035端口,我们就可以使用ssh客户端连接了
(5)连接测试
使用ssh命令连接容器
上面的配置文件中添加了用户:dys,并设置了密码:aaaaaa
ssh dys@127.0.0.1 -p 1035
输入密码 aaaaaa
进入容器的命令行
这个过程中最重要的是 Dockerfile 配置文件的编写,后续会详细介绍此文件
- c# IO操作(带进度的文件复制器,读取文本文件的指定行)
- 高科技来了!玩游戏一样开船的时代来了……
- C++库大全
- 人工智能行业前景预测 全球市场或超2700亿元
- Arxiv网络科学论文摘要14篇
- 工信部:网络强国建设2018年重点工作任务
- 刚刚!张小龙再出重磅!微信小程序掀起新零售红利狂潮!
- 无人驾驶系列——深度学习笔记:Tensorflow的安装-windows系统
- 2018年12大顶级云安全威胁
- 缤果盒子为域名意识打call 六位数秒下bingobox.com
- 用Qt写软件系列二:QCookieViewer(浏览器Cookie查看器)
- 用Qt写软件系列一:QCacheViewer(浏览器缓存查看器)
- 用Qt写软件系列三:一个简单的系统工具(上)
- ChartDirector应用笔记(三)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法