当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用docker 单机编排工具docker compose,Docker Compose 是docker容器的一种编排服务,docker compose是一个管理多个容器的工具,比如可以解决容器之间的依赖关系,就像启动一个web就必须得先把数据库服务先启动一样,docker compose 完全可以替代docker run启动容器。
#github 地址https://github.com/docker/compose
1.1:基础环境准备:
1.1.1:安装python环境及pip命令:  
root@host-172-16-99-151:~# apt-get install python-pip -y
root@host-172-16-99-151:~# pip install --upgrade pip
注:centos系统的操作如下
# yum install https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm -y
# yum install python-pip -y
# pip install --upgrade pip
 
1.1.2:安装docker compose:
root@host-172-16-99-151:~# apt-get install docker-compose
注:centos系统 yum install -y docker-compose
1.1.3:验证版本:
root@host-172-16-99-151:~# docker-compose  version
1.1.4:查看帮助:
root@host-172-16-99-151:~# docker-compose  --help
1.2:从 docker compose启动单个容器:
目录可以在任意目录,推荐放在有意义的位置。
root@host-172-16-99-151:~# mkdir docker-compose
root@host-172-16-99-151:~# cd docker-compose/
1.2.1:一个容器的docker compose文件:
设置一个yml格式的配置文件,因此要注意前后的缩进。
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml  
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  ports:
    - "80:80"
    - "443:443"
 
注:方便配置粘贴的小技巧
# echo 'set paste' > .vimrc
 
1.2.2:启动容器:
必须要在docker compose文件所在的目录执行:
root@host-172-16-99-151:~/docker-compose# docker-compose  up #前台启动
1.2.3:启动完成:
1.2.4:web访问测试:
1.2.5:后台启动服务:
#容器的在启动的时候,会给容器自定义一个名称
root@host-172-16-99-151:~/docker-compose# docker-compose  up -d
1.2.6:自定义容器名称:
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1  #自定义容器名称
  ports:
    - "80:80"
    - "443:443"
 
更改docker compose里面的容器名称后在启动容器,会重新初始化容器并更改容器名称
1.2.7:验证容器:
1.2.8:查看容器进程:
root@host-172-16-99-151:~/docker-compose# docker-compose  ps
 
1.3:从docker compose启动多个容器:
1.3.1:编辑docker-compose文件:
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1
  ports:
    - "80:80"
    - "443:443"
 
web2: #每一个容器一个ID
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web2
  ports:
    - "81:80"
    - "444:443"
 
1.3.2:重新启动容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  up –d
7.3.3:web访问测试:
 
1.4:定义数据卷挂载:
1.4.1:创建数据目录和文件:
root@host-172-16-99-151:~# mkdir -p /data/nginx  
root@host-172-16-99-151:~# echo "Test Nginx Volume" > /data/nginx/index.html
1.4.2:编辑compose配置文件:
root@host-172-16-99-151:~/docker-compose# vim docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1
  volumes:
    - /data/nginx:/usr/share/nginx/html
  ports:
    - "80:80"
    - "443:443"
 
web2:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web2
  ports:
    - "81:80"
    - "444:443"
1.4.3:重启容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  up -d
1.4.4:验证web访问:
#可以发现,同一个文件,数据卷的优先级比镜像内的文件优先级高
 
1.4.5:其他常用命令:
1.4.5.2:重启所以容器:
root@host-172-16-99-151:~/docker-compose# docker-compose restart
1.4.5.3:停止和启动单个容器:
root@host-172-16-99-151:~/docker-compose# docker-compose stop  web1
root@host-172-16-99-151:~/docker-compose# docker-compose  start web1
1.4.5.4:停止和启动所有容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  start
 
 
 

单机编排之Docker Compose的更多相关文章

  1. Docker 容器编排利器 Docker Compose

    Compose 简介 通过前面几篇文章的学习,我们可以通过 Dockerfile 文件让用户很方便的定义一个单独的应用容器.然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况,例如 ...

  2. Docker系列10—容器编排工具Docker Compose详解

    本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...

  3. Docker编排工具Docker Compose的使用

    一.安装docker compose 官网推荐方式之一: sudo curl -L "https://github.com/docker/compose/releases/download/ ...

  4. 使用 docker compose 安装 tidb

    目标 : 单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群 前提条件: 1.centos版本在7.3 以上 2.安装git 3.安装docker Docker versi ...

  5. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

  6. Docker Compose 容器编排 NET Core 6+MySQL 8+Nginx + Redis

    环境: CentOS 8.5.2111Docker 20.10.10Docker-Compose 2.1.0 服务: db  redis  web nginx NET Core 6+MySQL 8+N ...

  7. Docker Compose容器编排

    Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...

  8. Docker Compose 容器编排

    1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...

  9. Docker(二十六)-Docker Compose编排容器

    1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...

随机推荐

  1. 【PYTHON】操作excel笔记

    import xlrd book = xlrd.open_workbook('..//data//case1.xls') # 获取excel对象 print(book.sheets()) # 获取ex ...

  2. DIV设置滚动条在最底端

    网站聊天样式,无论添加什么内容div的滚动条都显示在最底端 将div添加滚动条,给div一定的高度 <div id='up' style='height:100px; width:400px;o ...

  3. LCCUP 2020 秋季编程大赛 补题

    果然是力扣杯,难度较于平时周赛提高了不少,个人感觉最后两题并不太容易QAQ LCP 18.早餐组合 #二分思想 题目链接 题意 你获得了每种主食的价格,及每种饮料的价格,你需要选择一份主食和一份饮料, ...

  4. dubbo源码调试

    1.从github上clone下duboo的源码并checkout tag到2.6.5可以看到如下的结构: 其中all-dubbo的pom如下: 这里会将dubbo的其他项目在package的时候打到 ...

  5. redis数据量大时bgsave线程阻塞redis原因

    rt 转载 Latency generated by fork In order to generate the RDB file in background, or to rewrite the A ...

  6. 在windows环境下 nginx + .net core 3.1 实现反向代理和负载均衡

    一.创建.net core web 应用 1.首先打开vs2019创建好.net core web应用,简单的注入IConfiguration 便于打印端口号展示效果. 1 private reado ...

  7. git的使用以及git和码云的连接

    什么是git? ​ Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.可以保存许多的历史版本,并且可以多人同时进行开发. 分布式版本控制系统 ​ 每个人拥有该项目 ...

  8. 05 python开发之文件处理

    05 python开发之文件处理 目录 05 python开发之文件处理 5 文件处理 5.1 字符编码 5.1.1 基本概念 5.1.2 发展历程 5.1.3 使用 5.2 文件处理基础 5.2.1 ...

  9. 第4.7节 Python特色的序列解包、链式赋值、链式比较

    一.序列解包 序列解包(或可迭代对象解包):解包就是从序列中取出其中的元素的过程,将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中. 一般情况下要解包的序列包含的元素个数必须与你在等 ...

  10. 第九章、Qt Designer可视化设计界面布局组件介绍

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有 ...