Docker 生产环境容器化

修改存储目录

生产环境中,镜像多了之后很容易把硬盘写满造成服务器宕机,所以需要挂载一块较大的硬盘,修改 docker 的默认存储路径,下面提供两种方案。

方案一:软连接

1
2
3
service docker stop
mv /var/lib/docker /mnt/sdc/docker
ln -s /mnt/sdc/docker /var/lib/docker
阅读更多

Docker 了解架构

Docker 总架构图

img

C/S 架构

docker 系统使用了 C/S 的架构,docker client 通过 REST API 请求 docker daemon 来管理 docker 的镜像和容器等。

  • Server 端驻守在后台,称之为 docker daemon
阅读更多

BigDecimal 用法

BigDecimal 介绍

BigDecimal 可以实现对浮点数的运算,不会造成精度丢失。

通常情况下,大部分需要浮点数精确运算结果的业务场景(比如涉及到钱的场景)都是通过 BigDecimal 来做的。

《阿里巴巴 Java 开发手册》中提到:浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用 equals 来判断。

阅读更多

Docker 容器编排 Docker Compose

容器编排是什么

应用一般由单独容器化的组件组成,须按照一定顺序在网络级别进行组织,以使其能够按照计划运行,这种对多个容器进行组织的流程称为容器编排,它主要是对容器之间的依赖关系进行编排

Docker-compose

docker官方提供的工具,强调单机多容器的编排,能力相对有限,只能在一台宿主机上对容器编排,对于大规模集群环境中,多台机器无法支持,在windows, mac 安装完docker后默认提供docker-compose,但是在windows server , Linux中默认是不提供的,需要自行安装

阅读更多

Docker 容器间单向通信

docker维护着每个容器的元信息,可以通过IP通信,但是在docker环境中每个容器重启之后,容器的虚拟IP都会变动,这样的情况下我们该如何处理? 我们带着这两个疑问看一下今天的内容

场景

如果我们部署了一个tomcat应用,这个应用需要连接mysql数据库,这种场景下,我们需要让tomcat可以访问mysql数据库,这就需要使两个容器之间可以通信

实现通信的方法

  • 在容器启动的时候,为每个容器指定一个名字,两者通信使用容器名称来识别对方容器
阅读更多

Docker DOCKERFILE 构建自定义镜像

什么是dockerfile

是一个包含用于组合镜像的命令的文本文档
Docker通过读取Dockerfile中的指令按步自动生成镜像

实战-打包自定义tomcat镜像

Dockerfile编写

mkdir -p /usr/local/docker/bk-web-dockerfile
cd /usr/local/docker/bk-web-dockerfile
上传bk-web包到此/usr/local/docker/bk-web-dockerfile目录

阅读更多

Docker DOCKERFILE 基础命令

FROM - 基于基准镜像

尽量使用官方提供的基准镜像

  • FROM tomcat:8.5.50-jdk8-openjdk #制作基准镜像(基于tomcat:8.5.50-jdk8-openjdk)
  • FROM centos #制作基准镜像基于centos:latest
  • FROM scratch #不依赖任何基准镜像

LABEL & MAINTAINER - 说明信息

阅读更多