当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用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 定义应用 ...
随机推荐
- vulnhub: DC 3
通过nmap扫描,只开放了80端口,并且该web服务是基于Joomla搭建: root@kali:~# nmap -A 192.168.74.140 Starting Nmap 7.80 ( http ...
- 3. git命令行操作之远程库操作
3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...
- LCCUP 2020 秋季编程大赛 补题
果然是力扣杯,难度较于平时周赛提高了不少,个人感觉最后两题并不太容易QAQ LCP 18.早餐组合 #二分思想 题目链接 题意 你获得了每种主食的价格,及每种饮料的价格,你需要选择一份主食和一份饮料, ...
- 编程入门选什么语言好?C 语言还是Python ?为你解析
前面我分享过计算机行业已经成了学校选择排名第一,家长和学生都很看好计算机类专业.现在IT行业也越来越火爆,程序员越来越被人看好.面对相比同龄人高薪资的诱惑,人们很难不心动,即使秃头也值得! 那么问题来 ...
- Kafka源码环境搭建
github地址:https://github.com/apache/kafka clone下来之后可以看到这样的项目结构: 文件目录说明. 目录 描述 bin Windows 和 Linux 下 K ...
- 网络拓扑实例之交换机基于全局地址池作为DHCP服务器(七)
组网图形 DHCP服务器简介 通常用户希望网络中的每台终端能够动态获取IP地址.DNS服务器的IP地址.路由信息.网关信息等网络参数,不需要手动配置终端的IP地址等网络参数:另外,针对一些移动终端(手 ...
- Oracle 11g改密码有效期
oracle 11g,密码默认有效期为180天,设置为不过期,可在线操作. 步骤: -->>进入oracle用户 su - oracle -->>已sys超级用户登录sqlpl ...
- 微信小程序里如何使用npm?小程序集成友盟举例
1.执行npm初始化指令 小程序根目录,命令执行如下指令: npm init 执行后会让加载项目初始信息,具体截图如下: 2.执行安装npm包指令 在这我们举个例子,以接入友盟统计SDK为例,执行命令 ...
- 第15.1节 PyCharm安装及使用
一. 引言 在本章以前,所有老猿实现的代码都是基于Python自带的解释器IDLE来开发和执行的,很方便.消耗少,但进入PyQt图形界面开发以后,IDLE不能实现和PyQt的集成,且不能支持断点调试, ...
- 问题:PyCharm调试方法smart step into的用途
smart step into为智能单步跟踪,当一行代码中有多个函数,想进入其中一个函数调测其他函数不进入调测时,使用该功能可以让调试人员选择进入的函数.如: 就可以选择需要调试进入的函数而其他两个函 ...