Puppet发布Blueshift项目中专门针对Docker的特性

简介:

于Ubuntu Xenial Puppet代理程序包,另一个基于简化版的Alpine。

Blueshift演示了异构软件管理问题的解决方案,使用Puppet作为新软件栈的统一管理方式。Blueshift包含Puppet社区中关于如何集成Consul、CoreOS和Mesos等技术的信息。Blueshift还包含Puppet的内部工程。

Puppet还提供了如何在Docker中使用Puppet的例子。目前,这些例子展示了如何在VMware Photon OS、Red Hat CentOS Atomic上的Docker容器中和CoreOS上使用Puppet。还有例子展示了如何使用Docker Compose搭建一个Puppet基础设施。

在Blueshift项目的一个例子中,Gareth Rushgrove演示了如何使用Puppet管理Docker容器。Puppet Docker模块大约是和Docker同时发布的,自此以后,社区一直致力于这方面的工作。

第一步是安装Puppet Docker示例模块:

# puppet module install garethr-docker

简单来说,Docker模块允许你使用清单文件中的一行代码安装Docker:

include 'docker'

你可以在清单文件中声明任意多的镜像。这个例子使用了一个Ubuntu镜像:

docker::image { ‘ubuntu': image => 'trusty',}

这些简单的Docker容器现在可以通过Puppet轻松地应用了。Docker version会显示Docker已经安装了,并且会显示详细的版本信息:

# puppet apply /vagrant/docker_example.pp# docker versionClient version: 1.5.0Client API version: 1.17Go version (client): go1.4.1Git commit (client):a8a31efOS/Arch (client): linux/amd64Server version: 1.5.0Server API version: 1.17Go version (server): go1.4.1Git commit (server): a8a31ef#

Docker ps会显示当前没有任何东西在运行:

# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES#

Docker images会显示Docker镜像已经创建:

# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEUbuntu trusty d0955f21bf24 3 weeks ago 188.3 MBUbuntu trusty-20150320 d0955f21bf24 3 weeks ago 188.3 MBUbuntu latest d0955f21bf24 3 weeks ago 188.3 MBUbuntu 14.04 d0955f21bf24 3 weeks ago 188.3 MBUbuntu 14.04.2 d0955f21bf24 3 weeks ago 188.3 MB #

Docker模块支持运行和管理各种Docker容器。容器可以在主机的init系统(如systemd或sysvinit)下运行,也可以使用Docker内置的进程管理器。下面的代码增加了两个简单的Docker run资源:

docker::run { 'helloworld': image => 'ubuntu', command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',}docker::run { 'goodbyecruelworld': image => 'ubuntu', command => '/bin/sh -c "while true; do echo goodbye cruel world; sleep 1; done"',}

使用puppet apply,我们可以快速将更新应用到这两个将要在Docker容器中运行的服务上。现在,Docker ps会显示,当前有两个简单的服务正在运行:

# Puppet apply /vagrant/docker_example.ppNotice: Compiled catalog for localhost in environment production in 0.93 secondsNotice: /Stage[main]/Main/Docker::Run[helloworld]/File[/etc/init.d/docker-helloworld]/ensure: createdNotice: /Stage[main]/Main/Docker::Run[helloworld]/Service[docker-helloworld]/ensure: ensure changed ‘stopped’to ‘running’Notice: /Stage[main]/Main/Docker::Run[goodbyecruelworld]/File[/etc/init.d/docker-goodbyecruelworld]/ensure: created Notice: /Stage[main]/Main/Docker::Run[goodbyecruelworld]/Service[docker-goodbyecruelworld]/ensure: ensure changed ‘stopped’ to ‘running’Notice: Finished catalog run in 1.11 seconds# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES27b9ca786f9b ubuntu:14.04 “/bin/sh -c ‘while t 18 seconds ago Up 17 seconds jolly_wright4ec0c0225714 ubuntu:14.04 “/bin/sh -c ‘while t 18 seconds ago Up 17 seconds focused_wright#

使用docker attach和容器ID连接到其中一个服务上会显示正在Docker中执行的服务:

# docker attach 27b9ca786f9bgoodbye cruel worldgoodbye cruel worldgoodbye cruel world ^C### docker attach 4ec0c0225714hello worldhello worldhello world ^C##

Docker模块还支持类似挂载卷、设置环境变量、运行特权容器和暴露端口这样的动作。Puppet还可以使用docker exec特性在运行中的容器环境中执行命令:

docker::exec { 'helloworld-uptime': detach => true, container => 'helloworld', command => 'uptime', tty => true,} 





====================================分割线================================

本文转自d1net(转载)
目录
相关文章
|
1月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
深入理解Docker:为你的爬虫项目提供隔离环境
|
5月前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
495 3
|
3月前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
107 3
实战~如何组织一个多容器项目docker-compose
|
3月前
|
存储 安全 数据中心
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
73 1
|
4月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
5月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
1038 3
|
5月前
|
存储 数据管理 Docker
docker中数据卷的特性
【10月更文挑战第10天】
71 2
|
7月前
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
5月前
|
Docker 容器
如何利用docker来部署war包项目
本文介绍了如何使用Docker来部署WAR包项目,包括编写Dockerfile和docker-compose.yml文件,以及如何通过Docker Compose启动服务。
142 0
|
6月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD

热门文章

最新文章