首页
学习
活动
专区
工具
TVP
发布

云+技术

专栏作者
130
文章
191130
阅读量
32
订阅数
多云数据管理深度实践上 | Ansible安装OpenSDS(All in One)
随着业务的发展数据日益见增,这些数据的可用性随着时间的推移而下降。人们希望通过长期数字保存(LTDP)来保持持久价值的数字信息的可访问和可用性的,以应对过时的软件和硬件,以及精确呈现内容的这些挑战。
DevinGeng
2020-03-04
5540
Docker如何管理数据
http://os.51cto.com/art/201406/443516.htm 到目前我们介绍了一些Docker的基础概念, 知道了如何使用Docker的p_w_picpath, 也知道了如何在多个container间通过网络通讯. 在这章里我们将介绍如何在docker的container内管理数据以及如何在不同的container间共享数据。 我们将介绍两种主要的在docker中管理数据的方法: Data volumes Data volume container Data volumes 一个 data volume 就是一个在一个或者多个container里的特殊用途的目录。它绕过了 Union File System (译者: 这里不确定, 需要研究)为持久化数据、共享数据提供了下面这一些有用的特性: Data volumes 可以在不同的container之间共享和重用数据 对 Data volume 的修改及时生效(译者:data volumn是一个目录, 多个container都挂载这个目录, 具体的可以通过 docker inspect 看 volumne的信息) 对 data volume 修改内容在升级p_w_picpath的时候不会被包括进去 (译者:在docker的整个设计中p_w_picpath是一个无状态的, 这样对升级重用非常有利。而标记状态的数据, 比如数据库的数据, 生产的log之类的应该放到volume里。volume的持久化和恢复在下面有介绍, 是通过文件的形式的, 而不是通过p_w_picpath) Volumes 的持久化直到没有container使用他们 添加数据卷 你可以在docker run 的时候使用 -v 来添加一个 data volume。这个参数在docker run 的时候可以多次使用来添加多个 data volumes。让我们为我们的web application container挂载一个 volume。 $ sudo docker run -d -P --name web -v /webapp training/webapp python app.py 这里一个新的volume会创建到container里的 /webapp. (译者:如果你通过ssh或者通过 -i 登陆到你的container的一个shell里, 使用 ls /webapp 可以验证挂载成功了) 注意: 你也可以在Dockerfile里添加 VOLUME 字段,这样在创建一个新的p_w_picpath的 container是就会自动的创建新的volume. 安装一个目录作为数据卷 使用 -v 不仅能创建一个新的 volume, 还可以把宿主机一个目录mount到container里。 $ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py 这条命令会把本地目录 /src/webapp mount到container里的 /opt/webapp 目录上。用这个方法来测试程序非常 方便, 比如我们可以把我们的源代码通过这个方法mount到container里, 修改本地代码后立即就可以看到修改后的代码是如何在container里工作的了。宿主机的目录必须是绝对路径, 如果这个目录不存在docker会为你自动创建。 注意 这里是没法用 Dockerfile实现的, 因为这样的用法有悖于可移植性和共享. 因为本地目录就像他名字告诉我们的, 是和本地相关的, 不一定可以在所有的宿主机上工作.(译者: 鬼知道你在使用p_w_picpath的时候的host是啥样子的) Docker默认设置volume是可读写的,但是我们也可以mount一个目录为只读: $ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py 这里我们同样mount了 /src/webapp 目录, 但是我们加上了 ro 参数, 告诉docker这个volume是只读的. 创建并安装数据卷容器 如果你有一些持久化的数据, 并且想在不同的container之间共享这些数据, 或者想在一些没有持久化的container中使用, 最好的方法就是使用 Data Volumn Container, 在把数据mount到你的container里.(译者:如开篇译者提到的docker的container是无状态的, 也就是说标记状态的数据,例如:数据库数据, 应用程序的log 等等, 是不应该放到container里的, 而是放到 Data Volume Container里, 这点和f
DevinGeng
2019-04-09
1K0
搭建本地私有Kolla docker registry
官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。
DevinGeng
2019-04-09
9100
小试牛刀之Kolla单节点部署
写在前面的话,笔者目的是为了尝试用Kolla来方便快捷的部署OpenStack,为以后多节点部署打下基础。
DevinGeng
2019-04-09
7380
深入玩转K8S之手动部署KubernetesV1.11版本及常见问题解答
最开始通过Kubeadm静默黑盒(自动)来安装,为什么这么说呢因为我们是通过Kubeadm自动安装的,并不知道做了那些具体的操作。这也是为什么写这篇手动部署的原因,是为了让大家更好的了解下和体验下两者区别以及部署流程
DevinGeng
2019-04-09
6410
深入玩转K8S之智能化的业务弹性伸缩和滚动更新操作
在上篇我们讲到了较为傻瓜初级的弹性伸缩和滚动更新,那么接下来我们来看看较为高级的智能的滚动更新。本节的知识点呢是K8S的liveness和readiness探测,也就是说利用健康检查来做更为智能化的弹性扩容和滚动更新。
DevinGeng
2019-04-09
8300
深入玩转K8S之使用kubeadm安装Kubernetes v1.10以及常见问题解答
Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。
DevinGeng
2019-04-09
8920
Docker file的详解
-----------------------------------------------------------Dockerfile------------------------------------------------------ Dockerfile是一个镜像的表示,可以通过Dockerfile来描述构建镜像的步骤,并自动构建一个容器 所有的 Dockerfile 命令格式都是: INSTRUCTION arguments 虽然指令忽略大小写,但是建议使用大写。 FROM 命令 FROM <p_w_picpath> 或 FROM <p_w_picpath>:<tag> 这个设置基本的镜像,为后续的命令使用,所以应该作为Dockerfile的第一条指令。 比如: FROM ubuntu 如果没有指定 tag ,则默认tag是latest,如果都没有则会报错。 RUN 命令 RUN命令会在上面FROM指定的镜像里执行任何命令,然后提交(commit)结果,提交的镜像会在后面继续用到。 两种格式: RUN <command> (the command is run in a shell - `/bin/sh -c`) 或: RUN ["executable", "param1", "param2" ... ]  (exec form) RUN命令等价于: docker run p_w_picpath command docker commit container_id 注释 使用 # 作为注释 如: # Memcached # # VERSION       1.0 # use the ubuntu base p_w_picpath provided by dotCloud FROM ubuntu # make sure the package repository is up to date RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list RUN apt-get update # install memcached RUN apt-get install -y memcached MAINTAINER 命令 MAINTAINER <name> MAINTAINER命令用来指定维护者的姓名和联系方式 如: MAINTAINER Guillaume J. Charmes, guillaume@dotcloud.com ENTRYPOINT 命令 有两种语法格式,一种就是上面的(shell方式): ENTRYPOINT cmd param1 param2 ... 第二种是 exec 格式: ENTRYPOINT ["cmd", "param1", "param2"...] 如: ENTRYPOINT ["echo", "Whale you be my container"] ENTRYPOINT 命令设置在容器启动时执行命令 root@tankywoo-docker:~# cat Dockerfile FROM ubuntu ENTRYPOINT echo "Welcome!" root@tankywoo-docker:~# docker run 62fda5e450d5 Welcome! USER 命令 比如指定 memcached 的运行用户,可以使用上面的 ENTRYPOINT 来实现: ENTRYPOINT ["memcached", "-u", "daemon"] 更好的方式是: ENTRYPOINT ["memcached"] USER daemon EXPOSE 命令 EXPOSE 命令可以设置一个端口在运行的镜像中暴露在外 EXPOSE <port> [<port>...] 比如memcached使用端口 11211,可以把这个端口暴露在外,这样容器外可以看到这个端口并与其通信。 EXPOSE 11211 一个完整的例子: # Memcached # # VERSION       2.2 # use the ubuntu base p_w_picpath provided by dotCloud FROM ubuntu MAINTAINER Victor Coisne victor.coisne@dotcloud.com # make sure the package repository is up to date RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list RUN apt-get u
DevinGeng
2019-04-09
4980
Docker容器管理之Kubernetes
Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。本文旨在梳理Kubernetes的架构、概念及基本工作流,并且通过运行一 个简单的示例应用来介绍如何使用Kubernetes。
DevinGeng
2019-04-09
5890
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档