容器

docker数据共享与持久化

倾然丶 夕夏残阳落幕 提交于 2020-03-28 21:57:29
六、数据共享与持久化 类似于 Linux 下对目录或文件进行 mount ,   容器中管理数据主要有两种方式:   数据卷 修改立马生效,一直存在   数据卷容器 容器之间共享和重用 1、为什么需要数据持久化?   容器只是一个软件,那么这个软件的东西不应该随着容器的消失而丢失,所以要把例如数据库的数据做备份,但是我们不能每次到容器里进行操作,所以    2、挂载数据卷 -v或者-mount 3、创建数据卷   创建 docker volume create my-vol 删除 docker volume rm my-vol   docker run -d -P --name web -v /src/webap:/opt/webapp centos nginx -x   挂载一个主机的目录作为数据卷,/src/webap本地目录,到容器/opt/webapp目录   docker run -d -P --name web -v /src/webap:/opt/webapp :ro centos nginx -x   挂载一个主机的目录作为数据卷,   /src/webap本地目录,到容器/opt/webapp目录,加粗的可选只读或者读写,   如果没有本地目录,那就是在容器创建了一个目录。    数据卷容器可以实现多个容器共享数据 例如创建数据卷容器,并让两个容器都挂载到这里

Docker安装和常用命令

风格不统一 提交于 2020-03-28 13:05:16
1.如果之前已经安装过了,执行: sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 2.安装依赖的包: sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 3.设置yum源为阿里云: sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4.更新 yum 软件源缓存,并安装 docker-ce: sudo yum makecache fast sudo yum install docker-ce 5.查看Docker版本: docker -v 6.启动 Docker CE: sudo systemctl enable docker #开机启动 sudo systemctl start docker #启动 7.建立 docker 用户组:   默认情况下,docker 命令会使用 Unix

docker的网络(5)

若如初见. 提交于 2020-03-28 09:15:33
当 Docker 启动时,会自动在宿主机上创建一个 docker0 虚拟网桥,实际上是Linux 的一个 bridge。 Docker 随机分配一个本地未占用的私有网络(在 RFC1918中定义 )中的一个地址给 docker0接口 。比如典型的 172.17.0.1,掩码为255.255.0.0。 此后启动的容器内的网口也会自动分配一个网段(172.17.0.0/16)的地址。 当创建一个 Docker 容器的时候,同时会创建一个 veth pair 接口(当数据包发送到一个接口时,另外一个接口也可以接收相同的数据包)。这对接口一端在容器内,即 eth0 ;另一端在本地并被挂载到docker0 网桥,名称以 veth 开头(例如 veth4c45933)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间的一个虚拟共享网络。 Docker 网络相关的命令 只有在Docker 服务启动的时候才能配置,而且不能马上生效的有: -b BRIDGE or --bridge=BRIDGE --指定容器挂载的网桥 --bip=CIDR            --定制docker0的掩码 -H SOCKET... or --host=SOCKET... --Docker服务端接收命令的通道 --icc=true|false         -

查看Docker容器使用资源情况--docker stats

久未见 提交于 2020-03-28 03:49:07
原文: 查看Docker容器使用资源情况--docker stats 在容器的使用过程中,如果能及时的 掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的 。幸运的是 docker 自己就提供了这样的命令: docker stats 。 目录 docker stats (不带任何参数选项) docker stats --no-stream (只返回当前的状态) docker stats --no-stream 容器ID/Name (只输出指定的容器) docker stats --format “table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" (格式化输出的结果) 总结 docker stats (不带任何参数选项) 该命令用来显示容器使用的系统资源。不带任何 参数选项 执行 docker stats 命令: 默认情况下,stats 命令会 每隔 1 秒钟刷新一次输出的内容 直到你按下 ctrl + c。下面是输出的主要内容: [ CONTAINER ]:以短格式显示容器的 ID。 [ CPU % ]:CPU 的使用情况。 [ MEM USAGE / LIMIT ]:当前使用的内存和最大可以使用的内存。 [ MEM % ]:以百分比的形式显示内存使用情况。 [ NET I/O ]:网络 I/O 数据。 [ BLOCK I/O ]

Docker storage driver(十四)

蹲街弑〆低调 提交于 2020-03-27 23:01:23
一、storage driver 作用 正常情况下,只有很少量的数据被写入到容器最上层的写入层,并且通过 volume 来写数据,然而我们也会遇到一些情况需要我们可以直接写入到容器的写入层,这我们就需要到了 storage driver 来帮忙。 Docker 使用一些列不同的 storage driver 来管理镜像层和容器层,这些 storage driver 不同于前面说到的 volume。 为了有效的使用 storage drivers,我们可以简单温习一下 storage driver 管理的镜像层和容器层的工作情况。 1、Images and layers 我们可以通过下面的 Dockerfile 文件来理解镜像的分层。 FROM ubuntu:15.04 COPY . /app RUN make /app CMD python /app/app.py 一个镜像是有若干镜像层组成。 Dockerfile 中的每条指令都会生成一个镜像层,除了最上面的一层之外,其他的都是只读的。 最上一层主要是镜像运行时的一些命令。 每一层只是与它之前的层有一些不同,层层堆叠在一起。 创建容器的时候,只是在底层上添加一个新的可写层。这一层通常称为“容器层”。 2、Container and layers 容器和镜像最大的区别在于最上层的可写层,所有对容器的新增或者修改,都会存在在可写层

[C++ STL] deque使用详解

[亡魂溺海] 提交于 2020-03-27 22:57:10
[C++ STL] deque使用详解 目录 一、概述 二、定义及初始化 三、基本操作函数 3.1 容量函数 3.2 添加函数 3.3 删除函数 3.4 访问函数 3.5 其他函数 四、迭代器与算法 五、总结 回到顶部 一、概述 deque(双端队列)是由一段一段的定量连续空间构成,可以向两端发展,因此不论在尾部或头部安插元素都十分迅速。 在中间部分安插元素则比较费时,因为必须移动其它元素。 回到顶部 二、定义及初始化 使用之前必须加相应容器的头文件: #include <deque> // deque属于std命名域的,因此需要通过命名限定,例如using std::deque; 定义的实现代码如下: deque<int> a; // 定义一个int类型的双端队列a deque<int> a(10); // 定义一个int类型的双端队列a,并设置初始大小为10 deque<int> a(10, 1); // 定义一个int类型的双端队列a,并设置初始大小为10且初始值都为1 deque<int> b(a); // 定义并用双端队列a初始化双端队列b deque<int> b(a.begin(), a.begin()+3); // 将双端队列a中从第0个到第2个(共3个)作为双端队列b的初始值 除此之外,还可以直接使用数组来初始化向量: int n[] = { 1, 2, 3, 4

docker学习(2)--基础命令

て烟熏妆下的殇ゞ 提交于 2020-03-27 20:52:51
  转载请注明源出处: http://www.cnblogs.com/lighten/p/6875355.html 1.基本命令   搭建好docker环境之后,使用docker help命令查看docker的基本用法: docker COMMAND.            目前我们较为常使用的是commands下面的指令,如果使用swarm相关功能会用到management commands。目前我使用的是17.03.1-ce,后续版本功能应该会更加细分,可能会替换成management来使用。比如docker images列出所有镜像,和docker image ls的功能是一样的,通常我们习惯使用docker build构建镜像,也可以使用docker image build命令。本文还是介绍commands的相关命令,management的命令更多,熟悉了其实都一样。主旨还是为了学会怎么使用docker,命令不会用就通过docker swarm --help的方式去查看。 2.命令详解   命令太多,介绍不完,这里介绍一些使用docker时接触比较频繁的命令。 2.1 attach   连接一个运行中的容器。      1.detach-key: 覆盖脱离容器的键序列   2.no-stdin:不连接STDIN   3.sig-proxy:代理进程所接收的所有字符

Spring IOC-DI

大城市里の小女人 提交于 2020-03-26 23:38:35
3 月,跳不动了?>>> 1、循环依赖注入问题 Singleton类型的作用域,可以在早期对象缓存集合中或者查询是否存在正在创建中的bean来解决循环依赖注入问题。 private final Map<String,Object> earlySingletonObjects = new HashMap<String,Object>(16); 2、IOC容器的工作模式,通过工厂模式根据beanName通过反射动态生成对象。 1)IOC容器主要完成对象的创建和依赖的管理注入等。 2)依赖注入是控制反转的基础。 3)利用反射原理将对象创建的权利交给了Spring容器,Spring在运行的时候根据配置文件来动态创建对象和维护对象之间的关系,实现了松耦合。 3、依赖注入的实现方式 :构造器、Setter方法注入、接口注入(常用,@Autowired,@Resource) 由Spring容器将对象注入到使用它的地方,被注入的对象只提供对应的方法接收就行,由容器来决定对象之间的依赖关系。 4、@Autowired原理 1)每个Bean实例化之后,调用AutowiredAnnotationBeanPostProcessor的下图方法,找到有@Autowired注解的信息。 检查beanName在injectionMetadataCache的Map中是否有对应的元数据

docker版的zabbix部署

旧时模样 提交于 2020-03-26 02:59:59
环境准备:一台server端,两台agent端 server端部署zabbix-server和mariadb服务 agent端部署zabbix-agent服务 一、docker容器里下载zabbix和mariadb docker pull mariadb docker pull zabbix [root@localhost cmp_mariadb]# docker pull mariadb Using default tag: latest latest: Pulling from library/mariadb 。。。 Digest: sha256:31cf9574e8e4043022e7f6260d77a08ab33bba1ab04a074ccaa077f3cf50b9e3 Status: Downloaded newer image for mariadb:latest 二、cd到/opt目录下,上传cmp_mariadb.zip 和 cmp_zabbix_server.zip压缩包,并分别解压 [root@localhost opt]# ls cmp_mariadb cmp_mariadb.zip cmp_zabbix_server cmp_zabbix_server.zip 三、进入cmp_mariadb的目录 [root@localhost cmp_mariadb]#

docker版的zabbix部署

倾然丶 夕夏残阳落幕 提交于 2020-03-26 02:58:44
   环境准备:一台server端,两台agent端 server端部署zabbix-server和mariadb服务 agent端部署zabbix-agent服务 一、docker容器里下载zabbix和mariadb docker pull mariadb docker pull zabbix [root@localhost cmp_mariadb]# docker pull mariadb Using default tag: latest latest: Pulling from library/mariadb 。。。 Digest: sha256:31cf9574e8e4043022e7f6260d77a08ab33bba1ab04a074ccaa077f3cf50b9e3 Status: Downloaded newer image for mariadb:latest 二、cd到/opt目录下,上传cmp_mariadb.zip 和 cmp_zabbix_server.zip压缩包,并分别解压 [root@localhost opt]# ls cmp_mariadb cmp_mariadb.zip cmp_zabbix_server cmp_zabbix_server.zip 三、进入cmp_mariadb的目录 [root@localhost cmp_mariadb