Docker容器启动时运行shell脚本

这篇具有很好参考价值的文章主要介绍了Docker容器启动时运行shell脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

来源于部署在liux上的Docker服务如何自动运行,而不是手动运行,因为输入数据是变化的,这里根据的是如果存在输入数据,被Docker服务监听到,则自动运行Docker服务中的代码。

docker开机运行

对于Ubuntu18.04以上的系统,如果是使用命令sudo apt-get install -y docker.io安装的docker,都可以使用下列命令设置开机启动docker

systemctl enable docker

docker容器开机运行

很多时候我们都有这样的需求,在开机的时候自动运行容器,并且容器被意外关闭时,能够自动重启,这个时候我们加入 --restart=always·属性即可满足该需求。

  • restart=always 表示无论如何退出都会自启动
    命令如下
docker update --restart=always 容器名字或ID

或者在运行镜像时就加入–restart=always属性

docker run -itd --name test --restart=always amd64/ubuntu:18.04 /bin/bash 

docker容器启动时运行脚本

首先要写个一个开机脚本,脚本内容是你想要的程序。然后将其保存在容器中的根目录或者任意目录下。然后在run容器时,加上该脚本,这样每次容器启动后,在容器中都会运行该脚本。命令如下:

docker run  -itd --name test --restart=always amd64/ubuntu:18.04 /bin/bash  PATH/run.sh

需要注意的是:

  • PATH 是 docker 中的绝对路径
  • 脚本(如run.sh)必须写Docker中的绝对路径PATH,而不是docker外部的命令
  • 前面必须有 /bin/bash

该语句的意思就是启动容器时,使用/bin/bash 来运行 /PATH/script.sh 这个脚本, -itd 的意思是在后台执行这个脚本

执行多个脚本

有些时候,如果我们需要使用多个脚本,可以使用一个脚本来启动其它的脚本,也可以使用下列命令

docker run -itd --name test --restart=always amd64/ubuntu:18.04 /bin/bash PATH/1.sh;PATH/2.sh;PATH/3.sh

docker容器进入时启动脚本

docker exec -itd docker_name /bin/bash PATH/1.sh

docker容器启动后退出

使用 docker ps -a可以查看容器的运行状态,如果我们使用docker start启动容器后,容器自动退出,且docker ps -a看到状态为Exit(0),那么说明是我们写的脚本没有循环,导致docker执行完脚本以后自动退出,那么只要在自己写的脚本后面加上/bin/bash,如下

#!/bin/bash
#ls
#cd /
#more
/bin/bash

重新打开一个bash,就可以防止容器执行完脚本后退出文章来源地址https://www.toymoban.com/news/detail-493935.html

参考文献

  • https://blog.csdn.net/ytusdc/article/details/127028823

到了这里,关于Docker容器启动时运行shell脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 容器开机自启动脚本

    1、查看已经启动的服务 如果 docker 没有启动,执行启动命令: systemctl start docker 2、查看是否设置开机启动 显示enabled说明docker服务设置了开机启动 显示disabled说明docker服务没有设置开机启动 3、设置开机启动 如果要取消开机启动,执行命令:systemctl disable docker.service 1、设置

    2024年02月06日
    浏览(37)
  • 机器人中欧拉角,偏航角、俯仰角、横滚角的自锁现象与四元数的来源于推导

    想要讲欧拉角,我们需要先讲物体的姿态与自由度。 什么是物体的位姿 为了描述物体(此处指的是我们的末端执行器)在空间中的位置,我们可以用一个3*1的位置矩阵去描述。 P ′ ′ = [ P X ′ ′ , P Y ′ ′ , P Z ′ ′ ] T P\\\'\\\'=[P_X\\\'\\\',P_Y\\\'\\\',P_Z\\\'\\\']^T P ′′ = [ P X ′′ ​ , P Y ′′ ​ ,

    2024年02月16日
    浏览(51)
  • 主干网络篇 | YOLOv8改进之用RCS-OSA替换C2f(来源于RCS-YOLO)

    前言: Hello大家好,我是小哥谈。 RCS-YOLO是一种目标检测算法,它是基于YOLOv3算法的改进版本。通过查看RCS-YOLO的整体架构可知,其中包括RCS-OSA模块。RCS-OSA模块在模型中用于堆叠RCS模块,以确保特征的复用并加强不同层之间的信息流动。本文就给大家详细介绍如何将RCS-YOLO算

    2024年04月10日
    浏览(67)
  • 【Ubuntu18.04 docker 启动容器,进入容器,执行脚本】

    1,启动容器 1,当前容器已经启动,怎么进入呢? -----进入步骤 一、 docker 服务启动启动 二、docker 容器自动启动 三、设置容器内的服务自动启动: 1-首先制作一个启动脚本start_fw.sh 参考 2-将容器制作为镜像,然后启动容器 3-

    2024年02月11日
    浏览(41)
  • 【Docker 】Docker 客户端,容器使用,启动容器,启动已停止运行的容器,停止一个容器,进入容器

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。 可以通过命令 dock

    2024年02月11日
    浏览(44)
  • 查看正在运行docker容器的启动命令

    该命令主要是为了详细展示查看运行时的command参数 使用docker inspect,但是docker inspect打印的是json文件,需要挑选字段查看,容器的参数信息都能从json文件中解析出来。 通过runlike去查看一个容器的docker run启动参数

    2024年02月13日
    浏览(51)
  • docker 查看容器启动日志 查看运行日志

    案例: 查看最近30分钟的日志: $ docker logs --since 30m CONTAINER_ID 查看某时间之后的日志: $ docker logs -t --since=“2019-11-02T13:23:37” CONTAINER_ID 查看某时间段日志: $ docker logs -t --since=“2019-11-02T13:23:37” --until “2019-11-03T12:23:37” CONTAINER_ID 命令参数如下: $ docker logs [OPTIONS] CONTAINER

    2024年02月04日
    浏览(61)
  • 微服务项目容器编排docker-compose.yml、Dockerfile文件模板、相关配置文件、shell脚本

    docker环境变量文件 如果定义的环境变量名与宿主机的一样,则优先宿主机上的。 部署脚本deploy.sh 批量复制文件到对应目录copy.sh

    2024年02月11日
    浏览(35)
  • docker 运行一个Ubuntu 容器 无法启动的问题

    我的环境 : Windows docker desktop + WSL2 Ubuntu 20.04 + Windows Terminal 运行一个Ubuntu容器 (这一步已经有问题了) 查看已有的容器: 发现我们已经根据 Ubuntu镜像创建了一个容器 查看在运行的容器 但是发现没有在运行的容器 手动启动一下创建的Ubuntu容器 然后再次查看正在运行的容器 do

    2024年02月02日
    浏览(40)
  • 如何配置 Docker 容器在系统启动时自动运行

    在使用 Docker 部署应用程序时,您可能希望配置容器在系统启动时自动启动。这可以通过 Systemd 在 Linux 系统上实现。本文将以一个示例命令和服务(以 pandora 为例)为基础,向您展示如何配置 Docker 容器的自动启动。 以下是详细步骤: 在终端中执行以下命令,创建一个新的

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包