容器

Docker-Compose 配置详解

喜夏-厌秋 提交于 2020-03-03 00:15:32
先来看一份 docker-compose.yml 文件,不用管这是干嘛的,只是有个格式方便后文解说: version: '2' services: web: image: dockercloud/hello-world ports: - 8080 networks: - front-tier - back-tier redis: image: redis links: - web networks: - back-tier lb: image: dockercloud/haproxy ports: - 80:80 links: - web networks: - front-tier - back-tier volumes: - /var/run/docker.sock:/var/run/docker.sock networks: front-tier: driver: bridge back-tier: driver: bridge 可以看到一份标准配置文件应该包含 version、services、networks 三大部分,其中最关键的就是 services 和 networks 两个部分,下面先来看 services 的书写规则。 1. image services: web: image: hello-world 在 services 标签下的第二级标签是 web

SpringSecurity的权限控制

本小妞迷上赌 提交于 2020-03-02 19:41:04
菜单控制: 可以用来判断这个用户是不是有这些角色,没有的话就不展示 数据控制: 由于数据都是从后端查的,在后端控制权限就可以了 <!-- 开启权限控制注解支持 jsr250-annotations="enabled"表示支持jsr250-api的注解,需要jsr250-api的jar包 pre-post-annotations="enabled"表示支持spring表达式注解 secured-annotations="enabled"这才是SpringSecurity提供的注解 --> <security:global-method-security jsr250-annotations="enabled" pre-post-annotations="enabled" secured-annotations="enabled"/> 注:这个要放在mvc的容器中,因为子容器可以访问到主容器,主容器访问不到子容器 /表示当前类中所有方法都需要ROLE_ADMIN或者ROLE_PRODUCT才能访问 @Controller @RequestMapping("/product") @RolesAllowed({"ROLE_ADMIN","ROLE_PRODUCT"})//JSR-250注解 public class ProductController { @RequestMapping("

Docker常用命令

浪子不回头ぞ 提交于 2020-03-02 19:38:22
帮助命令 命令 描述 docker info 描述信息 docker --help 帮助命令 镜像命令 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 docker images : 列出本地主机上的镜像 命令 描述 docker images -a l列出本地所有的镜像(包含中间映像层) docker images -q 只显示镜像ID docker images --digests 显示镜像的摘要信息 docker --no-trunc 显示完整的镜像信息 docker search 镜像名:在docker Hub上查找 命令 描述 docker search -s 30 镜像名 点赞数超过30的镜像 docker pull 镜像名: 拉镜像 docker rmi 镜像名:删除镜像 命令 描述 docker rmi -f 镜像名 删除单个镜像文件 docker rmi -f 镜像1 镜像2·· 删除多个镜像文件 docker rmi -f $(docker images -q) 删除全部镜像文件 容器命令 Docker 利用镜像创建运行实例 可以把容器看作一个简易版的Linux环境,唯一的区别在于容器的最上面一层是可读可写的。 docker run [OPTIONS

k8s入门教程

一笑奈何 提交于 2020-03-02 18:26:00
1. k8s概述 Kubernetes(简称K8S) 是Google开源的分布式的容器管理平台,方便我们在服务器集群中管理我们容器化应用。 教程主要介绍怎么使用阿里云容器服务(kubernetes版本)。 2. k8s常用概念介绍 节点 (Master node and Worker node) 节点通常指的就是服务器,在k8s中有两种节点:管理节点(Master Node)和工作节点(Worker Node) 管理节点(Master Node):负责管理整个k8s集群,一般由3个管理节点组成HA的架构。 工作节点(Worker Node):主要负责运行容器。 命名空间 (Namespace) k8s命名空间主要用于隔离集群资源、隔离容器等,为集群提供了一种虚拟隔离的策略;默认存在3个名字空间,分别是默认命名空间 default、系统命名空间 kube-system 和 kube-public。 Object k8s 对象(Object)是一种持久化存储并且用于表示集群状态的实体。k8s 对象其实就是k8s自己的配置协议,总之我们可以通过定义一个object让k8s根据object定义执行一些部署任务、监控任务等等。 POD Pod是 Kubernetes 部署应用或服务的最小的基本单位。一个Pod 封装多个应用容器(也可以只有一个容器)、存储资源、一个独立的网络 IP

架构师成长系列 | 云原生时代的 DevOps 之道

ぃ、小莉子 提交于 2020-03-02 16:58:16
什么是云原生 为了解决传统应用升级缓慢、架构臃肿、不能快速迭代、故障不能快速定位、问题无法快速解决等问题,云原生这一概念横空出世。 Pivotal 是云原生应用的提出者,并推出了 Pivotal Cloud Foundry 云原生应用平台和 Spring 开源 Java 开发框架,成为云原生应用架构中先驱者和探路者。 早在 2015 年 Pivotal 公司的 Matt Stine 就写了一本叫做迁移到云原生应用架构的小册子,其中探讨了云原生应用架构的几个主要特征: 符合 12 因素应用 面向微服务架构 自服务敏捷架构 基于 API 的协作 抗脆弱性 后来 Pivotal 对云原生的定义做过几次更新, 最新的 Pivotal 官网上对云原生应用的最新介绍是关注以下四点: 集成 DevOps 持续交付 微服务 容器化 DevOps 是软件开发人员和 IT 运营之间的合作,目标是自动执行软件交付和基础架构更改流程。它创造了一种文化和环境,可在其中快速、频繁且更可靠地构建、测试和发布软件; 持续交付使得单个应用更改在准备就绪后即可发布,而不必等待与其它更改捆绑发布或等待维护窗口期等事件。持续交付让发布行为变得平淡可靠,因此企业可以以更低的风险频繁交付,并更快地获得最终用户的反馈,直到部署成为业务流程和企业竞争力必不可少的组成部分; 微服务是将应用作为小型服务集合进行开发的架构方法

Docker部署MySQL与Redis与Tomcat与RabbitMQ

别等时光非礼了梦想. 提交于 2020-03-02 16:46:36
Docker容器部署MySQL 1创建MySQL镜像 docker pull mysql:5.7 -i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与 -t 同时使用。 -t 启动后会进入其容器命令行, 通常与 -i 同时使用; 加入 -it 两个参数后,容器创建就能登录进去。即分配一个伪终端。 -d 创建一个守护式容器在后台运行,并返回容器ID; 这样创建容器后不会自动登录容器,如果加 -i 参数,创建后就会运行容器。 -p 表示端口映射,格式为: -p 宿主机端口:容器端口 -it:创建交互式容器,创建之后就直接进入容器,并且exit退出直接退出,与守护式容器-id不同创建后后台运行容器,且exit不会直接退出 2创建守护式MYSQL容器 docker run -id --name=jhjMySQL -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 注释: docker run 创建docker容器 -id :守护式容器:创建之后返回宿主机端,docker容器后台运行 –name= :容器名称 -p:端口号映射:左边宿主机端口号,右边容器端口号,外边访问33306,映射访问容器3306 -e MYSQL_ROOT_PASSWORD=:配置root用户的端口号 mysql:5.7 配置容器镜像

端口映射和容器映射

≯℡__Kan透↙ 提交于 2020-03-02 08:44:14
端口映射实现访问容器 1、从外部访问容器应用 docker run -d -P training/webapp python app.py -p 或-P端口映射,-P,docker会随机映射49000~49900的端口到内部容器开放的网落端口 2、映射所有接口地址 docker run -d -p 5000:5000 training/webapp python app.py 多次使用-p可以映射多个端口 3、映射到指定地址的指定端口 docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py 4、映射到指定地址的任意端口 docker run -d -p 127.0.0.1::5000 training/webapp python app.py docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py 5、查看映射端口配置 docker port name 5000 使用docker inspect+容器可以获取容器的详细信息 互联机制实现边界互访 容器的互联是一种让多个容器中应用进行快速交互的方式,接受容器可以通过容器名快速访问到源容器 1、自定义容器命名 连接系统依据容器的名称来执行 使用 -

Docker入门之六端口映射与容器互联

删除回忆录丶 提交于 2020-03-02 08:42:52
一、端口映射 在之前的博客搭建私有仓库时用到这样一句:docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry来run一个仓库,其中可以看到-p 5000:5000,它的作用就是用来进行端口映射。那为什么需要端口映射呢?其实在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口,所以需要进行端口映射。 端口映射有两个关键词-P -p,一个是大写一个是小写,通过run --help也可以看到。大写的P是随机映射一个49000-49900的端口到内部容器开放的网络端口。小写p可以指定要映射的端口,并且在一个指定端口上只可以绑定一个容器。 支持的格式有三种:比较常用的是第三种,因为这样没有对ip进行限制,移植也方便。 ip:hostPort:containerPort:映射指定地址的指定端口到虚拟机的指定端口(不常用) 如:127.0.0.1:5000:5000,映射本机的5000端口到虚拟机的5000端口。 ip::containerPort:映射指定地址的任意端口到虚拟机的指定端口。(不常用) 如:127.0.0.1::5000,映射本机的5000端口到虚拟机的5000端口。 hostPort:containerPort:映射本机的指定端口到虚拟机的指定端口。

(六)boost库之内存管理shared_ptr

安稳与你 提交于 2020-03-01 23:45:22
1、shared_ptr的基本用法 boost::shared_ptr< int > sp( new int (10)); //一个指向整数的shared_ptr assert(sp.unique()); //现在shared_ptr是指针的唯一持有者 boost::shared_ptr< int > sp2 = sp; //第二个shared_ptr,拷贝构造函数 assert(sp == sp2 && sp.use_count() == 2); //两个shared_ptr相等,指向同一个对象,引用计数为2 *sp2 = 100; //使用解引用操作符修改被指对象 assert(*sp == 100); //另一个shared_ptr也同时被修改 sp.reset(); //停止shared_ptr的使用,引用计数减一 assert(!sp); //sp不再持有任何指针(空指针) assert(sp2.use_count() == 1); //sp2引用计数变为1 sp.reset( new int (20)); //sp管理一个新对象 assert(*sp == 20); 2、应用于标准容器 有两种方式可以将shared_ptr应用于标准容器(或者容器适配器等其他容器)。 一种用法是将容器作为shared_ptr管理的对象,如shared_ptr<list<T> >

Docker学习笔记三 入门

谁都会走 提交于 2020-03-01 19:40:56
3.1 验证Docker正常启动 使用docker info 命令,返回所有容器和镜像的数量、docker版本、使用的执行驱动和存储驱动以及Docker的基本配置等。之前说过Docker是基于client-server架构,它有一个docker程序,既能做客户端又能做服务器端。作为客户端时,docker程序向Docker守护进程发送请求,然后再对返回的请求结果进行处理。 3.2 运行第一个容器 可使用docker run 命令创建容器。它提供了容器的创建到启动功能。运行 docker run -i -t ubuntu /bin/bash 参数 -i 保证容器中STDIN是开启的; 参数-t告诉Docker为要创建的容器分配一个伪tty终端。这样新建的容器才能提供一个交互式shell; 接下来告诉Docker基于什么镜像来创建容器,上例使用的是ubuntu镜像,它是一个基础镜像,由Docker公司提供,保存在Docker Hub Registry上。 最后告诉Docker在新容器中要运行什么命令,本例中在容器中运行/bin/bash命令启动了一个Bash shell。 运行命令后Docker会检查本地是否存在ubuntu镜像,如果没有就会连接Docker Hub Registry查看是否有该镜像,一旦找到就会下载并保存到本地宿主机中。