容器

Docker 容器网络

孤人 提交于 2020-01-18 07:56:47
默认网络 当安装docker时,它会自动创建3个网络。可以使用docker network ls 来查看。 zane@zane-V:~$ docker network ls NETWORK ID NAME DRIVER SCOPE 4b10534b40ff bridge bridge local 7dbe50e049ea host host local 08bfed547b1e none null local 当运行容器的时候,可以指定容器使用哪个网络,用--network 参数。 bridge网络代表的是出现在ifconfig 中的 docker0. 除非你使用docker run --network=<>来指定使用的网络, 否则都会使用这个默认的bridge网络。 zane@zane-V:~$ ifconfig docker0 Link encap:以太网 硬件地址 02:42:dc:06:cb:3c inet 地址:172.17.0.1 广播:0.0.0.0 掩码:255.255.0.0 inet6 地址: fe80::42:dcff:fe06:cb3c/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 跃点数:1 接收数据包:47395 错误:0 丢弃:0 过载:0 帧数:0 发送数据包:49555 错误:0 丢弃:0 过载:0

ApplicationListener<ContextRefreshedEvent>接口,Spring启动后获取所有拥有特定注解的Bean

天大地大妈咪最大 提交于 2020-01-18 07:56:02
最近项目中遇到一个业务场景,就是在Spring容器启动后获取所有的Bean中实现了一个特定接口的对象,第一个想到的是ApplicationContextAware,在setApplicationContext中去通过ctx获取所有的bean,后来发现好像逻辑不对,这个方法不是在所有bean初始化完成后实现的,后来试了一下看看有没有什么Listener之类的,发现了好东西ApplicationListener,然后百度一下ApplicationListener用法,原来有一大堆例子,我也记录一下我的例子好了。 很简单,只要实现ApplicationListener<ContextRefreshedEvent>接口,然后把实现类进行@Component即可,代码如下: Java代码 @Component public class ContextRefreshedListener implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEvent event) { // 根容器为Spring容器 if(event.getApplicationContext().getParent()==null){ Map<String

Docker常用命令

為{幸葍}努か 提交于 2020-01-18 06:51:21
Docker常用命令总结 基础命令 1.查看镜像列表 docker images 2.查看运行中的所有容器 docker ps -a 3.从dockerhub拉取指定镜像 docker pull [images]:[version] 4.后台启动docker,并指定宿主机端口和docker映射端口。 docker run -p 8000:80 -tdi --privileged[imageID][command] -i:以交互模式运行容器,通常与 -t 同时使用; -d:后台运行容器,并返回容器ID; -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用; --privileged 容器将拥有访问主机所有设备的权限 通常情况下 [command] 填下/bin/bash即可。 特殊情况下,如需要在centos镜像中使用systemctl. 则应添加--privileged并设置[command ]为init。 5.进入终端交互模式。 sudo docker exec -it [containerID] /bin/bash 当镜像通过run 启动后,便会载入(创建)一个动态的container中运行。 交互模式中,使用ctrl+p+q退出交互 保持运行,使用 exit命令退出并停止容器。 6.在容器非交互模式下,启动/停止已部署的容器服务。 docker start/stop

Docker

旧城冷巷雨未停 提交于 2020-01-18 04:40:14
文章目录 Docker 什么是虚拟化 容器技术 Docker特点 Docker组件 Docker客户端和服务器 Docker镜像 Registry(注册中心) Docker容器 Docker 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用 虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。 容器技术 在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化(hypervisor virtualization,HV)有所不同,管理程序虚拟化通过中间层将一台或者多台独立的机器虚拟运行与物理硬件之上,而容器则是直接运行在操作系统内核之上的用户空间。因此,容器虚拟化也被称为“操作系统级虚拟化”

生产环境容器落地最佳实践 - JFrog 内部K8s落地旅程

只谈情不闲聊 提交于 2020-01-17 18:20:16
引言 Kubernetes已经成为市场上事实上领先的编配工具,不仅对技术公司如此,对所有公司都是如此,因为它允许您快速且可预测地部署应用程序、动态地伸缩应用程序、无缝地推出新特性,同时有效地利用硬件资源。 本期我们将回顾采用Kubernetes作为容器编排工具的公司所面临的复杂性和挑战。我们希望我们提供的经验教训、最佳实践和技巧将帮助您在前往K8s旅途中起步并继续前进。 本期将介绍关于在Kubernetes生产环境的最佳实践,包括:: 为上K8s容器云准备好应用程序 在Kubernetes中获得灵活性和通用性 为所有应用程序使用单一、可信和可靠的源 自动部署到Kubernetes 在Kubernetes中构建可靠且可伸缩的环境 可见性和安全性:在Kubernetes中保护您的应用程序 在Kubernetes中记录、监视和调试您的微服务 将应用程序部署到Kubernetes的生产环境中 背景 JFrog与Kubernetes的旅程始于我们寻找一个合适的容器编排解决方案,以便为内部目的创建一个功能齐全的环境。我们的开发人员需要测试我们非常复杂的环境,包括JFrog Artifactory和其他产品。与此同时,我们需要为程序和产品经理提供一个完整的功能环境,以便向我们的客户演示平台。 为了满足我们的需求,每个产品都需要一个独立的CI/CD开发环境

学习Spring IoC

荒凉一梦 提交于 2020-01-17 13:34:09
1:Spring IoC: Spring IoC是实现Object依赖关系之间松散耦合的机制。要在运行时实现对象的松散耦合和动态绑定,对象依赖项将由其他汇编器对象注入。Spring IoC容器是将依赖项注入对象并使其可供我们使用的程序。我们已经了解了如何使用Spring Dependency Injection在我们的应用程序中实现IoC。 Spring IoC容器类的一部分org.springframework.beans和org.springframework.context包。Spring IoC容器为我们提供了解耦对象依赖关系的不同方法。 BeanFactory是Spring IoC容器的根接口。ApplicationContext是接口的子接口BeanFactory,提供Spring AOP功能,i18n等。 一些有用的子接口ApplicationContext是ConfigurableApplicationContext和WebApplicationContext。Spring Framework提供了许多有用的ApplicationContext实现类,我们可以使用它们来获取spring上下文,然后是Spring Bean。 2:我们使用的一些有用的ApplicationContext实现是; AnnotationConfigApplicationContext

记一次docker部署容器遇见的一个不该遇见的坑

那年仲夏 提交于 2020-01-17 12:58:15
具体问题可以参考这 https://q.cnblogs.com/q/125424/ 部署了两个容器,结果发现容器之间的IP可以ping通,但是telnet怎么都是connettion refuse链接拒绝,我倒也没用--link或者--network,也没尝试docker -compose.yml的写法,也尝试了在docker中希望打通端口的做法,但是似乎和这个问题的其中一个解答者说的一样,不要把docker完全当成宿主机操作,而且,如果使用ufw allow总是会提示你权限不够,要切root,这样就算前面加了sudo也还是如此提示,最后还是侥幸的看了一下宿主机的端口是否被防火墙挡住了,,命令一查果然如此,在防火墙开通端口后,再次telnet就发现两个容器之间可以互相通信了,这里有一点疑惑就是难道真的不能通过localhost或者127.0.0.1去通信吗,我目前想是不能,因为一个容器代表了一个独立的环境 来源: https://www.cnblogs.com/llcdbk/p/12205079.html

docker network 参数

冷暖自知 提交于 2020-01-17 12:31:23
一、 格式 docker network COMMAND 二、COMMAND 讲解 2.1 、docker network connect 格式 docker network connect [OPTIONS] NETWORK CONTAINER # 将容器连接到网络。您可以按名称或ID连接容器。连接后,容器可以与同一网络中的其他容器通信。 options 参数 简参数,参数 描述 --alias 为容器添加网络范围的别名 --driver-opt 网络的驱动程序选项 --ip IPv4地址(例如172.30.100.104) --ip6 IPv6地址(例如2001:db8 :: 33) --link 将链接添加到另一个容器(建议不用,后期应该会删除的) --link-local-ip 为容器添加本地链接地址 例子 # 将正在运行的容器(container1)连接到网络(multi-host-network) docker network connect multi-host-network container1 # 启动容器时将其连接到网络(multi-host-network) docker run -itd --network=multi-host-network busybox #您可以指定要分配给容器接口的IP地址 docker network connect --ip

Spring容器的基本实现

扶醉桌前 提交于 2020-01-17 08:59:00
Spring容器的基本实现 Intellij IDEA ,Spring5.0.1 下面会以一个简单的案例来谈一谈Spring容器的基本实现。 一、搭建Spring的简单工程 搭建简单的Spring工程,目录结构如下:创建一个User对象,编写一个appliacationContext.xml;将User交个Spring去管理。然后从容器中获取该对象 接下来针对下面这段代码进行展开讲解: @Test public void testIOC ( ) throws Exception { // 创建对象 // User user = new User(); // 现在,把对象的创建交给spring的IOC容器 Resource resource = new ClassPathResource ( "applicationContext.xml" ) ; // 创建容器对象(Bean的工厂), IOC容器 = 工厂类 + applicationContext.xml BeanFactory factory = new XmlBeanFactory ( resource ) ; // 得到容器创建的对象 User user = ( User ) factory . getBean ( "user" ) ; } 二、认识一下核心类 2.1 DefaultListableBeanFactory