今天玩了一天,主要是在做docker的测试环境,一台centos7 24核 96G内存 2T的服务器


对于docker的玩法没有任何的定义,一千个人有一千种玩法,只是有些事最优的。今天发现以前的可能有点low。

    以前的想法是 官方或者自己yum安装出一个镜像,然后 docker run -it --restart=awlays centos  /bin/bash开终端进入玩,完全是虚拟机的想法,没有什么不对的,只是有些局限性:

    每次重启的时候容器都会执行/bin/bash没什么卵用,只是打开一个shell,没有真正的去重启服务,所以每次都要去将基础的服务启动(当然理论上容器里面只放一个服务),我的想法是写一个脚本,docker服务重启的时候去执行(里面是一些docker exec命令),这没有什么不对的。


    也经常看机器上跑的其他人的容器,感觉不太一样 我的容器启动命令都是/bin/bash 其他人的是很多奇葩的东西。  今天理科了后面的命令是每次容器启动的时候执行的命令,所以可以写成脚本的形式,这样就能做到容器启动服务也启动。高端的玩法。。。这样无论以后这个容器跑了多少服务都在一个start.sh 的脚本中写着启动项。  只需要维护这个脚本就行了。


具体做法:

原来

docker run -it --restart=always --name=test01 --hostname=test01 -p 22001:22 f03c13002608 /bin/bash


现在


docker run -it --restart=always --name=test01 --hostname=test01  -p 22001:22 f03c13002608 /start.sh


最基础的start.sh

#! /bin/bash

/usr/sbin/sshd -D


由于这里是做测试机 必须考虑可用性,测试人员能够登录机器

注意最后一条命令一定是能够持续运行的,不能放后台,不然你可以试试。。。。