首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Docker--创建tomcat+JDK镜像并发布web项目实例

1:创建Dockerfile文件,用于构建镜像 如果你还不知道Dockerfile如何创建,请移步的另一篇博客:https://blog.csdn.net/CSDN___LYY/article/...替换对应http位置即可 的项目的数据库使用的是远程数据库,所以没有镜像中加入数据库的构建,还是直接使用的远程数据库 Dockerfile文件如下: #使用的基础镜像 FROM centos...将创建的Dockerfile文件放在该文件夹Dockerfile的文件名最好是“Dockerfile”,这样默认查找到该文件,不用再进行指定文件。...4:测试容器 容器启动后有时候容器的tomcat还没有启动完毕,我们可以通过查看容器的log来判断tomcat是否启动成功 docker logs 容器ID或者容器name 当我们确认tomcat...启动成功后,本地测试是否可以访问项目 ####本机的浏览器输入: ip:8080/xcar-index-web ####例如: 10.52.10.227:8080/xcar-index-web

1.1K30

Docker 上开发应用 - 编写 Dockerfile 的最佳实践

检查完所有指令后,Docker 从缓存寻找可用的镜像,而不是创建一个新镜像如果不想使用缓存,可以执行 docker build 命令是添加 --no-cache=true选项。...Docker 遵守的基本规则如下: 从缓存已经存在的父镜像开始,将下一条指令与从基本镜像派生的所有子镜像进行比较,以查看是否使用完全相同的指令构建了其中的一个子镜像如果没有则缓存失效。...解释性意见包含在内。 注意:如果字符串包含空格,则必须用双引号引起来或转义这个空格。如果字符串包含双引号,必须转义。...如果 Dockerfile 中有多个步骤使用了上下文中的不同文件,挨个使用 COPY 命令,而不是一次全部完成。这可确保每个步骤的构建缓存仅在特定的所需文件发生更改时才会失效(强制重新运行步骤)。...例如,可以为语言堆栈镜像使用 ONBUILD, Dockerfile 中使语言编写任意用户软件,就像在 Ruby 的 ONBUILD 变体中看到的一样。

1.9K40
您找到你想要的搜索结果了吗?
是的
没有找到

dockerfile

容器启动命令:当基于改镜像的容器启动时需要执行哪些命令,常见的是CMD命令和ENTRYPOINT命令 CMD命令也是默认/bin/sh执行,并且默认只能有一条, 如果是多条CMD命令则只有最后一条执行...用户也可以docker run命令创建容器时指定新的CMD命令来覆盖Dockerfile里的CMD 创建镜像 docker build 命令用于使用 Dockerfile 创建镜像。...将内部服务的80端口暴露出来,提供给容器间互联使用 设置容器主机名:ENV HOSTNAME web。设置由镜像创建的容器的主机名为web。...向镜像增加文件 COPY test.txt /var/www/html,将txt文件拷贝到容器里的/var/ww/html目录。...如果Dockerfile/usr/local目录下,则test.txt的绝对路径就是/usr/local/test.txt ADD html.tar /var/www:将tar添加到容器指定目录

80220

Docker学习笔记---Dockerfile

Dockerfile指令 FROM 有效的Dockerfile必须从FROM开始,镜像可以是任何有效的镜像。 官方建议,如果只需要一个linux基础镜像,建议使用Debian镜像,控制的很小。...如果知道要更新当前基础镜像的某一个软件,比如**nginx**,请使用**apt-get install -y nginx**来进行安装更新 通常我们如下使用他: ```docker RUN apt-get...值将处于所有“后代” Dockerfile命令的环境 ENV指令有两种形式。第一个表单ENV 将会将一个变量设置为一个值。第一个空格后的整个字符串将被视为- 包括空格和引号等字符。...第二种形式ENV = …允许一次设置多个变量。请注意,第二种形式语法中使用等号(=),而第一种形式则不使用等号。像命令行解析一样,引号和反斜杠可用于包含空格。...如果用户指定了Dockerfile未定义的构建参数,则构建输出警告[Warning] One or more build-args [foo] were not consumed.

67510

docker命令实战

/lib/docker/volumes是否有生成卷,因为的是mac电脑,一般自动隐藏这个文件路径,需要运行这条命令进去看: docker run -it --privileged --pid=host...# LABEL指令为镜像添加标签,当前镜像继承父镜像的标签,如果与父标签重复,覆盖之前的标签 # 例: LABEL multi.label1="value1" multi.label2="value2...可以指定端口监听 TCP 还是 UDP,如果不指定协议,则默认为 TCP # 如果要同时 TCP 和 UDP 上公开,Dockerfile可以这样写 EXPOSE 80/tcp EXPOSE 80...# 如果WORKDIR不存在,及时它没有在后续Dockerfile指令中使用,它也会被创建。...简单的说,就是 Dockerfile 里用 ONBUILD 指定的命令, # 本次构建镜像的过程不会执行(假设镜像为 test-build), # 当有新的Dockerfile使用了之前构建的镜像FROM

63730

3.Docker学习之Dockerfile

RUN 指令最常见的用法是安装用的apt-get,因为指令安装,所以有几个问题需要注意 不要使用 RUN apt-get upgrade 或 dist-upgrade , 如果基础镜像的某个过时了...如果你确定某个特定的比如 foo 需要升级,使用 apt-get install -y foo 就行,指令自动升级 foo 。...,特别是执行apt-get指令后 /var/cache/apt 和 /var/lib/apt/lists下面会缓存一些安装; 删除中间文件:比如下载的压缩 删除临时文件:如果命令产生了临时文件,也要及时删除...#安装完软件清楚 `/var/lib/apt/list/` 缓存 rm -rf /var/lib/apt/lists/* rm -rf /var/cache/apt 12.构建缓存查找是否已经存在可重用的镜像...,如果有就使用现存的镜像不再重复创建 , 开启缓存的情况下,内容不变的指令尽量放在前面;当然如果你不想在构建过程中使用缓存,你可以 docker build 命令中使用--no-cache=true

1.2K20

Dockerfile 详解,看这一篇就够了

install httpd && yum install ftp 这样构建的时候减少产生中间层镜像 EXPOSE 指定运行镜像的容器使用的端口,可以是多个。...ONBUILD COPY index.html /var/www/html Dockerfile的构建过程 dockerDockerfile文件头FROM指定的基础镜像运行一个容器 然后执行一条指令...,对容器修改 接着执行类似docker commit的操作,创建新的镜像基于刚创建的镜像运行一个新的容器 执行Dockerfile下一条指令,直到所有指令执行完毕 docker删除中间层创建的容器...如果不想使用构建缓存,则在docker build中使用—no-cache选项。...还可以Dockerfile中使ENV REFRESH_DATE 2018-01-01来制定缓存刷新时间,更改这个时间,就会让后面的命令不使用缓存。

1.4K40

Docker 部署Django博客项目

之前部署的博客项目(Django应用),没用Docker,直接借助的宝塔Linux服务器面板服务器上部署的,部署起来也是十分的方便,使用了Django+Nginx+Supervisor+Gunicorn...的博客是使用了容器互联的方式搭建 Django 容器栈。 网络架构 ?...也就是说你必须要做几件事: 每个服务(应用)下编写Dockerfiledocker-compose.yml文件配置相关的服务; run.sh 执行 docker-compose命令:build...:配置了环境变量,创建一个数据库(数据库名为djangoblog,django执行migrate操作时会用); volumes:数据卷,为了实现备份用的,/date/mysql 是主机目录,/var...,先启动memcached,然后再启动db;二是如果执行docker-compose up db也创建和启动memcached。

1.4K10

Docker镜像构建知识:Dockerfile 命令详解

FROM指令必是Dockerfile文件的首条命令,启动构建流程后,Docker将基于镜像构建新镜像,FROM后的命令也基于这个基础镜像。...FROM有以下限制: FROM必须是Dockerfile第一条非注释命令 一个Dockerfile文件创建多个镜像时,FROM可以多次出现。...RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。如果不想使用这些缓存镜像,可以构建时指定--no-cache参数,如:docker build --no-cache。...6.ENV设置环境变量 指定环境变量,镜像生成过程中会被后续 RUN 指令使用,镜像启动的容器也会存在。...如果基于 im­age-A 创建新的镜像时,新的 Dock­er­file 中使用FROM image-A指定基础镜像自动执行 ON­BUILD 指令的内容,等价于在后面添加了两条指令: FROM

89911

用Docker玩转PHP环境配置

为了更大兼容所有平台,把时间同步写到Dockerfile。...将Composer直接安装在了php-fpm的镜像,其实官方也提供了Composer的镜像,拉取Composer镜像执行也可以达到目的,因为我们使用Composer只是为了执行Composer命令来管理我们的...,如果Composer单独是一个容器的话,我们不用时,还可以将容器关掉;但是在这里,直接将Composer装进php-fpm镜像,主要是的项目安装了一些PHP拓展,在编写composer.json...文件时,定义了extension的依赖,这样Composer执行时会检查环境是否安装了这些依赖,所有如果直接用Composer镜像的话,还需要把用的拓展安装到镜像里,就麻烦多了,所以我直接在PHP...其它的参数: build定义了你的Dockerfile在哪里,如果没有写Dockerfile可以不用build,可以用images参数定义官方镜像,比如image:mysql:5.7; depends_on

2.2K20

Dockerfile语法概要

一旦环境变量设置,就可以Dockerfile后面的内容及容器运行后的应用获取使用这个环境变量,ENV的写法也是=,语法为 ENV MY_NAME="John Doe" ENV...、bzip2、xz格式的压缩,ADD指令将会自动解压缩这个压缩文件到目标路径去 2.5 ARG ARG设置的是构建时的参数,也可以理解为构建时的环境变量,与ENV的不同是只构建时生效,生成的镜像是不存在的...如果工作目录不存在,即使它没有在后续的Dockerfile指令中使用,它也会被创建 WORKDIR指令可以Dockerfile中使用多次。...,那么将使用Docker镜像自带的命令及其参数 如果在容器配置只设置了 command 但是没有设置 args,那么容器启动时只会执行命令, Docker镜像自带的命令及其参数会被忽略 如果在容器配置只设置了...args,那么Docker镜像自带的命令会使用新参数作为其执行时的参数 如果在容器配置同时设置了 command 与 args,那么Docker镜像自带的命令及其参数会被忽略。

67410

3.Docker学习之Dockerfile

RUN 指令最常见的用法是安装用的apt-get,因为指令安装,所以有几个问题需要注意。...如果你确定某个特定的比如 foo 需要升级,使用 apt-get install -y foo 就行,指令自动升级 foo 。...,特别是执行apt-get指令后 /var/cache/apt 和 /var/lib/apt/lists下面会缓存一些安装; 删除中间文件:比如下载的压缩 删除临时文件:如果命令产生了临时文件,也要及时删除...#安装完软件清楚 `/var/lib/apt/list/` 缓存 rm -rf /var/lib/apt/lists/* rm -rf /var/cache/apt 12.构建缓存查找是否已经存在可重用的镜像...,如果有就使用现存的镜像不再重复创建 , 开启缓存的情况下,内容不变的指令尽量放在前面;当然如果你不想在构建过程中使用缓存,你可以 docker build 命令中使用--no-cache=true

1.6K20

Docker系列学习文章 - 专业化定制镜像dockerfile(六)

如果使用ADD,那么不仅仅是复制过去了,同时还会解压缩这个tar。...ENV指令 大家看到ENV这个词应该差不多能明白它是什么意思了,ENV就是环境变量单词的缩写。dockerfile里,我们也经常得定义一些环境变量。...如果后续万一参数有变化,只要改前面的ENV内容值即可,非常方便! 7. ARG指令 ARG指令就是用来传递变量用的,它一般结合docker build命令的--build-arg一起使用。...USER root 这个命令很简单,但是要注意的是,使用USER指令,影响RUN、CMD、ENTRYPOINT等指令,同时也影响容器主进程运行的用户。...大家只要在日常工作当中多用一两次,基本上就能写出很专业实用的dockerfile。这些指令我想也不是死的,随着docker的发展,想未来肯定会出一些新的指令。但是目前这些指令,基本上是够用了

3.3K311

Docker 进阶指南(上)- 使用Dockerfile自定义镜像

企业实际工作当中,我们也一般使用Dockerfile来构建镜像 使用Dockerfile 如果说容器是现成的商品房,镜像就是样板房,那么Dockerfile文件就是构建房子的设计图纸,它来规定如何建造地基...#指定容器多个需要被挂载的目录,会把这些目录映射到宿主机的多个随机目录上,实现数据的持久化和同步 VOLUME /var/data var/log #指定容器var/log 目录挂载到宿主机上的...设置多个环境变量 示例:ENV JAVA_HOME /usr/java1.8/ ARG: #设置构建镜像是要传递的参数,ARG指令定义的参数,docker build命令以--build-arg...ENV 创建的变量不仅能够构建镜像的过程中使用,容器运行时也能够以环境变量的形式被应用程序使用 Dockerfile官方文档参考 https://docs.docker.com/engine/reference...里面写的不一样,Dockerfile当中,涉及tomcat和jdk版本,均需要进行替换,如对应的压缩名称,以及环境变量路径 编译Dockerfile文件,本目录执行可以不写Dockerfile文件名称

1.1K20

Docker(三):Dockerfile 命令详解

FROM 指令必是 Dockerfile 文件的首条命令,启动构建流程后,Docker 将会基于镜像构建新镜像,FROM 后的命令也基于这个基础镜像。...FROM 有以下限制: FROM 必须 是 Dockerfile 第一条非注释命令 一个 Dockerfile 文件创建多个镜像时,FROM 可以多次出现。...tag 或 digest 是可选的,如果不使用这两个值时,会使用 latest 版本的基础镜像 2 RUN 执行命令 镜像的构建过程执行特定的命令,并生成一个中间镜像。...: 卷可以容器间共享和重用 容器并不一定要和其它容器共享卷 修改卷后会立即生效 对卷的修改不会对镜像产生影响 卷一直存在,直到没有任何容器使用它 VOLUME 让我们可以将源代码、数据或其它内容添加到镜像...大部分情况下,Dockerfile 和构建所需的文件放在同一个目录,为了提高构建的性能,应该使用 .gitignore 来过滤掉不需要的文件和目录。

1.4K60

云原生技术之docker学习笔记(4)

如果我们DockerFile中使用了CMD指令,则docker run命令之后会直接运行CMD指令,例如: docker run -it container_name 会在启动这个容器之后,直接运行/...如果我们DockerFile写明了目录,但是docker run的时候不想使用这个目录应该怎么办?...答案是使用docker run -w /var/dir1 使用-w参数之后,会使用/var/dir1来覆盖我们DockerFile的路径。...指令去覆盖DockerFile的USER选项; 2、如果不指定USER选项,则默认是root用户 06 VOLUME VOLUME指令用来向基于镜像创建的容器添加卷。...ADD文件的过程如果目的地址是以/结尾,那么DockerFile认为源位置是一个目录,反之则认为源文件是一个文件。

73850

【重识云原生】第六章容器6.1.10节——DockerFile解析

可以docker build命令中使用-f标志指向文件系统任何位置的Dockerfile。...大多情况下,应该将一个空目录作为构建上下文环境,并将 Dockerfile 文件放在目录下。         构建上下文中使用的 Dockerfile 文件,是一个构建指令文件。... Docker 构建镜像的第一步,docker CLI 先在上下文目录寻找.dockerignore文件,根据.dockerignore 文件排除上下文目录的部分文件和目录,然后把剩下的文件和目录传递给...如果不想使用这些缓存镜像, 可以构建时指定--no-cache参数,如:docker build --no-cache 2.4 ADD         将本地文件添加到容器,tar类型文件自动解压...,镜像的触发器将会被钥触发。

1.4K20
领券