跳转至

安装docker

# 可不做, 更新
$ yum clean all
$ yum makecache
$ yum update

# 使用国内安装脚本加速安装
$ curl -sSL https://get.daocloud.io/docker | sh

# 启动docker
$ service docker restart

# 安装centos 开放宝塔端口
$ docker run -idt --name MyBlog -p 8888:8888 -p 888:888 -p 80:80 -p 443:443 -p 21:21 -p 20:20 --privileged=true --restart always centos:centos7 /bin/bash

# docker内安装宝塔
$ yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

docker 安装ssh服务

运行镜像

docker run -i -t --hostname="nightly" -p 0.0.0.0:8899:22 centos /bin/bash

安装passwd,openssl,openssh-server

yum install passwd openssl openssh-server -y

# 启动sshd:
/usr/sbin/sshd -D

# 这时报以下错误:
# /etc/ssh/ssh_host_rsa_key
# /etc/ssh/ssh_host_ecdsa_key
# /etc/ssh/ssh_host_ed25519_key 

# 执行以下命令解决:
$ ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
$ ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
$ ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key  -N '' 

# 修改 /etc/ssh/sshd_config
UsePAM yes 改为 UsePAM no  也可以不改
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no   我并没有找到这个配置选项就没管

修改root密码

passwd root

验证安装

# docker 容器内运行后 别退出, 在宿主机ssh连上试试
/usr/sbin/sshd -D &

# 宿主机
ssh root@127.0.0.1 -p 8899

# 宿主机登录如果出现警告System is booting up. 则可以再docker内操作
rm /run/nologin

设置后台自动运行服务

# 容器内设置后台运行ssh

```shell
vi auto_service.sh

# 添加如下

#!/bin/sh    告诉linux应该使用什么指令运行dj此脚本。我用的是官方发布的centos7的docker。
/usr/sbin/sshd -D &     #启动服务A的指令,根据需要自行修改
/bin/bash    保留一个终端,这句是必要的。否则在服务A执行完成后容器就会自动退出了。
```

# 更改权限
chmod 777 auto_service.sh

将当前容器保存为镜像

# docker ps -a 查看新创建的容器id
docker commit 容器id nightly

再次启动我们的新的镜像

docker run -itd --restart=unless-stopped -v /data/home/docker_run/quant/quantlib:/data/quant/lib -v /data/quant/py/:/data/quant/py/ --name="nightly" --hostname="nightly" -p 0.0.0.0:8899:22 nightly /auto_service.sh