• 欢迎大家交换友链,可在https://www.stubbornhuang.com/申请友情链接进行友链交换申请!

  • 感谢大家访问本站,希望本站的内容可以帮助到大家!

  • 工资「喂饱肚子」,副业「养活灵魂」!

  • 如果觉得本站的内容有帮助,可以考虑打赏博主哦!

  • 本站会放置Google广告用于维持域名以及网站服务器费用。

  • 本站由于前段时间遭受到大量临时和国外邮箱注册,所以对可注册的邮箱类型进行了限制!

  • 在本站开通年度VIP,无限制下载本站资源和阅读本站文章

  • 计算机图形学与计算几何经典必备书单整理,下载链接可参考:https://www.stubbornhuang.com/1256/

  • 问题反馈可发送邮件到stubbornhuang@qq.com

Docker – docker内服务自启动,使用镜像创建容器时同时启动服务

Linux运维 发布于2023-09-11 阅读 3,412次 0次评论 0次点赞 本文共1538个字,阅读需要4分钟。

1 使用docker镜像创建容器时同时启动服务

1.1 创建服务应用程序启动脚本

首先我们需要创建一个shell脚本用于启动我们的服务应用程序。

在某个目录下创建一个名为start_server.sh的脚本,并在脚本内写服务启动命令,假设服务可执行程序为my_websocket_server,则依次执行以下命令,

创建start_server.sh

# 创建文件
nano start_server.sh

start_server.sh写入启动服务命令

#!/bin/bash
/xxx/xxx/my_websocket_server -c /xxx/xxx/server.conf

exit 0

修改start_server.sh权限,修改为可执行

chmod 777 ./start_server.sh

1.2 使用docker镜像创建容器时同时启动服务

在使用docker镜像创建容器时同时启动服务有两种方式,

  • 一种是在使用docker run时后面直接执行1.1节中的服务脚本
  • 另一种是将服务脚本加入到docker的开机启动中,在docker内部的系统启动时执行服务脚本

1.2.1 docker run执行服务脚本

假设docker镜像名为ubuntu:v3,服务启动脚本在docker内部的路径为/usr/bin/start_server.sh,则可以使用以下命令在启动容器时同时执行服务启动脚本

docker run -itd ubuntu:v3 -p 8080:8080 /usr/bin/start_server.sh

1.2.2 docker内部系统启动时执行服务脚本

使用docker镜像创建一个容器,其实就是一个开机的过程,所以要在docker镜像创建容器时同时启动服务其实就是将服务加入到开启启动中,在进行完这些操作之后,将当前容器再commit为一个新的docker镜像保存,下一次在使用docker run时docker内部就会自动执行服务脚本启动服务了。

Linux系统在启动时会加载以下配置文件:

  • /etc/profile
  • /root/.bash_profile
  • /etc/bashrc
  • /root/.bashrc
  • /etc/profile.d/*.sh
  • /etc/profile.d/lang.sh
  • /etc/sysconfig/i18n
  • /etc/rc.local(/etc/rc.d/rc.local)

所以在linux系统启动时运行一个shell脚本有很多种方法,比如

  • 修改开机启动文件/etc/rc.d/rc.local文件,使用bash xxx.sh执行服务脚本
  • 自定义服务文件,添加到系统服务,并通过Systemctl设置服务开机自启动
  • 将写好的shell脚本放到目录 /etc/profile.d/下,系统启动后会自动执行该目录下的所有shell脚本
  • 将写好的shell脚本放到目录/etc/init.d/或者/etc/rc.d/init.d/下,然后使用chkconfig命令设置

我们已经在1.1节中写好了服务的shell脚本,所以将该脚本直接复制或者移动到/etc/profile.d/目录下是最简单的添加服务开机启动的方式。

在/etc/rc.local或者/etc/rc.d/rc.local增加服务脚本执行命令

打开/etc/rc.local或者/etc/rc.d/rc.local,然后在exit前加入服务启动脚本代码

nano /etc/rc.d/rc.local

# 增加shell脚本执行代码
bash /xxx/xxx/start_server.sh

保存退出即可。

参考

欢迎扫码关注我的微信公众号,及时获取文章更新

微信公众号二维码

本文作者:StubbornHuang

版权声明:本文为站长原创文章,如果转载请注明原文链接!

原文标题:Docker – docker内服务自启动,使用镜像创建容器时同时启动服务

原文链接:https://www.stubbornhuang.com/2800/

发布于:2023年09月11日 14:38:52

修改于:2023年09月11日 14:38:52

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章末尾
上一篇
nginx - 禁止特定User-Agent或者空User-Agent等垃圾爬虫爬取网站、爆破接口
宝塔面板
下一篇
Docker - 在宿主机与容器之间拷贝文件或者文件夹
Linux运维
当前分类随机文章推荐

发表评论

您必须 [ 登录 ] 才能发表留言!

关注我们的公众号

微信公众号