自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辰小诺

一个菜鸟的随笔记录

  • 博客(16)
  • 收藏
  • 关注

原创 七、Docker Compose

1.概述官网地址:https://docs.docker.com/compose/Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。使用Compose三步:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。最后,执行 docker-c

2020-12-10 13:25:32 89

原创 六、DockerFile解析

1.概念Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构建三步骤:编写Dockerfile文件docker builddocker run#eg:centos https://hub.docker.com/_/centos/FROM centos:7ENV container dockerRUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \

2020-12-10 13:25:18 1147

原创 五、Docker容器数据卷

1.是什么一句话:有点类似Redis里面的rdb和aof文件先来看看Docker的理念:将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。2.能干嘛容器的持久化容器间继承,共享数据卷就是目录或文件,存在于一个或多个容器中,

2020-12-10 13:25:03 230

原创 四、Docker镜像

1.是什么镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。1.1 UnionFs(联合文件系统)Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Uni

2020-12-10 13:23:45 139

原创 三、Docker常用命令

1.帮助命令docker version #显示Docker版本信息docker info #显示Docker系统信息,包括镜像和容器数。docker --help #docker帮助2.镜像命令docker images [OPTIONS] [REPOSITORY[:TAG]] 列出本地主机上的镜像OPTIONS说明:-a:列出本地所有的镜像(含中间映像层)-q:只显示镜像id–digests:显示镜像的摘要信息–no-trunc:显示完整的镜像信息#eg:参数说明

2020-12-08 13:18:44 192

原创 二、Docker安装

1.安装https://docs.docker.com/engine/install/2.Docker的基本组成2.1 镜像(image)​ Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。2.2 容器(container)​ Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。​ 它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。​ 可以把容器

2020-12-07 16:51:16 59

原创 一、docker简介

1.是什么1.1 为什么会出现docker​ 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利

2020-12-07 16:28:37 52

原创 死锁编码及定位分析

死锁编码及定位分析    死锁是指两个或两个以上的进行在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉那么他们将无法推进下去,如果系统资源充足,进程的资源请求都能得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。产生死锁的主要原因系统资源不足进程运行推进的顺序不合适资源分配不当定位分析public class DeadLockDemo { ...

2019-08-19 16:19:51 155

原创 线程池用过吗?

线程池用过吗?线程池优势线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。主要特点:线程复用、控制最大并发数、线程管理。降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等到线程创...

2019-08-19 16:18:36 481

原创 阻塞队列知道吗?

阻塞队列知道吗?阻塞队列,顾名思义,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示:当阻塞队列是空时,从队列中获取元素的操作将会被阻塞。 当阻塞队列是满时,往队列里添加元素的操作将会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,知道其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程从列中移除一个或...

2019-08-19 16:15:14 234

原创 CountDownLatch/CyclicBarrier/Semaphore 使用过吗?

CountDownLatch/CyclicBarrier/Semaphore 使用过吗?CountDownLatch让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。其他线程调用countDown方法会将计算器减1(调用countDown方法的线程不会阻塞),当计算器的值变为零时,因调用a...

2019-08-19 16:07:04 213

原创 Java 中的锁你知道哪些?

Java 中的锁你知道哪些?公平和非公平锁公平锁    是指多个线程申请锁的顺序来获取锁,类似排队,先来后到。    在并发环境中,每个线程在获取锁时会查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照FIFO的规则从队列中取到自己。非公平锁    是指多个线程获取锁的顺序不是按照申请锁的顺序,有可能后申请的线程比先...

2019-08-19 16:05:54 616

原创 集合类不安全

集合类不安全/** * 集合类不安全问题 * ArrayList * HasHsET * @author chenxiaonuo * @date 2019-08-12 11:00 */public class ContainerNotSafeDemo { public static void main(String[] args) { Map<S...

2019-08-19 16:04:26 134

原创 ABA问题

ABA问题ABA问题怎么产生的    CAS会导致"ABA"问题。    CAS算法实现的一个重要前提需要拉取出内存中某时刻的数据并在当下时刻比较并替换,那么这个时间差会导致数据的变化。比如说一个线程t1从内存位置V取出A,这时候另一个线程t2也行内存中取出A,并且线程t2进行了一些操作将值变为了B,然后线程t2又将V位置的数据变为A,这时候线程t1进行CAS操作发现内存中仍然是A,然后线程...

2019-08-19 16:00:45 113

原创 CAS是什么?

CAS是什么?    CAS的全称是Compare-And-Swap,它是一条CPU并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。    CAS并发原语体现在Java语言中就是sun.misc.Unsafe类中的各个方法。调用Unsafe类中的CAS方法,JVM会帮我们实现出CAS汇编指令。这是一种完全依赖于硬件的功能,通过它实现了原子操作。再...

2019-08-12 09:52:29 560

原创 Volatile是什么?

Volatile是什么?volatile 是 Java 虚拟机提供的轻量级的同步机制,拥有以下三大特性:保证可见性不保证原子性禁止指令重排JMM(Java内存模型)    JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成素组对象的元素)...

2019-08-12 09:46:39 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除