容器

一文快速入门docker和nvidia-docker

£可爱£侵袭症+ 提交于 2019-12-07 23:16:25
docker和nvidia-docker介绍 目录 docker和nvidia-docker介绍 docker介绍 nvidia-docker介绍 docker快速入门 Docker架构 Docker生命周期 Docker常用命令 创建容器 Nvidia-docker使用 容器资源 创建前台运行容器 容器生命周期 停止容器 暂停容器 杀死容器 docker stop与docker kill区别 删除容器 端口映射 数据持久化 容器中环境变量 下载镜像 列出所有的镜像 推送镜像到官方hub中 nvidia-docker 示例 容器中查看GPU显卡信息 启动gpu版本的Tensorflow 批量操作命令 快速删除所有的容器 删除名字是的镜像 删除所有退出的容器 归档所有的镜像 参考: nvidia-docker官网 docker 官网 docker介绍 容器级别的虚拟化 不是基于硬件虚拟化 和宿主机共享操作系统内核和资源 轻量 方便的构建&部署应用程序 采用虚拟化控制 虚拟机和容器虚拟化比较 nvidia-docker介绍 docker原生并不支持在他生成的容器中使用Nvidia GP资源。nvidia-docker是对docker的封装,提供一些必要的组件可以很方便的在容器中用GPU资源执行代码。从下面的图中可以很容器看到nvidia-docker共享了宿主机的CUDA Driver

dokcer容器可视化操作

不问归期 提交于 2019-12-07 21:22:13
docker容器可视化 1.docker可视操作 2.使用Dockerfile创建images 主要是记录一下,方便自己日后查看; 1.docker可视操作 首先在主系统运行: sudo apt-get install x11-xserver-utils xhost + #这两句话作用是开放权限,允许所有用户,当然也包括docker,访问x11的显示接口; 在创建docker容器时,添加如下选项: -v //tmp/.X11-unix:/tmp/.X11-unix \ #共享本地unix端口 -e DISPLAY = unix $DISPLAY \ #修改环境变量DISPLAY -e GDK_SCALE \ -e GDK_DPI_SCALE \ 最终创建容器命令类似如下: $ docker run -d \ -v /etc/localtime:/etc/localtime:ro \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY = unix $DISPLAY \ -e GDK_SCALE \ -e GDK_DPI_SCALE \ --name libreoffice \ jess/libreoffice docker run -t -i ubuntu:15.10 /bin/bash ##ctrl+d或exit退出容器

容器私有云和持续发布都要解决哪些基础问题 第一集

倖福魔咒の 提交于 2019-12-07 21:19:56
郑昀编著,文字资料来自于张帆、白俊华、刘飞宇以及网络资料 创建于2015/10/21 最后更新于2015/10/29 关键词: Docker,容器,持续集成,持续发布,CI,私有云 本文档适用人员:广义上的技术人员 首先,你要明白容器并不是虚拟机,虽然它可以解决虚拟机能够解决的问题,同时也能够解决虚拟机由于资源要求过高而无法解决的问题,但它真的不是虚拟机。以往我们的开发、配置管理、部署发布、监控报警思路都要跟着变。 其次,一开始注定只有一少部分工程迁移到容器私有云上,既然还有大多数应用服务还在虚拟机或物理机上,那么它们之间如何通讯就成了一个必须解决的问题。 那么,我们在构建基于容器的私有云以及相应的持续发布时,遇到并解决了哪些问题呢? 0x00 集装箱还是卷挂载? 先抛出问题,下面这个选择题你怎么选: 代码不放入 Image(镜像) 里,而是放在 Volume(卷) 上 ,这样镜像只需要维护程序运行的环境(如 Resin+JDK1.7)即可,准备几种 Java、PHP、Python 运行时环境的镜像即可,不同的应用运行不同的容器挂载不同的代码; 代码打包放入 Image 里 ,典型场景如下图(图源自出处3)所示: 我们再来看一下 Docker 的 Logo,它隐含天机: 一艘鲸鱼大船,载着无数集装箱。操作系统就是这艘货轮,每一个容器就是一个集装箱,交付运行环境如同海运。大家知道吗

Docker 常用命令速查手册

北慕城南 提交于 2019-12-07 20:36:29
记录一下docker的日常使用命令,本文主要针对linux + mac操作系统而言,window是否适用不太确定,谨慎使用 1. docker进程 docker进程启动、停止、重启,常见的三种case # 启动docker service docker start # 关机docker service docker stop # 重启docker service docker restart 2. 镜像操作 镜像作为容器执行的前提条件,一般需要掌握的几个命令无非是搜索,下载,删除,创建 # 镜像列表 docker images # 检索镜像, 从镜像仓库中检索 docker search xxx # 下载镜像 docker pull xxx # 删除镜像 docker rmi xxx 关于创建镜像,有必要稍微详细一点点 # 通过容器创建镜像 docker commit -m="首次提交" -a="一灰灰Blog" dd85eb055fe8 yh/centos:v0.1 # 镜像历史查询 docker history yh/centos 上面的几个参数进行说明 -m 和git的提交一样,后面跟上描述信息 -a 版权声明,这个东西是我创建的,有啥问题,找我 dd85eb055fe8 容器id yhh/quick-os:0.1 创建的镜像名 3. 容器操作 接下来就是正菜了

Docker 常用命令速查手册

时光总嘲笑我的痴心妄想 提交于 2019-12-07 20:27:24
记录一下docker的日常使用命令,本文主要针对linux + mac操作系统而言,window是否适用不太确定,谨慎使用 <!-- more --> 1. docker进程 docker进程启动、停止、重启,常见的三种case # 启动docker service docker start # 关机docker service docker stop # 重启docker service docker restart 2. 镜像操作 镜像作为容器执行的前提条件,一般需要掌握的几个命令无非是搜索,下载,删除,创建 # 镜像列表 docker images # 检索镜像, 从镜像仓库中检索 docker search xxx # 下载镜像 docker pull xxx # 删除镜像 docker rmi xxx 关于创建镜像,有必要稍微详细一点点 # 通过容器创建镜像 docker commit -m="首次提交" -a="一灰灰Blog" dd85eb055fe8 yh/centos:v0.1 # 镜像历史查询 docker history yh/centos 上面的几个参数进行说明 -m 和git的提交一样,后面跟上描述信息 -a 版权声明,这个东西是我创建的,有啥问题,找我 dd85eb055fe8 容器id yhh/quick-os:0.1 创建的镜像名 3. 容器操作

微服务实战(六):选择微服务部署策略

纵然是瞬间 提交于 2019-12-07 19:36:50
本系列七篇文章列表如下: 微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五):微服务的事件驱动数据管理 微服务实践(六):选择微服务部署策略 微服务实践(七):从单体式架构迁移到微服务架构 【编者的话】这篇博客是用微服务建应用的第六篇, 第一篇 介绍了微服务架构模板,并且讨论了使用微服务的优缺点。随后的文章讨论了微服务不同方面:使用API网关,进程间通讯,服务发现和事件驱动数据管理。这篇文章,我们将讨论部署微服务的策略。 部署一个单体式应用意味运行大型应用的多个副本,典型的提供若干个(N)服务器(物理或者虚拟),运行若干个(M)个应用实例。部署单体式应用不会很直接,但是肯定比部署微服务应用简单些。 一个微服务应用由上百个服务构成,服务可以采用不同语言和框架分别写就。每个服务都是一个单一应用,可以有自己的部署、资源、扩展和监控需求。例如,可以根据服务需求运行若干个服务实例,除此之外,每个实例必须有自己的CPU,内存和I/O资源。尽管很复杂,但是更挑战的是服务部署必须快速、可靠和性价比高。 有一些微服务部署的模式,先讨论一下每个主机多服务实例的模式。 单主机多服务实例模式 部署微服务的一种方法就是单主机多服务实例模式,使用这种模式

Tomcat源码学习(六)--Tomcat_7.0.70 生命周期管理

给你一囗甜甜゛ 提交于 2019-12-07 18:53:59
想必大家都知道,从server.xml文件解析出来的各个对象都是容器,比如:Server、Service、Connector等。这些容器都具有新建、初始化完成、启动、停止、失败、销毁等状态。Tomcat的实现机制是通过实现org.apache.catalina.Lifecycle接口来管理。 Tomcat--Lifecycle接口 定义了容器生命周期、容器状态转换及容器状态迁移事件的监听器注册和移除等主要接口。代码清单: public interface Lifecycle { public static final String BEFORE_INIT_EVENT = "before_init"; public static final String AFTER_INIT_EVENT = "after_init"; public static final String START_EVENT = "start"; public static final String BEFORE_START_EVENT = "before_start"; public static final String AFTER_START_EVENT = "after_start"; public static final String STOP_EVENT = "stop"; public

Docker - 查看容器进程在宿主机的 PID

夙愿已清 提交于 2019-12-07 18:12:24
概述 查看 docker 进程, 在容器外的 pid 背景 docker 中运行的进程, 本质上是运行在 host 上的 这些进程, 在 host 上, 也可以有自己的 pid 如果某种情况下, 连不上 docker 了, 可以直接通过 host, 把对应的 进程 干掉 环境 os CentOS7 docker 版本 18.09 容器 有一个 docker 容器, 正在运行 1. 方法1: docker container top 命令 > docker container top <container> 2. 方法2: docker container inspect 命令 > docker inspect -f '{{.State.Pid}}' <container> 3. 方法3: 直接查看 准备 确认容器 id 命令 # 只要有 容器id, 可以在 docker daemon无法启动的情况下, 确认 pid > cat /sys/fs/cgroup/memory/docker/<containerId>/cgroup.procs ps ref 在docker宿主机上查找指定容器内运行的所有进程的PID cgroup docker 的底层原理, 就是这个东西 有空 学习一下... 来源: https://www.cnblogs.com/xy14/p/12002816.html

CentOS 7 下安装 Docker

橙三吉。 提交于 2019-12-07 18:00:33
安装 参考文档:https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-repository 前提条件 Docker 要求 CentOS 系统的内核版本高于 3.10,在终端输入以下命令: uname -r 卸载旧版本 如果安装旧版本,输入以下命令删除及相关的依赖项,如果没有安装过,跳过。 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 手动删除镜像/容器等 rm -rf /var/lib/docker 如果提示 未安装这些软件包,则可以。 安装所需要的软件包 yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 设置存储库 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 安装最新版Docker yum install -y docker

JVM和Tomcat的关系

风流意气都作罢 提交于 2019-12-07 17:55:29
最近在做微服务部署相关的项目,使用的容器为汤姆猫tomcat,过程中通过和架构师的交流以及自己的理解得出了几个关键信息 这里记录下。 JVM和tomcat之间的关系,从下面的几个方向说明: 1、JVM,java虚拟机,不同设备运行java应用程序的平台。 2、Tomcat,apache免费开源的web应用服务器,通过java语言编写,换句话说:tomcat亦是一个java应用程序。 -------- 这里不难看出tomcat容器的启动离不开JVM 3、JVM某种程度上可以被认为是一个虚拟的操作系统,它有着自己的内存模型等; 4、一个tomcat容器的启动,相当于在JVM中启动了一个进程; 5、一个tomcat容器中可以启动多个web app这些被看做进程中启动了多个线程。(通过在server.xml中指定多个context) 6、每个进程都有自己独立的内存空间,因此进程间的通信较为困难; 7、而进程中的线程启动时,不会额外的分配内存空间,换句话说:进程中的多个线程共享内存空间,因此通信较为方便快速。 另外一个思考就是:webUI服务中的java代码是否有存在的必要?? 现代微服务架构中,tomcat容器是一个厚重的web容器,一个微服务的启动相当于在部署节点的JVM上增加了一个进程,这必然会带来一定的内存开销; 对于webUI性质的微服务,建议只保留纯静态文件(javascript