LEDE下安装Docker版CentOS

Linux, 折腾 2019/07/19

之前写了Koolshare版LEDE安装Docker的相关文章:https://bugxia.com/?s=docker

这次记录一下折腾Docker容器版的CentOS

一、部署Docker

二、部署CentOS For Docker镜像

可以直接部署lastest,最新版镜像

docker pull centos

也可以选择版本进行部署,如:

docker pull centos:7.6.1810

二、测试CentOS

1.检查镜像

docker images

2.创建容器

docker run -it --privileged centos /bin/bash

p.s  -i 以交互模式运行容器 -t 为容器重新分配一个伪输入终端 --privileged 高权限模式(否则CentOS下的有些命令无法执行)

这一步执行后会直接进入CentOS容器的命令行界面

3.检查系统信息

uname -a
cat /etc/redhat-release

4.修改root密码(方便SSH使用)

passwd root

三、开启CentOS的SSH

1.安装SSH及相关组件

yum install net-tools openssh-server -y

2.开启SSH

直接执行 /usr/sbin/sshd -D 则会报错

Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available — exiting.

需要先使用 ssh-keygen 工具 生成相应的key文件

#每一步需单独执行,一路回车确定即可
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key

启动SSH

/usr/sbin/sshd

查看运行状况

netstat -ntlp

四、退出输入终端

输入 exit 退出CentOS容器的命令行界面,此时容器依然在运行,可以通过SSH客户端进入到CentOS

如果想停止该容器,先查看容器ID

docker ps -a

启动或停止CentOS容器

docker start 容器ID
docker stop 容器ID

五、再次进入容器

需修改Dockerfile并重新build才能实现SSH的自启,所以在容器重启后,需要进入CentOS的容器,重新启动SSH服务

先进入CentOS容器伪输入终端

docker exec -ti 容器ID /bin/bash

再启动SSH

/usr/sbin/sshd
本文标签:


13条评论

  • ysp 评论于

    我想用lede搞个可道云盘,装上lnmp了说缺组件,查了官网的组件打开还是不行,反正怎么都不行,最后想到在docker装centos再装lnmp之类的,装了宝塔,无法访问http://ip:8888,局域网我公网都不通,路由器找了一圈也没见着有独立IP,难道不能互通了?

    • Bug侠 评论于

      @ysp docker装centos再装宝塔真是给自己找罪受啊……
      其实你一开始想的装个lnmp环境,再装kod,这样就是最优解了,openwrt下已编译的php的扩展基本都能找到

      • ysp 评论于

        @Bug侠 oponwrt的lnmp都不能用再koolshare lede,我试过好多个,无奈个人比较喜欢koolshare界面,现在都在尝试自己编译openwrt了 :笑哭: 打算放弃koolshare

        • Bug侠 评论于

          @ysp 我之前玩koolshare软件中心自带的lnmp插件时也是各种折腾,现在我也转到lean了,koolshare的太垃圾了,主要是不开源,出现bug都不好分析是哪有问题

          • ysp 评论于

            @Bug侠 嗯,koolshare不开源必须差评,大家都在说lnmp插件装上了也提示MySQL未运行,PHPmyadmin都不能正常运行,如果跟我们有一样需求的还是选lean的openwrt吧,查了资料docker里面装的程序可以改网桥,但是不能跟宿主机同网段,有方法局域网互通,所以外网访问基本没戏

  • Noob 评论于

    我这里的centos端口映射了,外网22端口能访问,但是其他的端口就不能访问了,防火墙已经卸载掉了

    • ysp 评论于

      @Noob 你能看到docker里面centos的IP了吗还是直接有路由器ip?

      • 冰皇 评论于

        @ysp 我是直接物理机上装centos,他直接就有ip了比如192.168.2.5,我是路由器拨号的,光猫是一号网段,就是不知道为什么自定义映射的端口没办法从外网加入

        • ysp 评论于

          @冰皇 80\443端口一搬都是屏蔽的,试试别的看吧,如果不行Google查一下资料应该会有你要的

  • Summer 评论于

    我放弃lede的docker了,一开docker nat环回就出现问题,不能在局域网使用动态域名访问路由器,流量可以。还有就是想跟你交流一下你这个bugxia的网站是怎么被百度收录的,我网站百度搜不到呢

    • Bug侠 评论于

      @Summer 我也是放弃了,我用的koolshare LEDE的docker,这货不开源,想修改或者出问题排查都没地方下手,现在改用群晖下的Docker,挺好的。我就每次发布新文章时,用的百度提交文章链接的API自动提交给百度,让它来爬,这里:https://bugxia.com/226.html

  • joker 评论于

    创建容器那一步会报错,docker: Error response from daemon: error creating overlay mount to /mnt/sdb/docker/data/overlay2/4c9e31cc30ab9241f1f7ad619a1cc8ae164d619255a8da7231a72581e43ed536-init/merged: invalid argument.
    See ‘docker run –help’.

    • Bug侠 评论于

      @joker 参数错误,我这边是可以的 :笑哭:

    评论(*号为必填项)