当前位置:网站首页 > 容器化与Kubernetes > 正文

启动docker 服务(docker容器启动时启动服务)



使用docker运行带有nginx服务的容器。容器启动后,每次都需要手动进入容器内启动nginx服务。修改容器,让nginx服务随容器自动启动。

  • 使用原nginx-sj: latest镜像文件运行一个容器
    nginx-sj: latest 是我之前使用,已修改的官方nginx镜像文件。

  • 查看用户目录下.bashrc文件

  • 直接将服务启动命名写入.bashrc文件,见下

  • 编辑一个start_nginx.sh文件

  • 写入以下内容,并保存

  • 添加start_nginx.sh脚本执行权限

  • 将启动脚本写入.bashrc文件

  • 将当前容器(4eba3)导出成文件nginx-sj_.tar

  • 删除当前容器(4eba3)

  • 删除旧nginx-sj:latest镜像

  • 导入创建新nginx-sj: latest镜像,新镜像ID:283bb24f8ff4

  • 启动容器,宿主机发布端口:9090,容器内服务端口:80

  • 宿主机已监听端口9090
  • 宿主机IP 10.211.55.10

  • 访问宿主机HTTP://10.211.55.10:9090,成功!

修改镜像默认值,方式详见官方文档:Overriding image defaults

  • 修改镜像Cmd默认值(之前是null)
    • nginx -g “daemon off;”

  • 提交生成新镜像:nginx-sj:1

  • 查看新镜像nginx-sj:1信息
    • “Cmd”: [ “nginx”, “-g”, “daemon off;” ],

  • 运行容器进行验证

  • 宿主机已经监听9000端口–>容器内nginx服务80端口

  • 外部访问HTTP://10.211.55.10:9000,成功。

  • 修改镜像默认值,也可以组合修改ENTRYPOINT 和 CMD。修改方式如下:

ENTRYPOINT 与 CMD 关系及使用方式详见官方文档:Understand how CMD and ENTRYPOINT interact

  • 生存新镜像方式同方案三

说明:因为docker run 命令中–entrypoint 只支持string,所以建议将服务启动命令写成shell脚本(同方案二),然后使用–entrypoint 引入更合理

  • 创建一个dockerfile文件

  • 输入以下内容并保存
    • FROM nginx-sj:latest # 基础镜像
    • MAINTAINER # 维护信息
    • CMD [“nginx”,“-g”,“daemon off;”] # 容器启动执行的默认命令

  • 使用dockerfile文件创建新镜像
    • -f dockerfile-nginx dockerfile文件名称(注意路径,测试在当前目录下)
    • -t nginx-sj: 镜像的名称与tag
    • . 指定镜像构建过程中的上下文环境

  • 查看构建镜像结果

  • 如果临时使用,可以采用方式一、二,从容器中导出;
  • 如果不频繁变更,可以采用方式三、四,直接commit生成新镜像;
  • 如果要长期或永久使用,建议采用方式五,彻底重新build新镜像。

到此这篇关于docker容器内服务随容器自动启动的几种方案的文章就介绍到这了,更多相关docker容器服务随容器自动启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

到此这篇启动docker 服务(docker容器启动时启动服务)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • nsenter 进入容器(nsenter进入容器ping)2025-05-23 19:27:04
  • qt中字符串转int(qt将字符串转化为二进制)2025-05-23 19:27:04
  • 启动docker镜像命令(docker启动镜像容器命令)2025-05-23 19:27:04
  • kvm虚拟化的特点是什么?(kvm虚拟化是什么意思)2025-05-23 19:27:04
  • kvm虚拟化技术 pdf(kvm虚拟化技术属于什么类)2025-05-23 19:27:04
  • 启动docker-compose容器命令(启动docker的命令)2025-05-23 19:27:04
  • kvm虚拟化技术特点(kvm虚拟化分为哪三层)2025-05-23 19:27:04
  • 查看k8s版本列表(k8s查看所有容器)2025-05-23 19:27:04
  • rknn模型量化(rfm量化模型)2025-05-23 19:27:04
  • 启动Docker容器的命令是什么(启动所有docker容器)2025-05-23 19:27:04
  • 全屏图片