Docker(8)-Docker Compose

对于大多数的工作,我们都需要多个容器之间的相互配合。幸运的是,Docker提供给了我们一个巧妙的工具--Docker Compose,让我们能够无缝地建立和管理多个容器。

要安装Docker Compose,我们需要先确保已经安装了pip(一个Python包管理器)。命令如下:

sudo apt-get update
sudo apt-get install -y python-pip
sudo pip-install docker-compose

Docker Compose使用一个名为docker-compose.yml的YAML文件来定义应用程序的服务,使得这些服务能够一起运行在一个独立的环境中。需要注意的是,Docker Compose在目录的基础上工作,所以如果你想在一台设备上运行多个容器组,那么每个容器组都需要一个单独的目录,而且每个目录都需要一个docker-compose.yml文件。

为了更好地理解如何使用Docker Compose,让我们先来看看如何使用这个工具运行一个单独的容器:

1. 创建一个目录

mkdir HelloWorld

2. 进入目录里并创建一个包含如下内容的docker-compose.yml文件:

hellocontainer:  image: hello-world

第一行指定容器的名字,第二行指定了容器将基于的镜像。

3. 在目录里运行如下命令来启动容器:

docker-compose up

我们可以看到终端上显示出了"Hello from Docker!"

接下来让我们使用Docker Compose运行一个由多个容器组成的wordpress应用:

1. 创建wordpress目录:

mkdir wordpress

2. 在目录里创建一个包含如下内容的docker-compose.yml文件:

wordpress:
  image: wordpress
  links:
    - database:mysql
  ports:
    - 8080:80
database:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: supersecretpass

上面,我们指定了两个容器,wordpress与database。image关键字指定了容器将基于的镜像;links关键字关联了两个容器;ports关键字映射了主机的8080端口到容器的80端口;environment关键字设置容器中的环境变量,在这里我们将mysql root用户密码设置为了"supersecretpass"。

3. 执行docker-compose up

在主机上打开浏览器并在地址栏输入http://localhost:8080,我们就会看到wordpress的安装页面了^^

如果我们想以daemon形式启动容器组,可以执行docker-compose up -d命令。

Note:

  • docker-compose up – 启动容器组
  • docker-compose stop – 停止容器组
  • docker-compose ps – 列出所有容器组,无论是否它们正在运行
  • docker-compose kill – 强制停止一个容器组
时间: 2024-10-21 23:56:33

Docker(8)-Docker Compose的相关文章

docker 之 docker compose

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application's services. Then, using a single command, you create and start all the services from your configuration

Docker三剑客之Compose

Docker三剑客之Compose Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用. Compose 基本介绍 Compose 简介 Compose代码 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.从功能上看,跟 OpenStack 中的 Heat 十分类似.Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running

物联网架构成长之路(24)-Docker练习之Compose容器编排

0.前言 一开始学的之后,是想一步到位直接上Kubernetes(K8s)的,后面没想到,好像有点复杂,有些概念不是很懂.因此学习东西还是要循序渐进,慢慢来.先了解单机编排技术Docker Compose,了解一些技术细节及原理后,在入手K8s.还是不能一口吃成胖子,要多吃几口才可以.而且目前公司都是一些小项目,能用得上DockerCompose已经很不错了,还想要上K8s,估计是不现实的. 1. 安装 可以通过运行下面命令进行安装, 1 curl -L https://github.com/d

Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别

最近在学习Docker容器,了解到一些相关的技术,像是Kubernetes,Docker-compose,Docker Swarm,分不清这些东西之间的区别,特意去研究了一下,分享一下,适合刚入门学习容器的同学了解. DcokerDocker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心. Docker-ComposeDocker-Compose

docker网络、compose(2)

目录 docker网络 桥接 host none 文件共享 特权模式 compose 基础 常用 docker网络 docker的网络比较简单,其实只要是对vmware workstation的网络有所理解的话都能很好的理解docker的网络模式. Docker容器的网络模式 bridge模式,让容器跟docker0网卡桥接.上网通过nat上网,这其实就是vmware workstation当中的NAT网络. host模式,让容器和宿主机共享网络,这其实才是vmware当中的桥接模式. none

Docker容器之Compose编排、consul集群、template模板

docker compose容器编排 (1)docker compose的前身Fig,它是一个定义及运行多个docker容器的工具(2)使用docker compose不再需要使用shell脚本启动容器(3)docker compose非常适合组合使用多个容器进行开发的场景 YAML是一种标记语言很直观的数据序列化格式 文件格式及编写注意事项: 不支持制表符tab键缩进,需要使用空格缩进 通常开头缩进2个空格 字符后缩进1个空格,如冒号,逗号,横杆 用井号注释 如果包含特殊字符用单引号引起来 布

docker学习---docker基础知识

目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Registry 5.2.harbor部署 6.使用容器 7.容器导出和导入 8.数据卷 9.网络访问 10.dockerfile 10.1.基础指令 10.2.控制指令 10.3.引入指令 10.3.执行指令 10.4.配置指令 10.5.特殊用法 docker的基础 1.安装docker yum i

【Docker】Docker是什么?怎么安装?怎么用?

 从今天开始学习Docker,通过对网上资料的搜集与学习,记录一下. 是什么 ? Docker是一个基于LXC实现的类似于VMs的超轻量级虚拟机. 它与VMs的区别在于,VMs提供的是一个完整的操作系统虚拟环境,从硬件层次上,包含了大量类似硬件驱动.虚拟处理器.网络接口等等并不需要的信息,并且虚拟机也需要比较长时间的启动,同时也会消耗大量的内存.CPU 资源. 而Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了

Docker EE/Docker CE简介与版本规划

近日,Docker发布了Docker 17.03.进入Docker 17时代后,Docker分成了两个版本:Docker EE和Docker CE,即:企业版(EE)和社区版(CE).那么这两个版本有什么区别呢?不仅如此,Docker进入17.03后,版本命名方式跟之前完全不同,以后Docker又会有怎样的版本迭代计划呢?本文将为您一一解答. 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器

[docker] 管理docker容器中的数据

之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两种管理Docker中数据的主要方法. 数据卷 数据卷容器 数据卷 一个数据卷就是经过特殊设计的,在一个或多个容器中通过UFS文件系统提供的一些特性 实现数据持久化或共享. 数据卷可以在容器之间共享和重复利用 可以对数据卷里的内容直接进行修改 对镜像的更新不会改变数据卷的内容 卷会一直持续到没有容器使