docker覆蓋鏡像默認(rèn)命令之docker?entrypoint詳解
1、前置
1、entrypoint命令介紹
2、實(shí)際使用
3、注意事項(xiàng)
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"]
直白一點(diǎn)說, entrypoint命令就是覆蓋ENTRYPOINT(第6行或者第7行)命令的. 官方話說就是覆蓋默認(rèn)入口點(diǎn)
官網(wǎng)介紹地址: 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.
可執(zhí)行文件

3、實(shí)際使用
我們以鏡像: bladex/sentinel-dashboard 為列子進(jìn)行操作一下
①: 確認(rèn)鏡像設(shè)置的ENTRYPOINT是單命令還是可執(zhí)行文件
按標(biāo)準(zhǔn)來說, ENTRYPOINT是要配置可執(zhí)行文件的, 這樣別人可以配置對(duì)應(yīng)的參數(shù), 比如JVM等數(shù)據(jù), 也方便使用者自行定義第一種確認(rèn)方式, 就是直接在dockerhub查看:


第二種使用命令:
# 直接查看鏡像詳情 docker inspect bladex/sentinel-dashboard:1.7.1

②: 準(zhǔn)備可執(zhí)行文件
改個(gè)端口: 8898 改個(gè)項(xiàng)目名: sentinel
sentinel就是執(zhí)行的jar包, 直接docker exec -it *** bash, 就能找到, 自己在使用的需要確認(rèn)一下自己的實(shí)際情況
docker-sentinel.sh
#!/bin/bash java -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
③: 運(yùn)行鏡像
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
這個(gè)是docker-compose方式的:
# docker-compose方式(一樣, 采用了覆蓋操作, environment就沒必要了)
# Compose 版本 Version 2支持更多的指令。Version 1將來會(huì)被棄用。
version: "3"
# 定義服務(wù)
services:
# 為project定義服務(wù)
sentinel:
image: bladex/sentinel-dashboard:1.7.1
ports:
- 8858:8898
# 掛載
volumes:
- "E://Docker/sentinel/sh/:/docker/sentinel/"
# 覆蓋默認(rèn)入口點(diǎn)。
entrypoint: /docker/sentinel/docker-sentinel.sh
restart: always
container_name: sentinel
privileged: true④: 效果對(duì)比
不覆蓋效果:
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、注意事項(xiàng)
1、掛載也可以指定到文件:
-v "E:/Docker/sentinel/sh/docker-sentinel.sh:/docker/sentinel/docker-sentinel.sh"
2、 –entrypoint必須是可執(zhí)行文件 , 下面這種就是有問題的
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/
到此這篇關(guān)于docker覆蓋鏡像默認(rèn)命令之docker entrypoint的文章就介紹到這了,更多相關(guān)docker entrypoint內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker開啟遠(yuǎn)程訪問的實(shí)現(xiàn)方式
這篇文章主要介紹了Docker開啟遠(yuǎn)程訪問的實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說明
這篇文章主要介紹了Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
使用Docker部署todo任務(wù)管理器的實(shí)現(xiàn)
本文介紹使用Docker部署Todo任務(wù)管理器的全過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
Docker本地部署Drupal并實(shí)現(xiàn)公網(wǎng)訪問的詳細(xì)步驟
Drupal是使用PHP語言編寫的開源內(nèi)容管理框架(CMF),它由內(nèi)容管理系統(tǒng)(CMS)和PHP開發(fā)框架(Framework)共同構(gòu)成,這篇文章主要給大家介紹了關(guān)于Docker本地部署Drupal并實(shí)現(xiàn)公網(wǎng)訪問的詳細(xì)步驟,需要的朋友可以參考下2023-12-12
Docker發(fā)布鏡像到DockerHub與阿里云容器
本文主要介紹了Docker發(fā)布鏡像到DockerHub與阿里云容器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

