1、docker开机运行

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

systemctl enable docker

2、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 

3、docker容器启动时运行脚本

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

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

需要注意的是:

  • PATH  是 docker 中的绝对路径

脚本(如script.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

4、 docker容器进入时启动脚本

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

5、 docker容器启动后退出

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

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

重新打开一个bash,就可以防止容器执行完脚本后退出

Docker容器启动时运行 sh 脚本相关推荐

  1. 如何在Mysql的Docker容器启动时初始化数据库

    1.前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案. ...

  2. docker mysql数据库初始化_如何在Mysql的Docker容器启动时初始化数据库

    1.前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案. ...

  3. Docker容器启动时端口映射失败

    更多精彩内容请访问我的新博客站点 介绍 在一台虚拟机上创建容器时因为端口映射的问题而导致容器启动失败,并提示 docker: Error response from daemon: driver fa ...

  4. ubuntu执行python脚本_在启动时运行python脚本作为守护进程(Ubuntu)

    除了gg.kaspersky方法,您还可以将脚本转换为"服务",以便您可以使用以下命令启动或停止它: $sudo service myserver start * Starting ...

  5. docker 容器启动顺序_Docker容器启动时初始化Mysql数据库

    1. 前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案 ...

  6. 如何在ASP.NET Core程序启动时运行异步任务(3)

    原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...

  7. 如何在ASP.NET Core程序启动时运行异步任务(1)

    原文:Running async tasks on app startup in ASP.NET Core (Part 1) 作者:Andrew Lock 译者:Lamond Lu 背景 当我们做项目 ...

  8. Docker容器启动参数大全与详细说明

    < Docker容器启动参数大全与详细说明 > 语法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Docker 容器启动示例,这儿以启动 ...

  9. 关于docker容器启动后修改或添加端口

    docker容器启动后怎么修改端口映射?在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改的情况.当docker sta ...

最新文章

  1. mysql 去掉复合索引_MySQL性能优化[实践篇]-复合索引实例
  2. 爬虫-scrapy的中间件
  3. 怎样不停请求接口实现实时刷新_Hologres+Flink实时数仓详解
  4. linux 学习教程
  5. 将来,你会成为这三种程序员之一
  6. atitit.表单验证 的dsl 本质跟 easyui ligerui比较
  7. gitlab-ee使用mysql_在 GitLab 我们是如何扩展数据库的
  8. FZOJβ #31.字符串
  9. 深入理解JavaScript系列:《你真懂JavaScript吗?》答案详解
  10. 自定义函数hello,并注册到hive源码中并重新编译
  11. Dijkstra算法 简易理解(原创)
  12. Linux 内核参数:meminfo
  13. CTF常见的php函数
  14. 最简单日柱推算法_怎样推算大运、小运、流年和命宫?
  15. matlab中复华simpson,MATLAB Simpson的规则
  16. 只鳞片爪聊红楼——《红楼梦》读后感笔记3200字
  17. Laya shader opengles 2.0 第一章-飘扬的旗帜 gitee代码
  18. 有哪些 必装软件或者app
  19. centos 硬盘分区容量调整
  20. 有着奋斗比之都之称的杭州,现在还适不适合年轻人奋斗?

热门文章

  1. Java语言项目作业:部门员工管理
  2. 微信小程序案例 大全
  3. Xshell7、Xftp7提示 “要继续使用此程序,您必须应用最新的更新或使用新版本”
  4. 名词解释第十八讲:糖果
  5. AI Studio 飞桨 零基础入门深度学习笔记2-基于Python编写完成房价预测任务的神经网络模型
  6. 基于单片机电子指南针系统设计(毕业)-全套资料分享
  7. linux mutt安装配置_CentOS 安装配置 msmtp 和 mutt
  8. macos如何取消开机声音
  9. MV*关于业务逻辑的描述
  10. 为什么大家都买卡地亚蒂芙尼_卡地亚和蒂芙尼哪个档次最高