首页 > 其他分享 >Docker Compose

Docker Compose

时间:2023-04-03 16:59:13浏览次数:40  
标签:容器 compose 服务 Compose Docker docker

一、Docker Compose

1、前言

我们知道使⽤⼀个 Dockerfile 模板⽂件,可以让⽤户很⽅便的定义⼀个单独的应⽤容器。然⽽,在⽇常⼯作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。
例如要实现⼀个 Web 项⽬,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚⾄还包括负载均衡容器等,我们只能一个一个`写dockerfile文件,然后bulid构建,run手动操作单个容器`

Compose 恰好满⾜了这样的需求。它允许⽤户通过⼀个单独的 docker-compose.yml 模板⽂件(YAML 格式)
来定义⼀组相关联的应⽤容器为⼀个项⽬(project).
微服务。 100个微服务!依赖关系。
# Compose 项⽬是 Docker 官⽅的开源项⽬,负责实现对 Docker 容器集群的快速编排。

2、官方介绍

Docker Compose来轻松高效的管理容器,定义运行多个容器。

1、Compose 中有两个重要的概念

# 1、服务 ( service ):
⼀个应⽤的容器,实际上可以包括若⼲运⾏相同镜像的容器实例(web、redis、mysql ...)。
# 2、项⽬ ( project ):
由⼀组关联的应⽤容器组成的⼀个完整业务单元,在 docker-compose.yml ⽂件中定义(博客、web、mysql)。
# 启动docker-compose up 可以启动多个服务

2、三步骤

1、Dockerfile 保证我们的项目可以在任何地方运行。

2、定义组成您的应用程序的服务,docker-compose.yml 以便它们可以在隔离的环境中一起运行。
# services 什么是服务
# docker-compose.ym 这个文件如何写

3、运行docker compose up和码头工人组成命令启动并运行你的整个应用程序。

  也可以docker-compose up使用 docker-compose 二进制文件运行。 # 启动项目

3、Compose是Docker官方的开源项目,需要安装!

dockerfile # 让程序在任何地方运行。 web服务、redis、mysql、nginx ... d  多个服务 启动

4、Compose:重要的概念

1、YAML file配置文件。
2、single command。 命令有哪里
3、Compose 适用于所有环境:生产、登台、开发、测试以及 CI 工作流。
4、Compose 的默认管理对象是项⽬,通过⼦命令对项⽬中的⼀组容器进⾏便捷地⽣命周期管理。
5、Compose 项⽬由 Python 编写,实现上调⽤了 Docker 服务提供的 API 来对容器进⾏管理。因此,只要所操作的平
台⽀持 Docker API,就可以在其上利⽤ Compose 来进⾏编排管理。

# Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。

二、docker compose 安装

# 官网安装: https://docs.docker.com/compose/install/

1、下载

方式一:
# 1、官网安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
方式二:
# 2、国内
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.25.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
​
[root@docter bin]# ll
total 12440
-rw-r--r-- 1 root root 12737304 Jul 14 20:19 docker-compose

2、bash命令补全

curl -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

3、卸载(没有安装不需要执行)

如果是⼆进制包⽅式安装的,删除⼆进制⽂件即可。

 sudo rm /usr/local/bin/docker-compose

4、授权

[root@docter bin]# sudo chmod +x /usr/local/bin/docker-compose

5、检测版本

[root@docter bin]# docker-compose version
docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

三、docker compose常用命令

Compose常用命令
docker-compose -h                           # 查看帮助
docker-compose up                           # 启动所有docker-compose服务
docker-compose up -d                        # 启动所有docker-compose服务并后台运行
docker-compose down                         # 停止并删除容器、网络、卷、镜像。
docker-compose exec  yml里面的服务id                 # 进入容器实例内部  docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps                      # 展示当前docker-compose编排过的运行的所有容器
docker-compose top                     # 展示当前docker-compose编排过的容器进程
 
docker-compose logs  yml里面的服务id     # 查看容器输出日志
docker-compose config     # 检查配置
docker-compose config -q  # 检查配置,有问题才有输出
docker-compose restart   # 重启服务
docker-compose start     # 启动服务
docker-compose stop      # 停止服务

四、compose编排微服务

 

标签:容器,compose,服务,Compose,Docker,docker
From: https://www.cnblogs.com/uestc2007/p/17283557.html

相关文章

  • ansible 部署 docker
    准备工作创建roles目录#mkdir-pv/data/apps/ansible/roles/docker/{files,tasks,handlers,templates,vars}hosts[ubuntu]172.16.18.31ansible_ssh_port=22ansible_ssh_user=ubuntuhostname=app-01测试连通性#ansibleubuntu-mping172.16.18.247|SUCCESS=>{......
  • 【环境搭建】docker+nginx部署PHP
    目的使用docker容器完成nginx的安装以及部署PHP网页步骤一、安装nginx1.拉取Nginx镜像dockerpullnginx//拉取镜像dockerimages//查看本地镜像这里注意需要记一下nginx的IMAGEID,我这里的ID是605c2.创建Nginx容器dockerrun......
  • docker安全设置
    限制容器之间的网络流量默认情况下,同一主机上的容器之间允许所有网络通信。如果不需要,请限制所有容器间的通信。将需要相互通信的特定容器链接在一起。默认情况下,同一主机上所有容器之间都启用了不受限制的网络流量。因此,每个容器都有可能读取同一主机上整个容器网络上的所有......
  • Docker-mongo
    Docker-mongomkdir-p/data/mongo/datadirdockerrun--nameedc-mongo-p27017:27017--restart=always-eMONGO_INITDB_ROOT_USERNAME=root-eMONGO_INITDB_ROOT_PASSWORD=12345678-v/data/mongo/datadir:/data/db-dmongo下载Debeziumwgethttps://repo1.mav......
  • docker 容器内安装ps命令
    转载自:https://blog.csdn.net/HXNLYW/article/details/88127414============= dockerexec-it793d8/bin/sh进入容器内,使用ps-ef|grepjava报了错: 问题出在docker容器linux没有安装procps工具在命令行中输入:apt-getupdate&&apt-getinstallprocps 敲下回......
  • ubantu docker
     docker.service[Unit]Description=DockerApplicationContainerEngineDocumentation=https://docs.docker.comBindsTo=containerd.serviceAfter=network-online.targetfirewalld.servicecontainerd.serviceWants=network-online.targetRequires=docker.socket......
  • docker mysql
    -eMYSQL_ROOT_PASSWORD=my-secret-pw-v/my/custom:/etc/mysql/conf.ddockerrun-it--rmmysql:tag--verbose--helpdockerrun--namesome-mysql-v/my/own/datadir:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456-dmysql:tagdockerrun--namesome-mysql-e......
  • Docker - 安装Redis
    目录前言环境安装Redis下载Redis安装Redis配置Redis前言记录下Docker下Redis的安装环境Centos7+Docker23.0.1+Redis6.2.7安装Redis下载Redis指定版本下载redis,版本可通过仓库https://hub.docker.com查看dockerpullredis:6.2.7安装Redis创建redis配置......
  • Docker - 常用命令参考
    目录Docker命令关系图常用命令脑图docker命令大全参考Docker命令关系图常用命令脑图docker命令大全参考$docker--help用法:......
  • Docker - 安装Mysql
    目录前言环境安装Mysql下载Mysql安装Mysql配置Mysql前言记录下Docker下Mysql的安装环境Centos7+Docker23.0.1+Mysql8.0.27安装Mysql下载Mysql下载最新版mysqldockerpullmysql查看镜像列表dockerimagelsdockerimages查看镜像版本dockerimag......