摘要: (一)概述 一个完整的软件,日志是必不可少的。程序从开发、测试、维护、运行等环节,都需要向控制台或文件等位置输出大量信息。这些信息的输出, 在很多时候是使用 System.out.println() 无法完成的。 日志信息根据用途与记录内容的不同,分为 调试日志、运行日志、异常日志 等。 Log4j 阅读全文
posted @ 2020-11-28 15:51 乘风破浪的小子 阅读(510) 评论(0) 推荐(0) 编辑
摘要: Dockerfile 最佳实践 (一)一般性的指南和建议 1、容器应该是短暂的 通过 Dockerfile 构建的镜像所启动的容器应该尽可能短暂(生命周期短)。「短暂」意味着可以停止和销毁容器,并且创建一个新容器并部署好所需的设置和配置工作量应该是极小的。 2、使用 .dockerignore 文件 阅读全文
posted @ 2020-11-28 15:46 乘风破浪的小子 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1、基本语法 Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker Daemon。 客户端命令:基本命令格式为 docker [OPTIONS] COMMAND [arg...]; 服务端命令:基本命令格式为 dockerd [OPTIONS]。 可以 阅读全文
posted @ 2020-11-28 15:39 乘风破浪的小子 阅读(592) 评论(0) 推荐(0) 编辑
摘要: (一)Docker 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。 使用 docker container ls 可以看 阅读全文
posted @ 2020-11-28 15:35 乘风破浪的小子 阅读(146) 评论(0) 推荐(0) 编辑
摘要: (一)Docker Compose 实战 Tomcat version: '3.1' services: tomcat: restart: always image: tomcat container_name: tomcat ports: - 8080:8080 volumes: - /usr/l 阅读全文
posted @ 2020-11-28 15:29 乘风破浪的小子 阅读(96) 评论(0) 推荐(0) 编辑
摘要: Docker Compose 模板文件 模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟 docker run 相关参数的含义都是类似的。 默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。 version: " 阅读全文
posted @ 2020-11-28 15:26 乘风破浪的小子 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1、命令对象与格式 对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。 执行 docker-compose [COMMAND] --help 或者 docker-compos 阅读全文
posted @ 2020-11-28 15:22 乘风破浪的小子 阅读(253) 评论(0) 推荐(0) 编辑
摘要: (一)什么是 Docker Compose Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。 概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenS 阅读全文
posted @ 2020-11-28 15:17 乘风破浪的小子 阅读(180) 评论(0) 推荐(0) 编辑
摘要: (一)Docker 数据卷 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷 可以在容器之间共享和重用 对 数据卷 的修改会立马生效 对 数据卷 的更新,不会影响镜像 数据卷 默认会一直存在,即使容器被删除 注意:数据卷 的使用,类似于 Linux 下 阅读全文
posted @ 2020-11-28 14:48 乘风破浪的小子 阅读(101) 评论(0) 推荐(0) 编辑
摘要: (一)访问 Docker 仓库 仓库(Repository)是集中存放镜像的地方。 一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址  阅读全文
posted @ 2020-11-28 14:46 乘风破浪的小子 阅读(289) 评论(0) 推荐(0) 编辑
摘要: (一)Docker 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 1、新建并启动 所需要的命令主要为 docker run。 例如,下面的命令 阅读全文
posted @ 2020-11-28 14:41 乘风破浪的小子 阅读(113) 评论(0) 推荐(0) 编辑
摘要: (一)Dockerfile 多阶段构建 1、之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用两种方式: 全部放入一个 Dockerfile 一种方式是将所有的构建过程编包含在一个 Dockerfile 中,包括项目及其依赖库的编译、测试、打包等流程,这里 阅读全文
posted @ 2020-11-28 14:23 乘风破浪的小子 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: 1、COPY 复制文件 格式: COPY <源路径>... <目标路径> COPY ["<源路径1>",... "<目标路径>"] 和 RUN 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用。 COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标 阅读全文
posted @ 2020-11-28 14:19 乘风破浪的小子 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1、Dockerfile 定制镜像 从刚才的 docker commit 的学习中,我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的 阅读全文
posted @ 2020-11-28 14:12 乘风破浪的小子 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 利用 commit 理解镜像构成 注意: docker commit 命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用 docker commit 定制镜像,定制镜像应该使用 Dockerfile 来完成。 镜像是容器的基础,每次执行 docker run 的时候都会 阅读全文
posted @ 2020-11-28 14:07 乘风破浪的小子 阅读(97) 评论(0) 推荐(0) 编辑
摘要: (一)Docker 获取镜像 之前提到过,Docker Hub (opens new window)上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。 从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为: docker pull [选项] [Docker 阅读全文
posted @ 2020-11-28 14:05 乘风破浪的小子 阅读(655) 评论(0) 推荐(0) 编辑
摘要: (一)安装 Docker Docker 在 1.13 版本之后,从 2017 年的 3 月 1 日开始,版本命名规则变为如下: 项目说明 版本格式 YY.MM Stable 版本 每个季度发行 Edge 版本 每个月发行 同时 Docker 划分为 CE 和 EE。CE 即社区版(免费,支持周期三个 阅读全文
posted @ 2020-11-28 13:56 乘风破浪的小子 阅读(142) 评论(0) 推荐(0) 编辑