文章目录

  • 1、前置
  • 2、entrypoint
  • 3、实际使用
    • ①: 确认镜像设置的ENTRYPOINT是单命令还是可执行文件
    • ②: 准备可执行文件
    • ③: 运行镜像
    • ④: 效果对比
      • 不覆盖效果:
      • 覆盖效果:
  • 4、注意事项

1、前置

1、entrypoint命令介绍
2、实际使用
3、注意事项

2、entrypoint

Dockerfile:

1. FROM java:8
2. MAINTAINER chaim
3. EXPOSE 8080
4. ............
5. ............
6. ENTRYPOINT ["./entrypoint.sh"]
7. #ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/powerBank.jar"]

直白一点说, entrypoint命令就是覆盖ENTRYPOINT(第6行或者第7行)命令的. 官方话说就是覆盖默认入口点
官网介绍地址: https://docs.docker.com/engine/reference/run/:
The ENTRYPOINT of an image is similar to a COMMAND because it specifies what executable to run when the container starts, but it is (purposely) more difficult to override. The ENTRYPOINT gives a container its default nature or behavior, so that when you set an ENTRYPOINT you can run the container as if it were that binary, complete with default options, and you can pass in more options via the COMMAND. But, sometimes an operator may want to run something else inside the container, so you can override the default ENTRYPOINT at runtime by using a string to specify the new ENTRYPOINT.

可执行文件

3、实际使用

我们以镜像: bladex/sentinel-dashboard 为列子进行操作一下

①: 确认镜像设置的ENTRYPOINT是单命令还是可执行文件

按标准来说, ENTRYPOINT是要配置可执行文件的, 这样别人可以配置对应的参数, 比如JVM等数据, 也方便使用者自行定义
第一种确认方式, 就是直接在dockerhub查看:


第二种使用命令:

# 直接查看镜像详情
docker inspect bladex/sentinel-dashboard:1.7.1

②: 准备可执行文件

改个端口: 8898 改个项目名: sentinel

sentinel就是执行的jar包, 直接docker exec -it *** bash, 就能找到, 自己在使用的需要确认一下自己的实际情况

docker-sentinel.sh

#!/bin/bashjava -Djava.security.egd=file:/dev/./urandom -Dserver.port=8898 -Dcsp.sentinel.api.port=8719 -Dcsp.sentinel.dashboard.server=localhost:8898 -Dproject.name=sentinel -jar /bladex/sentinel/app.jar

③: 运行镜像

docker run 方式:

docker run --name sentinel -p 8858:8898 -v "E:/Docker/sentinel/sh/:/docker/sentinel/" --entrypoint "/docker/sentinel/docker-sentinel.sh" -d  bladex/sentinel-dashboard:1.7.1

这个是docker-compose方式的:

# docker-compose方式(一样, 采用了覆盖操作, environment就没必要了)
# Compose 版本 Version 2支持更多的指令。Version 1将来会被弃用。
version: "3"# 定义服务
services:# 为project定义服务sentinel:image: bladex/sentinel-dashboard:1.7.1ports:- 8858:8898# 挂载volumes:- "E://Docker/sentinel/sh/:/docker/sentinel/"# 覆盖默认入口点。当提示权限不足,可以给到: 744, 这是一个可执行文件entrypoint: /docker/sentinel/docker-sentinel.shrestart: alwayscontainer_name: sentinelprivileged: true

④: 效果对比

不覆盖效果:

docker run --name sentinel -p 8858:8858 -d  bladex/sentinel-dashboard:1.7.1


覆盖效果:

docker run --name sentinel -p 8858:8898 -v "E:/Docker/sentinel/sh/:/docker/sentinel/" --entrypoint "/docker/sentinel/docker-sentinel.sh" -d  bladex/sentinel-dashboard:1.7.1


4、注意事项

1、挂载也可以指定到文件:

-v "E:/Docker/sentinel/sh/docker-sentinel.sh:/docker/sentinel/docker-sentinel.sh"

2、 –entrypoint必须是可执行文件 , 下面这种就是有问题的

docker run --name sentinel -p 8858:8898 -v "E:/Docker/sentinel/sh/:/docker/sentinel/" --entrypoint "java -Dserver.port=8858 -Dproject.name=sentinel -jar /bladex/sentinel/app.jar" -d  bladex/sentinel-dashboard:1.7.1

3、docker-compose介绍: https://docs.docker.com/compose/compose-file/compose-file-v3/

Dockerfile介绍:https://docs.docker.com/engine/reference/builder/

4、提示权限不足, 可以给到: 744 权限. 因为我们覆盖的.sh文件是一个可执行文件

docker覆盖镜像默认命令之docker entrypoint相关推荐

  1. 5. docker的镜像相关命令

    第五节 docker的镜像相关命令 5.1.从仓库下载镜像命令 5.1.1docker pull命令 5.1.2标记从哪里找 5.1.3 层的概念 5.1.4查看docker容器里的centos的发行 ...

  2. docker 覆盖 entrypoint_Docker容器技术之Docker file

    Docker file简单介绍 Docker可以使用Dockerfile的内容来自动构建镜像.Dockerfile也是一个文件,其中有创建镜像.运行指令等一系列的命令,且每行只支持一个运行命令. Do ...

  3. Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)

    文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...

  4. docker 导入镜像_官方下一代Docker镜像构建神器 -- BuildKit

    BuildKit是Docker官方社区推出的下一代镜像构建神器--可以更加快速,有效,安全地构建docker 镜像.Docker v18.06已经集成了该组件.BuildKit可用于多种导出格式(例如 ...

  5. docker ubuntu镜像_macOS 下使用 Docker 搭建 ubuntu 环境

    学习网络开发过程中不想"污染"macOS,考虑到之后部署网络应用主要是与linux打交道,所以安装了 ubuntu 虚拟机以满足短期的知识学习需求.十里安装了 ubuntu 虚拟机 ...

  6. Docker下载镜像及运行容器

    一.准备工作 先告诉大家两个个网站,https://hub.docker.com/,这个是docker官方的镜像库,要找镜像个话建议就用找官方的镜像:第二个就是 https://www.docker- ...

  7. docker常用命令 | game2048网页游戏 | nginx镜像 | 数据卷管理 | docker网络管理 | 构建apache镜像 | Dockerfile常用的命令

    DOCKER https://www.docker.com http://www.runoob.com/docker/docker-command-manual.html docker命令大全 镜像用 ...

  8. 【Docker】Dockerfile构建镜像与命令详解

    前言 传统方式部署集群,你需要在每台机器搭建环境,配置各种中间件,这样不但效率低下,而且很难保证环境的一致性,而且配置如果有改动,需要挨个机器修改. 有了Docker,上述问题都能解决.但是官方镜像大 ...

  9. docker from指令的含义_Docker 镜像常用命令

    获取镜像 从 Docker 镜像仓库获取镜像的命令是 docker pull.其命令格式为: docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] ...

最新文章

  1. c# blockingcollections
  2. 72 Zabbix邮件告警
  3. 超出网络bios会话限制_?老旧BIOS说再见,拯救者系列设置超简单
  4. EF Core 实现读写分离的最佳方案
  5. 如何分析堆外内存使用情况_堆上与堆外的内存使用情况
  6. [html] 举例说明Shadow DOM的应用场景有哪些?
  7. LeetCode 237. 删除链表中的节点(思维)
  8. 利用python提取网站曲线图数据
  9. 在Keil中利用AStyle插件格式化代码
  10. Error:Failed at the bcrypt@3.0.4 install script.
  11. pyqt5实现窗口跳转并关闭上一个窗口
  12. 每日站会怎么开才好?——你的站会姿势正确吗?
  13. (转)区块链创造了ICO,但是无法守护ICO
  14. RCP之病人信息系统开发总结(4):MVC模式之View层—透视图
  15. python 单词拆音节_基于Trie树进行拆分字符串变成拼音音节(一):构建拼音音节模型...
  16. Spring ClassPathResource详解
  17. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-28期...
  18. 方兴未艾的CORBA
  19. 共享打印机计算机名没有反应,共享打印机接收到打印任务,但是没有反应该怎么处理 - 系统之家...
  20. zend studio设置字体大小和背景颜色

热门文章

  1. mysql 并没有幻读_MySQL默认隔离级别REPEATABLE-READ并没有解决幻读问题
  2. Windows10任务管理器中的内存用量的使用中(已压缩)、已提交、可用、分页缓冲池、非分页缓冲池是什么意思?
  3. 电力“五防”闭锁系统
  4. 西部数据 My Cloud NAS 初上手之死里逃生
  5. JVM之垃圾收集器CMS和G1的区别
  6. 魔术师发牌问题和拉丁方阵问题
  7. 从公会会长到优秀管理者
  8. Java毕设项目新锐台球厅管理系统计算机(附源码+系统+数据库+LW)
  9. 前端实现控制浏览器全屏显示
  10. 李白打酒(蓝桥杯真题)——python讲解