容器

30 分钟快速入门 Docker 教程

不想你离开。 提交于 2020-03-05 16:03:08
原文地址: 梁桂钊的博客 博客地址: http://blog.720ui.com 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 一、欢迎来到 Docker 世界 1. Docker 与虚拟化 在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系统上建立了一个中间虚拟软件层 Hypervisor ,并利用物理机器的资源虚拟出多个虚拟硬件环境来共享宿主机的资源,其中的应用运行在虚拟机内核上。但是,虚拟机对硬件的利用率存在瓶颈,因为虚拟机很难根据当前业务量动态调整其占用的硬件资源,因此容器化技术得以流行。其中,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。 Docker 容器不使用硬件虚拟化,它的守护进程是宿主机上的一个进程,换句话说,应用直接运行在宿主机内核上。因为容器中运行的程序和计算机的操作系统之间没有额外的中间层,没有资源被冗余软件的运行或虚拟硬件的模拟而浪费掉。 Docker 的优势不仅如此,我们来比较一番。 特性 Docker 虚拟机 启动速度 秒级 分钟级 交付/部署 开发、测试、生产环境一致 无成熟体系 性能 近似物理机 性能损耗大 体量 极小(MB) 较大(GB) 迁移/扩展 跨平台,可复制

Docker部署Tomcat

旧城冷巷雨未停 提交于 2020-03-05 15:28:59
1、拉取tomcat镜像 docker pull tomcat:版本号 版本号需要去hub.docker.com 查找支持的镜像版本; 直接pull tomcat默认是获取最新版的; 2、在/root目录下创建tomcat目录用于存储tomcat数据信息 mkdir ~/tomcat cd ~/tomcat 3、创建和启动mysql容器 docker run -id \ -p 8080:8080\ --name c_tomcat \ -v $PWD:/usr/local/tomcat/webapps \ tomcat:8.0 参数说明:  -id  后台运行,需要使用exec进入容器,退出后容器不会关闭;对应 -it,退出容器后就会关闭;  -p   端口映射,将容器端口(冒号后面)映射到宿主机端口上;  -v  挂载容器的数据卷  tomcat:8.0  创建容器的镜像最新版tomcat启动容器后访问报404,可以降级到8.0版本;暂时没找到好办法解决;    来源: https://www.cnblogs.com/xp2h/p/12420414.html

Spring3开发(一)

ぃ、小莉子 提交于 2020-03-05 12:05:18
1 Ioc是什么? Ioc:Inversion of Control,控制反转,控制权从应用程序转移到框架(如Ioc容器),是框架的共有特性。 1.1 为什么需要IoC容器?IoC容器是如何演变的? (1)、应用程序主动控制对象的实例化及依赖装配 a. A a = new AImpl(); B b = new BImpl(); a.setB(b); 本质:创建对象,主动实例化,直接获取依赖,主动装配 缺点:更换实现需要重新编译源代码    很难更换实现、难于测试 耦合实例生产者和实例消费者 b. A a = AFactory.createA(); B b = BFactory.createB(); a.setB(b); 本质:创建对象,被动实例化,间接获取依赖,主动装配 (简单工厂) 缺点:更换实现需要重新编译源代码 很难更换实现、难于测试 c. A a = Factory.create(“a”); B b = Factory.create(“b”); a.setB(b); <!—配置.properties--> a=AImpl b=BImpl 本质:创建对象,被动实例化,间接获取依赖, 主动装配 (工厂+反射+properties配置文件、 Service Locator、注册表) 缺点:冗余的依赖装配逻辑 (2)、可配置通用工厂 : 工厂主动控制 ,应用程序被动接受

docker(6、存储1)1、storage driver 2、 bind mount 3、docker managed volume

南楼画角 提交于 2020-03-05 11:55:22
Docker 为容器提供了两种存放数据的资源: 1、由 storage driver 管理的镜像层和容器层。 2、Data Volume。 storage driver 在前面镜像章节我们学习到 Docker 镜像的分层结构。 容器由最上面一个可写的容器层,以及若干只读的镜像层组成,容器的数据就存放在这些层中。这样的分层结构最大的特性是 Copy-on-Write: 1、新数据会直接存放在最上面的容器层。 2、修改现有数据会先从镜像层将数据复制到容器层,修改后的数据直接保存在容器层中,镜像层保持不变。 3、如果多个层中有命名相同的文件,用户只能看到最上面那层中的文件。 分层结构使镜像和容器的创建、共享以及分发变得非常高效,而这些都要归功于 Docker storage driver。正是 storage driver 实现了多层数据的堆叠并为用户提供一个单一的合并之后的统一视图。 Docker 支持多种 storage driver,有 AUFS、Device Mapper、Btrfs、OverlayFS、VFS 和 ZFS。它们都能实现分层的架构,同时又有各自的特性。 优先使用 Linux 发行版默认的 storage driver 。 Docker 安装时会根据当前系统的配置选择默认的 driver。默认 driver 具有最好的稳定性 运行 docker info 查看

nvidia-docker操作命令

天涯浪子 提交于 2020-03-05 11:31:39
# nvidia-docker安装部署以及操作手册 前言 docker和nvidia-docker的区别 由于我们深度学习需要用到GPU,使用docker时,需要映射设备等等,docker容器对宿主机的依赖就会很多也就失去了便捷,并不能让我们很舒服的迁移环境,nvidia-docker则很好的封装了这些,只需要容器内的cuda版本和宿主机相同就行(这个要求很低了,而且这个要求现在也基本可以通过docker hub上别人做好的带有各种cuda版本的镜像来满足,所以几乎无要求) 其实nvidia-docker只是run 和 exec命令和docker执行不同,其余的和docker执行的一模一样 ## 1.卸载 nvidia-docker 1.0 及其他GPU容器 ``` $ docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f $ sudo apt-get purge -y nvidia-docker ``` ## 2. 添加package repositories ``` $curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | \

docker从宿主机拷贝文件到容器 or 从容器里拷贝文件到宿主机

人走茶凉 提交于 2020-03-05 10:30:30
1、从宿主机拷贝文件到docker容器 docker cp 宿主机文件路径 容器名/容器ID:拷贝容器中相应的路径 例如:把 /home/test.txt 文件拷贝到 docker-redis(容器名)的 /usr/local/data路径下,在宿主机上执行命令如下: docker cp home/test.txt docker-redis:/usr/local/data 反之,把docker-redis /usr/local/data/test.txt 文件拷贝到 宿主机上,在宿主机上执行命令如下: docker cp docker-redis:/usr/local/data/test.txt /home 来源: CSDN 作者: *sunshine_boy* 链接: https://blog.csdn.net/daocaorenII/article/details/104667546

Azure产品目录

耗尽温柔 提交于 2020-03-05 07:03:12
计算 Linux 虚拟机:为 Ubuntu、Red Hat 等预配虚拟机 Windows 虚拟机 为 SQL Server、SharePoint 等预配虚拟机 应用服务 快速创建适用于 Web 和移动的强大云应用 函数 使用无服务器代码处理事件 Batch 云规模的作业计划和计算管理 容器实例 使用单个命令轻松运行容器 Service Fabric 在 Windows 或 Linux 上开发微服务和协调容器 虚拟机规模集 管理和缩放数千台 Linux 和 Windows 虚拟机 Azure Kubernetes 服务 (AKS) 简化 Kubernetes 的部署、管理和操作 云服务 创建高度可用且可无限缩放的云应用程序和 API 虚拟机上的 SQL Server 在云中托管企业 SQL Server 应用 Azure SAP HANA 大型实例 运行任何超大规模云提供程序的最大 SAP HANA 工作负 CycleCloud 创建、管理、操作并优化任何规模的 HPC 和大型计算群集 网络 网络概述 Azure 中网络服务的集成视图 内容分发网络 广泛的全球性覆盖,确保实现安全、可靠的内容交付 ExpressRoute Azure 专用网络光纤连接 Azure DNS 在 Azure 中托管 DNS 域 虚拟网络 预配专用网络,根据需要连接到本地数据中心 流量管理器

Docker安装及应用

若如初见. 提交于 2020-03-05 06:26:18
文章目录 Docker Hello World 运行交互式的容器 启动容器(后台模式) 停止容器 Docker 容器的使用 Docker客户端 容器使用 获取镜像 启动容器 移动已停止运行的容器 后台运行 停止一个容器 进入容器 导出和倒入容器 删除容器 运行一个web应用 查看WEB应用容器 Docker镜像使用 列出镜像列表 获取一个新的镜像 查找镜像 拖取镜像 删除镜像 创建镜像 更新镜像 构建镜像 设置镜像标签 Docker容器连接 网络端口映射 Docker容器互联 容器命名 新建网络 连接容器 配置DNS 解决Widnows系统无法对docker容器进行端口映射的问题 Docker仓库管理 Docker Hub 注册 登录和退出 推送镜像 Docker Dockerfile 什么是Dockerfile? 使用Dockerfile定制镜像 开始构建镜像 上下文路径 指令详解 docker 什么是Docker,它可干什么? docker exec不能进入容器 mac 下使用 Docker 搭建 ubuntu 环境 用 Docker 快速配置前端开发环境 Docker Hello World runoob@runoob : ~ $ docker run ubuntu : 15.10 / bin / echo "Hello world" Hello world 运行交互式的容器

使用DockerFile安装jdk容器

半腔热情 提交于 2020-03-04 15:35:01
什么是Dockerfile Dockerfile 用于构建一个新的Docker镜像的脚本文件,是由一系列命令和参数构成的脚本。 构建新的镜像步骤: 编写 Dockerfile 文件 通过 docker build 命令生成新的镜像 通过 docker run 命令运行 查看 DockerFile 文件示例, 以CentOS为例: 参考:https://hub.docker.com/_/centos FROM scratch # 基础镜像,scratch相当于java中的Object ADD centos-7-x86_64-docker.tar.xz / # centos LABEL org.label-schema.schema-version="1.0" \ # 标签说明 org.label-schema.name="CentOS Base Image" \ org.label-schema.vendor="CentOS" \ org.label-schema.license="GPLv2" \ org.label-schema.build-date="20190305" CMD ["/bin/bash"] # 默认执行的命令,创建运行容器时最后会加上 /bin/bash, # 所以创建容器时,可不加 /bin/bash ,即如下: # docker run -it --name

Spring常用注解

浪子不回头ぞ 提交于 2020-03-04 06:46:57
@Configuration :告诉Spring这是一个配置类,配置类===配置文件 @Bean :给容器注入一个bean,类型为返回值类型,id默认是用方法名作为id @Configuration //@ComponentScan value:指定要扫描的包 //excludeFilters=Filter[]:指定扫描的时候按照什么规则排除哪些组件 //includeFilters=Filter[]:指定扫描的时候只需要包含哪些组件,需要使这个起作用,还需要配置useDefaultFilters=false,禁用掉默认规则(扫描所有) /*@ComponentScan(value="com.atguigu.controller",includeFilters={@Filter(type=FilterType.ANNOTATION,classes=Controller.class)},useDefaultFilters=false)*/ @ComponentScan(value="com.atguigu.controller",excludeFilters={@Filter(type=FilterType.ANNOTATION,classes=Controller.class)}) public class MainConfig{ @Scope("prototype") @Bean