问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

如何用Gradle创建Docker镜像

发布网友 发布时间:2022-02-26 21:24

我来回答

1个回答

热心网友 时间:2022-02-26 22:54

Dockerfile结构
dockerfile由4部信息组:基础镜像信息、维护者信息、镜像操作指令容器启执行指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# This dockerfile uses the ubuntu image
# VERSION 2 - EDITION 1
# Author: docker_user
# Command format: Instruction [arguments / command] ..

# Base image to use, this must be set as the first line
FROM ubuntu

# Maintainer: docker_user (@docker_user)
MAINTAINER docker_user docker_user@email.com

# Commands to update the image
RUN echo "deb raring main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

# Commands when creating a new container
CMD /usr/sbin/nginx

其#表注释标注些说明性文字
FROM关键字指定镜像源默认DockerHub写私仓库镜像例:localhost:5000/centos:6.7本已经存指定镜像名称则本缓存直接获取MAINTAINER 指定镜像作者镜像操作执行RUN、ADD等容器启发起指令
Dockerfile指令
FROM: 指定镜像名称格式FROM 或FROM :例FROM ubuntu 或 FROM ubuntu:12.04 
MAINTAINER: 镜像作者 格式 MAINTAINER
RUN:格式 RUN 或 RUN ["executable", "param1", "param2"]
前者 shell 终端运行命令即 /bin/sh -c;者则使用 exec 执行指定使用其终端通第二种式实现例 RUN ["/bin/bash", "-c", "echo hello"]
每条 RUN 指令前镜像基础执行指定命令并提交新镜像命令较使用 \ 换行
CMD:支持三种格式
1.CMD ["executable","param1","param2"] 使用 exec 执行推荐式;
2.CMD command param1 param2 /bin/sh 执行提供给需要交互应用;
3.CMD ["param1","param2"] 提供给 ENTRYPOINT 默认参数;
指定启容器执行命令每 Dockerfile 能条 CMD 命令指定条命令条执行用户启容器候指定运行命令则覆盖掉 CMD 指定命令
EXPOSE:格式 EXPOSE [...]
告诉 Docker 服务端容器暴露端口号供互联系统使用启容器需要通 -PDocker 主机自配端口转发指定端口
ENV:格式 ENV 指定环境变量续 RUN 指令使用并容器运行保持应程序语言变量定义需要候引用例:

1
2
3
4

ENV PG_MAJOR 9.3
ENV PG_VERSION 9.3.4
RUN curl -SL | tar -xJC /usr/src/postgress && …
ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH

ADD:格式 ADD
该命令复制指定 容器 其 Dockerfile所目录相路径; URL; tar 文件(自解压目录)
COPY:格式 COPY
复制本主机 ( Dockerfile 所目录相路径)容器 使用本目录源目录推荐使用 COPY
COPYADD同:ADD自解压支持URL路径功能
ENTRYPOINT:
两种格式:
ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2(shell执行)
配置容器启执行命令并且 docker run 提供参数覆盖
每 Dockerfile 能 ENTRYPOINT指定起效
CMDENTRYPOINT比较:两命令都能使用并且都执行docker run指令运行执行条
两者同于参数传递式Dockerfile定义指令

1

CMD echo hello



1

ENTRYPOINT ["echo","hello"] 

运行命令docker run containerId echo hello指定CMD输入结world看Dockerfile指定命令覆盖指定ENTRYPOINT输结hello echo world看指定命令作ENTRYPOINT指定指令参数

VOLUME:格式 VOLUME ["/data"]创建本主机或其容器挂载挂载点般用存放数据库需要保持数据等属性Dockerfile指定并没意义没办指定本主机目录需要指定挂载点执行docker run命令指定:

1

docker run -it -v /home/fengzheng/ftp/:/data 859666d51c6d /bin/bash

USER:格式 USER daemon指定运行容器用户名或 UID续 RUN 使用指定用户
服务需要管理员权限通该命令指定运行用户并且前创建所需要用户例:RUN groupadd -r postgres && useradd -r -g postgres postgres要临获取管理员权限使用 gosu推荐 sudo
WORKDIR:格式 WORKDIR /path/to/workdir续 RUN、CMD、ENTRYPOINT 指令配置工作目录使用 WORKDIR 指令续命令参数相路径则基于前命令指定路径例

1
2
3
4

WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd

则终路径 /a/b/c
ONBUILD:格式 ONBUILD [INSTRUCTION]
配置所创建镜像作其新创建镜像基础镜像所执行操作指令
例Dockerfile 使用内容创建镜像 image-A

1
2
3
4

[...]
ONBUILD ADD . /app/src
ONBUILD RUN /usr/local/bin/python-build --dir /app/src
[...]

基于 image-A 创建新镜像新Dockerfile使用 FROM image-A指定基础镜像自执行ONBUILD 指令内容等价于面添加两条指令

1
2
3
4
5

FROM image-A

#Automatically run the following
ADD . /app/src
RUN /usr/local/bin/python-build --dir /app/src

使用 ONBUILD 指令镜像推荐标签注明例 ruby:1.9-onbuild
基于CentOS6.7并源码安装nginx
首先准备nginx-1.9.9.tar.gz安装包CentOS6-Base-163.repo(163源)两文件放同目录并目录创建名称Dockerfile文件文件实现源替换、nginx编译安装、及些依赖包安装Dockerfile内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# this is a test ubuntu 12.04 image dockerfile
# Author:fengzheng

# Base image,this must be set as the first line
#localhost:5000/centos:6.7我私仓库镜像替换centos:6.7(DockerHub镜像)
FROM localhost:5000/centos:6.7

MAINTAINER fengzheng

# Commands to update the image

RUN mkdir /usr/nginx1.9.9
ADD nginx-1.9.9.tar.gz /usr/nginx1.9.9/
#RUN yum -y install tar
#RUN tar -zxvf /usr/nginx1.9.9/nginx-1.9.9.tar.gz
RUN cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo.bak
ADD CentOS6-Base-163.repo /etc/yum.repos.d/
RUN cd /etc/yum.repos.d/ && mv CentOS6-Base-163.repo CentOS-Base.repo \
&& yum clean all && yum makecache \
&& yum -y install gcc \
&& yum -y install yum install -y pcre-devel \
&& yum -y install zlib zlib-devel \
&& yum -y install openssl openssl--devel \
&& cd /usr/nginx1.9.9/nginx-1.9.9/ && ./configure && make && make install

#设置daemon off; nginx启
#RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

# Commands when creating a new container
# 启nginx 需进入/usr/local/nginx/sbin 执行./configure
CMD /bin/bash

执行命令"docker build -t nginx-centos:6.7 ."
其.表示前目录搜索Dockerfile文件-t参数指定镜像名称tag
如何用Gradle创建Docker镜像

1.进入root权限 sudo su 2.停止所有的container,这样才能够删除其中的images:docker stop $(docker ps -a -q)如果想要删除所有container的话再加一个指令:docker rm $(docker ps -a -q)3.查看当前有些什么images docker images 4.删除images,通过image的id来指定删除谁 docker rmi <image id>...

如何用Gradle创建Docker镜像

第一个,jar,创建了包括dependency的可执行scheduler jar文件。在创建Docker镜像之前,我们需要把该jar文件复制到build/docker文件夹中。复制要靠第二个task——copy来完成。因为版本剥离(stripped)的关系,Dockerfile中的CMD一直都是java -jar elasticsearch-mesos-scheduler.jar。第三个task,运行docker。...

Gradle项目构建docker镜像(支持Gradle多模块)

1、项目根目录下加入Dockerfile文件,以下为Dockerfile文件示例(注意:DockerFile文件默认放在项目根目录下):2、修改build.gradle配置文件。以下为基于springboot的gradle项目配置文件示例,需要改动的只是docker相关的部分:二、以上配置修改完成后,可通过以下命令编译并生成docker镜像 gradle clean build -x ...

如何用 Gradle 创建 Docker 镜像

(2)MAINTAINER(用来指定镜像创建者信息)构建指令,用于将image的制作者相关的信息写入到image中。当我们对该image执行docker inspect命令时,输出中有相应的字段记录该信息。格式:[plain] view plaincopy MAINTAINER (3)RUN(安装软件用)构建指令,RUN可以运行任何被基础image支持的命令。如基础image选择...

如何用 Gradle 创建 Docker 镜像

MAINTAINER: 镜像作者 ,格式为 MAINTAINER <name> RUN:格式为 RUN 或 RUN ["executable", "param1", "param2"]。前者将在 shell 终端中运行命令,即 /bin/sh -c;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"]。每条 ...

如何用Gradle创建Docker镜像

如何通过dockerhistory命令来对docker镜像进行反向工程推测它们的Dockerfile,从而在对不同的Docker镜像反向工程获取Dockerfile之后合并成一个。常言道,“不要重复发明轮子!”在使用docker时,最好在构建你自己的镜像前上DockerHub寻找一些直接可以用的。把你的软件架构分布到一系列容器中,每一个容器只做一...

在K8S 中部署 Spring Boot 应用,爽!

打包Docker镜像 在讲部署之前我们需要先将我们的SpringBoot应用打包成标准的DockerImage。 Spring Boot 基础就不介绍了,推荐下这个实战教程: https://www.javastack.cn/categories/Spring-Boot/ java项目打包镜像用maven/gradle插件比较多,我的另一篇文章构建SpringBoot的Docker镜像,这里在介绍一个新的google开源的插件...

执行springboot的jar?

重新加迅蔽载镜像 dockerrun-d-p8888:8888renren 5、网页输入一个接口,查看返回情况 3、SpringBoot打包成jar并运行jar方式 Gradle的buildJar 执行完后会下工程的build/libs下生成可以运行的jar文件 1、windows 更好的方式是写一个bat文件,双击就可以运行了 也可以做成windows服务,开机启动 可以使用第...

springboot菜鸟教程

六、部署和测试 完成应用开发后,可以使用Spring Boot的内置工具进行部署和测试。例如,使用mvn spring-boot:run命令运行应用,或使用自动化测试框架进行集成测试。部署方面,可以将应用打包成Docker镜像或使用外部服务器进行部署。测试是保证应用质量的重要环节,应编写单元测试和集成测试以确保功能的正确性。

golanginit

docker起来之后,什么就都配置好了,NDK啦,java啦,GO的环境变量了,等等,并且还预装了vim,gradle,tmux,git,syncthing,svn 开始写代码 写代码之前,先约定下目录结构 go的代码都放在src/golib下,编译使用make.bash编译脚本,看下这个文件树 . |--app.iml |--build.gradle |--libs/armeabi-v7a#go编译生成的so文件...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
ppt一打开就是全屏的, 而且是ppt格式的。。好烦啊 ,,求大神支招。_百度... PPT中点了放映设置如何取消ppt中点了放映设置如何取消掉 贵州载诚实业有限责任公司怎么样? 遵义桐梓鑫洋鹭岛大院带装修吗? 怎么把抖音上面的歌设置成手机铃声呢? 遵义阳源建设工程有限公司怎么样? 贵州碧庆源工程建设有限公司怎么样? 桐梓县娄山木业装饰有限责任公司怎么样? 贵州恒盛凯瑞建筑工程有限公司怎么样? 桐梓华新装饰科技有限责任公司怎么样? 如何通过java来操作docker镜像 dockerfile CMD执行多条命令且需要支持环境变量 docker内执行reboot命令会重启物理机吗 Dockerfile里指定执行命令用ENTRYPOING和用CMD有何不同 docker run 和网络有关吗 每次run一个新容器时是否有必要设置ulimit参数 docker容器里面怎么更改内核参数 docker run.sh要自己写吗 centos7下docker run命令,如何根据环境变量编写命令,让镜像变成容器运行起来? qq阅读书币充值 一个运行中的Docker容器怎么修改执行run命令时的环境变量 docker run参数里volumes-from和device有什么区别 docker启动容器后如何更新参数 qq下载的离线文件在哪里可以找到? 如何设置nginx和apache 可以同时装apache和nginx么 如何配置nginx跟apache 怎么安装apachehttpd ubuntu 下如何安装apache? windows如何安装APACHE2.0 Dockerfile中ENTRYPOINT 和 CMD的区别 docker 所有web都要加端口号吗? docker pull 后怎么用 怎么在docker 中启动一个daemon 如何在linux系统下安装nginx nginx谁安装过?在linux系统Asianux server下。 Excel中怎么用键盘不用鼠标切换工作表标签 linux nginx安装后怎么访问 linux nginx需要哪些支持包 nginx nodejs反向代理怎么配置 什么是反向代理服务器如何配置反向代理服务器 如何把ps制作gif的动态表情包 如何利用PS做出GIF图的表情包 ps制作动态表情包步骤简单 如何用ps把表情包做成动态头像 360极速浏览器怎样设置屏蔽网页上讨厌的弹出广告???我没有看到右下角有这个 如何用PS制作动态♂表情包 怎么用ps cs6做gif动画表情 ps怎么做qq表情 ps怎样制作抖动的表情包
  • 焦点

最新推荐

猜你喜欢

热门推荐