容器

Linux - docker基础

谁都会走 提交于 2020-01-08 01:28:40
目录 Linux - docker基础 docker的概念 docker安装流程 docker基本命令学习 docker 的 hello docker 运行一个ubuntu容器 Docker与CentOS 下载运行CentOS容器 提交修改自定义的镜像(docker container commit) 外部访问容器 利用dockerfile定制 打包flask程序与dockerfile 发布 docker image 到仓库 发布到公有镜像 私有仓库 Linux - docker基础 docker的概念 容器三大基本概念: 镜像 image 容器 container 仓库 repository docker整个生命周期就是这三个概念。 docker镜像 Docker镜像就是一个只读的模板。 例如:一个镜像可以包含一个完整的CentOS操作系统环境,里面仅安装了Apache或用户需要的其他应用程序。 镜像可以用来创建Docker容器。 Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。 docker容器 image和container的关系,就像面向对象程序设计中的 类和实例一样,镜像是静态的定义(class),容器是镜像运行时的实体(object)。 容器可以被创建、启动、停止、删除、暂停

docker自动启动容器

馋奶兔 提交于 2020-01-08 01:19:54
Docker提供了 重新启动策略 来控制容器在退出时或Docker重新启动时是否自动启动。 重新启动策略可确保以正确的顺序启动链接的容器。 Docker建议您使用重新启动策略,并避免使用进程管理器来启动容器。 重新启动策略 --live-restore 与 dockerd 命令 的 标志 不同 。 --live-restore 尽管网络和用户输入中断,但 使用 允许您在Docker升级期间保持容器运行。 使用重启策略 要为容器配置重新启动策略,请 --restart 在使用该 docker run 命令 时使用该标志 。 --restart 标志 的值 可以是以下任何一种: 旗 描述 no 不要自动重启容器。 (默认) on-failure 如果容器由于错误而退出,则重新启动容器,该错误表现为非零退出代码。 always 如果容器停止,请务必重启容器。 如果手动停止,则仅在Docker守护程序重新启动或手动重新启动容器本身时才重新启动。 (参见 重启政策详情中 列出的第二个项目 ) unless-stopped 类似于 always ,除了当容器停止(手动或其他方式)时,即使在Docker守护程序重新启动后也不会重新启动容器。 以下示例启动Redis容器并将其配置为始终重新启动,除非明确停止或重新启动Docker。 $ docker run -dit --restart

k8s创建资源(2)<基于配置清单>

南楼画角 提交于 2020-01-07 21:16:17
一,两种创建资源的方法 1. 基于命令的方式: 简单直观快捷,上手快。 适合临时测试或实验。 2. 基于配置清单的方式: 配置文件描述了 What ,即应用最终要达到的状态。 配置文件提供了创建资源的模板,能够重复部署。 可以像管理代码一样管理部署。 适合正式的、跨环境的、规模化部署。 这种方式要求熟悉配置文件的语法,有一定难度。 环境介绍 主机 IP地址 服务 master 192.168.1.21 k8s node01 192.168.1.22 k8s node02 192.168.1.23 k8s 二. 配置清单(yam,yaml) 在k8s中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单 /etc/kubernetes/manifests/ k8s存放(yam、yaml)文件的地方 **kubectl explain deployment(通过explain参数加上资源类别就能看到该资源应该怎么定义) kubectl explain deployment.metadata 通过资源类别加上带有Object标记的字段,我们就可以看到一级字段下二级字段的内容有那些怎么去定义等 kubectl explain deployment.metadata.ownerReferences 通过加上不同级别的字段名称来看下字段下的内容

一小时快速搭建基于阿里云容器服务-Kubernetes的Web应用

大城市里の小女人 提交于 2020-01-07 20:55:49
本文面向的读者 如果您是一个Kubernetes的初学者,本文可以帮助你快速在云上搭建一个可实际使用的集群环境,并发布自己的第一个应用。你无须提前准备任何的硬件资源或者下载任何的软件包。 如果您已经有一个自建的Kubernetes集群,想要尝试阿里云上的托管集群,本文可以帮助你快速完成上手操作,而无需详细阅读阿里云的帮助文档,从而节省您的时间。您可以在有了端到端的初体验之后,再有选择的阅读容器服务和容器镜像服务的帮助文档。 如果你已经有一个传统的部署在云上的Web应用(比如部署在云上的ECS里),想要进行容器化的改造,本文同样可以帮助到您,您甚至无需深入学习Kubernetes,只需了解基本概念即可。 准备代码 本文的操作全部基于阿里云控制台,因此您只需要一个阿里云控制台的登录账号即可。 我们先把应用的代码准备好。请登录 https://code.aliyun.com/ ,登录完成后,访问 https://code.aliyun.com/shengbo.tsb/yunputest ,点击派生项目(fork)的图标。 在随后弹出的确认框里,点击头像确认,完成派生。 备选方案:如果您派生遇到了困难,可以直接从 https://github.com/docker-training/webapp clone这个项目,然后自己通过git push到code.aliyun.com上。

jdk1.6的集合源码阅读之Collection接口

给你一囗甜甜゛ 提交于 2020-01-07 19:04:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们知道java容器类类库的用途是“保存对象”,容器最顶层分为两个Collection和Map,其余的都是继承这连个接口,Collection存储一个独立元素的序列,下面有List 、Set、Queue,而Map主要存储 “键值对”对象,下面实现版本有hashMap和TreeSet。(而List、Set、Queue下面基本各有两三个实现版本。) 既然我们要阅读容器类的jdk源码,当然得从Collection开始,他是大部分容器类的父接口,里面只有函数声明,声明了一组Collection类型容器的操作方法,但是没有实现,等其子类去实现。其代码如下(基于jdk1.6): package java.util; public interface Collection<E> extends Iterable<E> { //返回容器中元素的个数 int size(); //如果集合元素为空,返回true,否则false boolean isEmpty(); //如果集合包含这个元素,返回true,否则false,如果元素类型和本集合不一样,抛出ClassCastException异常,如果元素null,而集合不允许为null,则抛出NullPointerException boolean contains(Object o

docker容器离线安装

佐手、 提交于 2020-01-07 18:44:14
一、下载docker-18.03.1-ce.tgz,上传到/home目录下 二、解压docker到当前路径下 tar zxvf docker-18.03.1-ce.tgz 三、拷贝docker下的所有文件到/usr/bin下 sudo cp docker/* /usr/bin/ 四、开启docker守护进程 sudo dockerd & 五、查看docker docker --verison docker info docker images docker ps -a 来源: 51CTO 作者: changelf 链接: https://blog.51cto.com/7136516/2461818

docker知识总结

爱⌒轻易说出口 提交于 2020-01-07 18:23:56
目录 一:docker介绍 1.1 window容器和linux容器区别 二:docker命令 三: Dockerfile 四: Docker Compose 五: Docker Machine 六: docker-swarm 七: 实例 一:docker介绍 docker是开源的应用容器引擎,用于linux,现已支持window容器在win10、window2016 1.1 window容器和linux容器区别 参考:https://www.linuxidc.com/Linux/2017-11/148981.htm window新容器Hyper-V容器和Nano Server技术(win10,win2016)技术的落地, 使得最小粒度隔离资源成为可能,为docker for window成为可能 区别: linux容器,内核是linux系统,window是window系统; linux容器共享宿主系统内核,需要base os也可以不需要,但是window一定需要base os; window还提供了一个hyper-v容器来给window容器提供一个隔离资源的最小单元,每个window docker容器下是hyper-v容器下base os系统; 二:docker命令 ------------容器--------------------- 2.启动容器:docker -it

Docker搭建开发环境(Nginx+MySQL+PHP)

醉酒当歌 提交于 2020-01-07 15:43:58
================================================MySQL==================================================================== 创建并运行MySQL容器: docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 33267:3306 --privileged=true -v ~/Web/mysql/data:/var/lib/mysql -v ~/Web/mysql/conf:/etc/mysql/conf.d -v ~/Web/mysql/mysql_sock:/var/run/mysqld --restart=always -d mysql:5.7 命令解释: –name mysql 指定容器名称为 mysql -e MYSQL_ROOT_PASSWORD=123456 初始化 root 用户的密码为 123456 -p 33267:3306 将容器的 3306 端口映射到主机的 33267 端口 --privileged=true 给容器加上特定权限,否则有可能出现常见容器失败的情况 -v ~/web/mysql/data:/var/lib/mysql 将主机 ~/web/mysql/data

一小时快速搭建基于阿里云容器服务-Kubernetes的Web应用

浪子不回头ぞ 提交于 2020-01-07 14:32:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文面向的读者 如果您是一个Kubernetes的初学者,本文可以帮助你快速在云上搭建一个可实际使用的集群环境,并发布自己的第一个应用。你无须提前准备任何的硬件资源或者下载任何的软件包。 如果您已经有一个自建的Kubernetes集群,想要尝试阿里云上的托管集群,本文可以帮助你快速完成上手操作,而无需详细阅读阿里云的帮助文档,从而节省您的时间。您可以在有了端到端的初体验之后,再有选择的阅读容器服务和容器镜像服务的帮助文档。 如果你已经有一个传统的部署在云上的Web应用(比如部署在云上的ECS里),想要进行容器化的改造,本文同样可以帮助到您,您甚至无需深入学习Kubernetes,只需了解基本概念即可。 准备代码 本文的操作全部基于阿里云控制台,因此您只需要一个阿里云控制台的登录账号即可。 我们先把应用的代码准备好。请登录 https://code.aliyun.com/ ,登录完成后,访问 https://code.aliyun.com/shengbo.tsb/yunputest ,点击派生项目(fork)的图标。 在随后弹出的确认框里,点击头像确认,完成派生。 备选方案:如果您派生遇到了困难,可以直接从 https://github.com/docker-training/webapp clone这个项目

Kubernetes Pod YAML文件定义详解

依然范特西╮ 提交于 2020-01-07 14:28:10
1 apiVersion: v1 # 必选,版本号,例如v1 2 kind: Pod # 必选,Pod 3 metadata: # 必选,元数据 4 name: string # 必选,Pod名称 5 namespace: string # 必选,Pod所属的命名空间 6 labels: # 自定义标签 7 - name: string # 自定义标签名字 8 annotations: # 自定义注释列表 9 - name: string 10 spec: # 必选,Pod中容器的详细定义 11 containers: # 必选,Pod中容器列表 12 - name: string # 必选,容器名称 13 image: string # 必选,容器的镜像名称 14 imagePullPolicy: [Always | Never | IfNotPresent]# 镜像拉取的策略,默认为Always:Alawys 表示每次都尝试重新拉取镜像;IfNotPresent 表示如果本地有该镜像,则使用本地镜像,本地不存在时拉取镜像;Nerver表示仅使用本地镜像 15 command: [string] # 容器的启动命令列表,如不指定,使用打包时使用的启动命令 16 args: [string] # 容器的启动命令参数列表 17 workingDir: string # 容器的工作目录