0%

Docker启动容器直接启动服务

自己的一个容器,每次启动后都要到容器内再次去启动服务,这样太麻烦,通过给重新创建个容器并指定启动脚本的方法,之后每次直接启动容器就会自动启动服务了。

进入容器新建服务启动脚本

1
touch auto_service.sh

给个执行权限

1
chmod +x auto_service.sh

编辑脚本内容

1
nano auto_service.sh

内容如下

1
2
3
4
5
#!/bin/sh
cd /home/xxx/azeroth-server/bin
/usr/bin/nohup ./authserver &
/usr/bin/nohup ./worldserver &
/bin/bash

退出容器,查看已有容器的配置,主要我是看下端口映射和文件挂载目录。

1
docker inspect wow

提交容器为镜像

1
docker commit -m "wow azerthcore_server_20180108 ok, port 8085 3724,data mount /root/wow/server , without mysql , have auto start server" -a "orion-c" wow ownerworld/wow:0.0.1

提交镜像到镜像库

1
docker push ownerworld/wow:0.0.1

创建容器并指定服务启动脚本

1
docker run -t -i -d -p 8085:8085 -p 3724:3724 -v /root/wow/server:/home/xxx --name=new_wow ownerworld/wow:0.0.1 /bin/auto_service.sh

以后每次start容器都会直接启动服务了。