文档章节

centos7中安装一个可以ssh登陆的docker容器

it_potato
 it_potato
发布于 2015/01/09 22:49
字数 859
阅读 389
收藏 1

        最近一直在捣鼓docker,这个东东着实让我兴奋了几天,下面分享下安装过程。

因为docker要求的linux内核版本较高,所以我在vbox中安装了个centos7。至于centos7如何安装,就不啰嗦了,这里用的是最小化的安装。

        首先配置网卡,保证虚拟机能正常的访问网络,因为安装docker需要联网。我一般习惯在安装虚拟机时设置两个网卡,一个使用nat方式连接,负责上网;一个使用host only方式连接,用来主机到虚拟机的连接。然后启用两个网卡,最简单的方式就是输入dhclient方式,系统会自动分配ip给网卡。

首先,安装docker的命令:

# yum -y install docker

安装完成后,可以使用下面的命令查看可以使用的镜像:

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

此时没有任何的镜像可用,无法启动容器,所以我们需要下载镜像。这一步我们可以选择下载各种不同系统的镜像,这里依然选择最熟悉的centos,这一步docker会联网下载镜像文件:

# docker pull centos

等到镜像下载完成后,再使用docker images命令会看到有几个centos的镜像:

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE


首先来搭建一个可以通过ssh访问的docker容器。

1. 启动一个docker容器:

# docker run -i -t centos /bin/bash

这样就会新建一个docker容器,并且进入容器的bash中,

2.  安装sshd:

# yum -y install openssh-server

3.  启动sshd,这里要用绝对路径,查看某个命令的路径可以用whereis或which:

# /usr/sbin/sshd -D

centos下启动sshd的时候会出现下列错误:

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

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

依次执行下列命令即可:

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key        #直接回车即可

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key        #直接回车即可

ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""

按后再启动sshd服务应该是没问题了。

4.  完成后,编辑sshd_config配置文件,找到UsePAM yes这一段配置,将其改成UsePAM no

#UsePAM no
UsePAM yes
改成
UsePAM no
#UsePAM yes

    如果不修改这段的话,使用ssh登陆到容器里面来的时候会马上退出。

5.  安装passwd,并修改root的密码:

# yum -y install passwd
# passw root
Changing password for user root.
New password:

6.  改完密码执行exit命令退出,这时会回到宿主机器的shell,执行下列命令将容器提交到镜像:

# docker commit containerid imagename

    这里的containerid是容器的id,imagename就是提交时候镜像的名称,第一次提交的时候最好使用一个新的名称,不要覆盖了原有的干净的centos镜像。

    容器id可以通过docker ps -l命令查看到,启动容器后默认的主机名其实就是容器id。

7.  通过docker run启动一个新的容器,参数-d表示后台运行,-p表示docker到主机的端口的映射。

# docker run -d -p 10022:22 imagename /usr/sbin/sshd -D

    如果启动没问题的话,就可以登录到容器了:

# ssh root@localhost -p 10022

    登录后我们就可以在里面安装各种软件搭建各种环境了。

© 著作权归作者所有

it_potato
粉丝 3
博文 3
码字总数 1866
作品 0
武汉
程序员
Docker自制镜像之私有云平台完整版

一、Docker安装 Docker之安装篇 二、Docker操作 搜索中央仓库可用镜像 $ docker search centos 2.1【镜像操作命令】 2.1.1 查看所有镜像docker images删除所有镜像 $ docker rmi $(docker im...

saxon_i
08/13
0
0
Docker容器学习与分享12

Docker多主机管理 之前在一台Centos7上安装了Docker,如果是在多台主机上都安装Docker,用手动安装的方法不光效率低下,而且有可能出错,所以可以使用进行多台主机的Docker安装和管理。 具体...

顾北清
07/14
0
0
[docker]一些经常用到的docker容器启动方法

busybox 命令参考 参考: https://k8smeetup.github.io/docs/concepts/cluster-administration/logging/ https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#dns-po......

iiiiher
2017/10/27
0
0
使用ssh连接docker容器

原文地址:http://blog.csdn.net/qq34021712/article/details/73379851 前言: 使用ssh连接docker容器,需要给docker容器先分配好ip之后才可以开启ssh服务,才能使用ssh连接 参考文章:给docke...

haoxiaoyong1014
04/19
0
0
Dockerfile:制作可ssh登录的镜像

我们先手动制作一个可以ssh登录的容器,然后按照操作步骤编写Dockerfile,用docker build根据Dockerfile创建镜像,最后我们可以用这个镜像来生成可ssh登录的容器了。 一、首先创建一个容器并...

张斌_青岛
2014/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【挑战剑指offer】系列03:逆序打印单链表

本系列的算法原题来自于“牛客网-剑指offer”,写这个板块,不仅仅是解决算法问题本身,更是手动提高难度、自行变式,思考更多的解决方案,以带给自己一些启发。 1. 【逆序打印单链表】原始题...

LinkedBear
56分钟前
3
0
Linux内存布局

今天这篇文章主要是我之前看Linux内核相关知识和博客Gustavo Duarte中。我主要是看了这篇博客,并且结合之前的知识,对内存管理的的理解又上升了一个档次。所以想通过这篇文章总结下。 我们先...

linuxprobe16
今天
1
0
day94-20180921-英语流利阅读-待学习

记录死亡还是消费死者?自杀报道的媒体偏见 雪梨 2018-09-21 1.今日导读 自杀事件报道一直是新闻报道的重要部分,具有骇人听闻、吸引眼球的特点。可是在报道这些事件的时候,除了客观陈述事实...

飞鱼说编程
今天
5
0
如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
5
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部