docker容器,docker commit创建ssh容器

在写这个之前给大家推荐一个很好用的docker image 下载地方——daocloud(http://get.daocloud.io/)


对于docker容器的操作,我们可以通过

docker exec -it  <容器名 或 容器id> /bin/bash

或者

docker attach <容器名 或 容器id>

进入容器内部操作,其实有很多的时候我们可以通过 ssh 连接从而来操作容器,今天就来跟大家分享一下如何用docker commit指令来制作一个ssh image


以下的操作都是用 root 账号进行操作的,宿主机是 Ubuntu16.04-server版的。


1.我们进入(我个人喜欢在 /home 目录中进行操作)/home 目录

cd /home


2.先从daocloud中pull一个基础镜像下来:

docker pull docker pull daocloud.io/library/ubuntu:14.04


3.用基础镜像创建一个容器:

docker run -it --name ssh-base daocloud.io/library/ubuntu:14.04 /bin/bash

不出意外话,我们应该在容器中了。


4.我们先更新一下这个容器的安装包:

apt-get update -y 


5.我们安装ssh服务和ssh客户端(主要用于测试)

apt-get install -y openssh-server openssh-client  libmysqlclient (安装三个软件)


6.我们给容器的 root 用户设置一个密码:

passwd root (按照提示输入密码即可)

在这里一个要注意:容器的 root 用户 和 宿主机的 root 用户不是同一个用户,因为 在 docker容器中用一个 用户命名空间 的概念从而让容器与容器,容器与宿主机之间

进行隔离。


7.对于Ubuntu而言,root用户是不能通过 ssh 连接的,但是可以修改 ssh 的配置文件

vi /etc/ssh/sshd_config

把文件中的 PermitRootLogin 这一行注释掉,改为 PermitRootLogin  yes ,保存退出


8.重新启动 ssh 服务:

先创建一个目录

mkdir -p /var/run/sshd

/etc/init.d/ssh restart


9.这个时候我们在容器中测试一个可不可以 ssh 登录了:

ssh localhost

不出意外的话,我们可以成功登录了, 输入 exit 我们就可以退出登录


10.我们创建一个 /runssh.sh 文件:

vi /runssh.sh

在该文件中我们输入以下内容:

/usr/sbin/sshd -D

然后我们保存退出

给该文件赋予一定的权限: chmod 777 /runssh.sh


11.这个时候,我们就可以退出容器了:

exit


12.我们就用刚才的容器来创建镜像了:

docker commit ssh-base ssh:01

注意:ssh-base:是刚才创建的容器名;ssh:01 是我们要创建的镜像名


13.我们可以启动一个  ssh 容器了:

docker run -it -d --name ssh01 -P ssh:01 /runssh.sh


14.我们可以通过ssh连接该容器了:

ssh root@localhost -p <端口号>


15.如果我们要进入改容器内部应该用下面的指令:

docker exec -it ssh01 /bin/bash






  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值