docker 安装linux centos 环境
如何在centos7中使用docker创建一个支持ssh连接的容器
以下内容已有现成的,这里借用下这哥们的帖子https://www.cnblogs.com/caidingyu/p/10642158.html。
并附上自己理解
1.拉取centos7.4镜像(由于7.4目前是最稳定的版本,所以推荐使用centos7.4)
ps:最新版已到8,可去https://hub.docker.com/查阅
| 1 | docker pull centos:7.4.1708 | 
2.执行以下命令查看已有的镜像
| 1 | docker images | 

3、基于centos镜像,创建一个名为centos7ssh的容器并进入容器(这里名称可以自定义)
ps:启动时 /bin/bash 表示命令行path。该path环境变量,自带的有:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
| 1 | docker run -it --name centos7ssh centos:7.4.1708 /bin/bash | 

4、进入容器后,安装ssh服务端和客户端,服务端能让其他主机远程登录本机,客户端能让本机远程登录其他主机
ps:docker安装的centos没有passwd命令,但是你用whereis passwd依然可以找到位置。所有建议你安装ssh的passwd命令
| 1 | yum -y installpasswdopenssl openssh-server openssh-clients | 
ps:我自己安装yum install openssh-server 后。无需走5,6步
5.创建 /var/run/sshd/目录,要不然sshd服务启动会报错
| 1 | mkdir/var/run/sshd/ | 
6.编辑sshd的配置文件/etc/ssh/sshd_config,将其中的UsePAM yes改为UsePAM no
可以进入sshd_config文件中去修改,也可以使用命令:
| 1 | sed-i "s/UsePAM.*/UsePAM no/g"/etc/ssh/sshd_config | 
ps:你用密码登录就无需步骤7
7.创建公私密钥,输入命令后,直接按两次enter键确认就行了
| 1 2 3 | ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_keyssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key | 
8.完成上述几步后,可以开启ssh服务了(&表示后台启动)
| 1 | /usr/sbin/sshd-D & | 
9.此时使用命令ps -ef | grep sshd 便可以看到

10.查询22端口是否处于监听状态
| 1 | yum -y installlsof | 
| 1 | lsof-i:22 | 

11.修改root密码
| 1 | passwd | 
12.测试
输入命令ssh localhost,然后输入之前设置的root密码

上图中可以看到已经登录到本机了,也就说容器中的主机拥有了ssh远程登录其它主机的能力,当然你也可以登录其他主机。
要退出的话,输入命令exit即可
13.如何配置外部客户端访问docker里的centos7.4容器
获取容器的ID等端口映射信息
| 1 | docker ps-a | 
提交容器成为新的镜像,例如叫做sshd_centos7.4,输入
| 1 | docker commit 容器ID sshd_centos7.4 | 
启动这个镜像的容器,并映射本地的一个闲置的端口(例如15000)到容器的22端口,并启动容器的sshd(只要端口不冲突可以同时启动多个容器,如下图)
| 1 | docker run -d -p 15000:22 sshd_centos7.4 /usr/sbin/sshd-D | 

现在打开新的终端,输入ssh root@宿主机IP地址 -p 15000,如果能连接成功,会要求输入密码的,输入刚才passwd命令设置的root账户密码就可以进入容器的终端了
如果连接失败,请检查防火墙是否未开放该端口。
参考文档:https://www.cnblogs.com/whutxldwhj/p/6427530.html
https://blog.csdn.net/u013140345/article/details/79777311
https://blog.csdn.net/weipeng19861130/article/details/79006555
以下为网友提供的方法还未验证是否可用,可自行验证
| 1 2 3 4 5 6 7 8 9 10 11 12 | docker pull centos:7.2.1511    //也可以不指定版本,默认最新latestdocker run -t -i centos:7.2.1511 /bin/bash//启动并进入docker 容器yum installwget                    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum cleal allyum installpasswdyum installopenssh-server        #安装ssh服务端echo'passw0rd'| passwdroot    //修改root密码docker commit [容器ID] [新镜像名]   //使用commit 提交,简单的配置可以使用dockerfile创建镜像,但是要配置环境比较复杂,还是需要用到commitdocker run -d -p 220:22 c7ssh /usr/sbin/sshd-D      //启动容器,并绑定容器端口22到宿主主机, 可以有多个-p 绑定多个端口,例如22端口让远程客户端连接,8080 可以访问容器内tomcat | 
总结:起初我安装的是ubuntu,当然ubuntu的image很小只有80M左右。但是他仅仅只是一个内核,什么都没有,自己需要安装的东西太多。直接换的centos

docker 安装linux centos 环境的更多相关文章
- 安装docker报错:https://download.docker.com/linux/centos/7/i386/stable/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
		如题,执行docker安装命令报错: [root@centos ~]# yum install docker-ce Loaded plugins: fastestmirror, security Se ... 
- Linux/CentOS环境下如何安装和配置PhantomJS工作环境
		PhantomJS 是一个基于WebKit的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, C ... 
- 在虚拟机(VMware)中安装Linux CentOS 6.4系统(图解) 转
		一.下载最新版本Linux CentOS 1.打开官网地址:http://www.centos.org/,点击Downloads->Mirrors 2.点击CentOS ... 
- docker安装教程-centos
		Docker 要求CentOS 系统的内核版本在3.10以上,查看本页面的前提条件来验证你的CentOS 版本是否支持Docker . 1.通过uname -r 命令查看你当前的内核版本 uname ... 
- 如何通过VMware安装Linux CentOS 7.7系统
		如何在Vmware安装Linux CentOS 7.7系统,并且是最小化安装.之后进行必要的配置修改,并实现基础优化.最后做一个快照. 安装Linux CentOS 7.7 安装要求:安装后的虚拟机用 ... 
- Docker安装 Ubuntu Centos
		Ubuntu 安装Dokcer 1. 删除旧版本Docker安装包和依赖项 sudo apt-get remove docker docker-engine docker.io containerd ... 
- 如何用docker安装laravel开发环境
		如何用docker安装laravel开发环境 看laravel框架的官方文档安装部分时,发现需要安装特别多软件,估计还有许多复杂的配置,官方推荐使用Laravel Homestead虚拟机进行安装,但 ... 
- VMware下安装Linux(Centos)步骤
		VMware下安装Linux(Centos)步骤 准备步骤:(安装软件教程采用 VMware 9 .Centos6.5 为例) 启动VMware的画面 点击File--->New Virtua ... 
- Docker 安装入门 Centos Linux安装Docker 部署mysql
		这次购买了阿里云云服务器,并且安装了Centos 7.5 学习使用Docker, 确认版本信息 Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上. Dock ... 
随机推荐
- EditPlus各个版本的注册码,亲测可用
			原文链接:https://www.cnblogs.com/shihaiming/p/6422441.html EditPlus4注册码 注册名:host1991 序列号:14F50-CD5C8- ... 
- uni-app快速入门教程
			1.什么是uni-app? uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以及各种小程序(微信/支付宝/百度/头条/QQ/ ... 
- Mycat配置分库分表(垂直分库、水平分表)、全局序列
			1. Mycat相关文章 Linux安装Mycat1.6.7.4并实现Mysql数据库读写分离简单配置 Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从) Docke ... 
- #2020征文-手机#深鸿会深大小组:HarmonyOS手机游戏—数字华容道
			目录: 前言 概述 正文 创建项目 实现初始界面布局 实现数字的随机打乱 实现滑动或点击调换数字 实现游戏成功界面 结语 源码包 前言 12月16号HarmonyOS2.0手机开发者Beta版已经发布 ... 
- Java进阶:基于TCP通信的网络实时聊天室
			目录 开门见山 一.数据结构Map 二.保证线程安全 三.群聊核心方法 四.聊天室具体设计 0.用户登录服务器 1.查看当前上线用户 2.群聊 3.私信 4.退出当前聊天状态 5.离线 6.查看帮助 ... 
- python装饰器学习详解-函数部分
			本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 最近阅读<流畅的python>看见其用函数写装饰器部分写的很好,想写一些自己的读书笔记. ... 
- Autofac官方文档翻译--一、注册组件--3属性和方法注入
			官方文档:http://docs.autofac.org/en/latest/register/prop-method-injection.html Autofac 属性和方法注入 虽然构造函数参数注 ... 
- Autofac官方文档翻译--一、注册组件--1注册概念
			官方文档:http://docs.autofac.org/en/latest/register/registration.html 一.注册概念 使用Autofac 注册组件,通过创建一个Contai ... 
- win10 设置文件夹别名、修改文件夹图标、修改文件夹别名、英文目录和中文目录、设置文件夹中文名称、快捷访问显示设置中文
			最近在设置文件夹的时候发现个有趣的事情: 系统路径 C:\Users\Administrator 内的文件夹不仅有图标还显示中文名称,但是打开路径的时候显示的却是英文,这就激发了我的探索欲,究竟是为 ... 
- 简单web页面第一步---表单
			1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncod ... 
