当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用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 容器编排利器 Docker Compose
Compose 简介 通过前面几篇文章的学习,我们可以通过 Dockerfile 文件让用户很方便的定义一个单独的应用容器.然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况,例如 ...
- Docker系列10—容器编排工具Docker Compose详解
本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...
- Docker编排工具Docker Compose的使用
一.安装docker compose 官网推荐方式之一: sudo curl -L "https://github.com/docker/compose/releases/download/ ...
- 使用 docker compose 安装 tidb
目标 : 单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群 前提条件: 1.centos版本在7.3 以上 2.安装git 3.安装docker Docker versi ...
- 使用 Docker Compose 快速构建 TiDB 集群
本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...
- 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 ...
- Docker Compose容器编排
Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...
- Docker Compose 容器编排
1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...
- Docker(二十六)-Docker Compose编排容器
1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...
随机推荐
- guitar pro系列教程(五):Guitar Pro音轨属性之小节的功能
又到了guitar pro系列教程新的一章,本章节小编将采用图文相结合的方式与大家一起来讨论下关于Guitar Pro小节的功能,感兴趣的小伙伴都可以进来看看哦,如下图所示: 我们看到小节这选项栏中分 ...
- P3287 [SCOI2014]方伯伯的玉米田
首先可以证明,一定存在一种最优解,每次选择的区间结尾都是 \(n\).因为如果某一个区间结尾不是 \(n\),将其替换成 \(n\) 仍然保持单调不下降.接着都按这个策略拔高玉米. 令 \(f_{i, ...
- Java基础教程——线程状态
线程状态 JAVA定义了6种线程状态: Thread.State public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, ...
- FL Studio新手入门:FL Studio五大常用按钮介绍
我们打开FL Studio编曲软件会发现界面中有好多的菜单和窗口,这些窗口每个都有其单独的功能.今天小编主要给大家详细讲解下FL Studio水果软件的五大常用按钮. 1.首先我,我们双击桌面的水果图 ...
- 【mq学习笔记】mq查找路由信息与故障延迟
路由发现:缓存中的路由信息什么时候更新呢? 由QueueData转topicPublishInfo的List<QueueMessage>: 选择消息队列: sendLatencyFault ...
- std::unique_ptr使用incomplete type的报错分析和解决
Pimpl(Pointer to implementation)很多同学都不陌生,但是从原始指针升级到C++11的独占指针std::unique_ptr时,会遇到一个incomplete type的报 ...
- k8s+docker_part2
docker+k8s 目录 docker+k8s 1 简介 1.1 docker是什么 1.2 为什么要用docker 1.2.1 docker容器虚拟化的好处 1.2.2 docker在开发和运维中 ...
- LeetCode 041 First Missing Positive
题目要求:First Missing Positive Given an unsorted integer array, find the first missing positive integer ...
- NTML
NTLM: 1.客户端向服务器发送一个请求,请求中包含明文的登陆用户名.在服务器中已经存储了登陆用户名和对应的密码hash 2.服务器接收到请求后,NTLMv2协议下 ...
- Alpha冲刺-第四次冲刺笔记
Alpha冲刺-冲刺笔记 这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE2 这个作业要求在哪里 https://edu.cnblogs. ...