安装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
- 另一种安装方式
# 如果网络不同直接打开 https://get.docker.com全选复制, 保存下来保存为
$ cat install_docker.txt | bash -s docker --mirror Aliyun
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密码
验证安装
# 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