centos7中安装一个可以ssh登陆的docker容器
centos7中安装一个可以ssh登陆的docker容器
it_potato 发表于3年前
centos7中安装一个可以ssh登陆的docker容器
  • 发表于 3年前
  • 阅读 260
  • 收藏 1
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 安装docker及在docker中安装sshd服务。

        最近一直在捣鼓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

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

  • 点赞
  • 收藏
  • 分享
粉丝 3
博文 3
码字总数 1866