SSH如何连接docker容器


这篇文章主要介绍了SSH如何连接docker容器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SSH如何连接docker容器文章都会有所收获,下面我们一起来看看吧。简介什么是dockerdocker 是一个开源项目,诞生于 2013 年初,最初是 dotcloud 公司内部的一个业余项目。它基于 google 公司推出的 go 语言实现。 项目后来加入了 linux 基金会,遵从了 apache 2.0 协议,项目代码在 github 上进行维护。docker 自开源后受到广泛的关注和讨论,以至于 dotcloud 公司后来都改名为 docker inc。redhat 已经在其 rhel6.5 中集中支持 docker;google 也在其 paas 产品中广泛应用。docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 docker 的基础是 linux 容器(lxc)等技术。在 lxc 的基础上 docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 docker 的容器就像操作一个快速轻量级的虚拟机一样简单。下面的图片比较了 docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。为什么要用docker作为一种新兴的虚拟化方式,docker 跟传统的虚拟化方式相比具有众多的优势。首先,docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 docker 容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而docker 只需要启动 10 个隔离的应用即可。具体说来,docker 在如下几个方面具有较大的优势。更快速的交付和部署对开发 香港云主机和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。更高效的虚拟化docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。更轻松的迁移和扩展docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。更简单的管理使用 docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。对比传统虚拟机总结安装docker本来打算在centos6上安装docker,最终由于centos6上自带的kernel版本太低导致docker启动失败而放弃(kernel升级太繁琐)。下面使用centos7安装docker,本人采用虚拟机的方式来安装,安装好的虚拟机必须保证能访问外网。centos7 系统 centos-extras 库中已带 docker,可以直接安装:安装之后启动 docker 服务,并让它随系统启动自动加载:获取镜像可以使用 docker pull 命令来从仓库获取所需要的镜像。下面的例子将从 docker hub 仓库下载一个centos6并且安装了jdk7的镜像:列出本地镜像使用 docker images 显示本地已有的镜像。启动容器启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。因为 docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。
下面的命令则启动一个 bash 终端,允许用户进行交互。其中,-t 选项让docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i 则让容器的标准输入保持打开。当利用 docker run 来创建容器时,docker 在后台运行的标准操作包括:
(1)检查本地是否存在指定的镜像,不存在就从公有仓库下载
(2)利用镜像创建并启动一个容器
(3)分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
(4)从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
(5)从地址池配置一个 ip 地址给容器
(6)执行用户指定的应用程序
(7)执行完毕后容器被终止可以使用下面命令来查看centos版本信息:修改root密码使用passwd密码来修改密码(如提示没有这个命令行使用yum install passwd安装):安装openssh使用下面命令安装ssh server/ssh client:修改ssh配置文件以下选项,去掉#注释,将四个选项启用:重启ssh服务,并设置开机启动:退出容器并保存更改使用exit命令或者ctrl+c来退出当前运行的容器:注意:上面ffe81683c404是容器的id,退出后用于保存的唯一id。当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 docker commit 命令来提交更新后的副本。其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的id;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 id 信息。提交后docker中就会多出一个centos6-jdk7:ssh的一个镜像。
启动新的容器并打通22端口将新的镜像启动,并将docker服务器的50001端口映射到容器的22端口上:ssh连接容器:
关于“SSH如何连接docker容器”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“SSH如何连接docker容器”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注开发云行业资讯频道。

相关推荐: js中的insert怎么插入节点

这篇“js中的insert怎么插入节点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js中的insert怎么插入节点”文章吧。1、判断位置不能超…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/03 22:14
下一篇 07/03 22:14

相关推荐