Docker Compose简介及使用

这篇具有很好参考价值的文章主要介绍了Docker Compose简介及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Docker Compose简介

关于Docker Compose,官方文档(https://docs.docker.com/compose/)里有介绍:

Docker Compose简介及使用


百度翻译:

Compose是定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,从配置创建并启动所有服务。要了解有关Compose的所有功能的更多信息,请参阅功能列表。

Compose适用于所有环境:生产、登台、开发、测试以及CI工作流。您可以在常见用例中了解更多关于每个用例的信息。


简单来说Compose是一个将多个docker容器组合部署的技术,能通过编写yaml配置文件来一键启动、暂停所有的容器,而不再需要用一条条的docker run命令来启动多个容器

2、Docker Compose的使用概述

关于Docker Compose的使用概述,官方也有给出:

Docker Compose简介及使用


百度翻译:

1、使用Dockerfile定义应用程序的环境,以便可以在任何地方运行。

2、在docker-compose.yml文件中定义构成应用程序的服务,因此它们可以在隔离环境中一起运行。

3、运行docker compose up这一条命令,这条命令将启动并运行您的整个应用程序。您也可以运行docker-compose up这条命令来让Compose运行起来(docker-compose二进制文件)。

官方给出的docker-compose.yml示例如下:

version: "3.9"  # optional since v1.27.0
services:
  web:
    build: .
    ports:
      - "8000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    depends_on:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3、安装Docker Compose

最新版的Docker Compose只要用yum下载就行,一般来说只要是按照官方文档的步骤来安装最新版的Docker,在执行下载Docker的那条命令里就已经包含了下载Docker Compose的语句了(如下图所示),所以按照官方文档下载的也不需要重新下载Docker Compose,可以略过步骤3(1),若下载时没按官方文档的来或下载Docker时略过了对docker-compose-plugin的下载,可以使用步骤3(1)的命令来下载Docker Compose

Docker Compose简介及使用

(1)下载Docker Compose

yum install docker-compose-plugin

(2)使用以下命令检验Docker Compose是否安装成功

docker compose version

效果图:

Docker Compose简介及使用

4、使用Docker Compose

(1)创建文件夹

进入工作目录,输入官方文档里的命令来新建一个文件夹

Docker Compose简介及使用

mkdir composetest
cd composetest

效果图:

Docker Compose简介及使用

(2)创建一个名为app.py的文件,并在该文件里面写入官方给出的代码

Docker Compose简介及使用

vim app.py

新建完后写入以下代码,然后保存并退出

import time

import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)

@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)

(3)创建一个名为requirements.txt的文件,并在该文件里面写入官方给出的内容

Docker Compose简介及使用

vim requirements.txt

新建完后写入以下内容,然后保存并退出

flask
redis

(4)创建一个名为Dockerfile的文件,并在该文件里面写入官方给出的内容

Docker Compose简介及使用

vim Dockerfile

新建完后写入以下内容,然后保存并退出 

#syntax=docker/dockerfile:1

#基础镜像
FROM python:3.7-alpine

#设置镜像的工作目录
WORKDIR /code

#构建的时候设置环境变量
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0

#安装gcc编译器
RUN apk add --no-cache gcc musl-dev linux-headers

#把刚刚我们创建的requirements.txt文件拷贝到镜像里
COPY requirements.txt requirements.txt

#下载requirements.txt里写好的flask和redis
RUN pip install -r requirements.txt

#指定5000为对外暴露的端口
EXPOSE 5000

#把当前目录拷贝进镜像里
COPY . .

#指定这个容器启动的时候要运行的命令,执行的命令为:flask run
CMD ["flask", "run"]

(5)创建一个名为docker-compose.yml的文件,并在该文件里面写入官方给出的内容

Docker Compose简介及使用

vim docker-compose.yml

新建完后写入以下内容,然后保存并退出  

version: "3.9"
#build后可以跟自己写的Dockerfile文件,写在build后面的Dockerfile文件用于生成镜像
services:
  web:
    build: .
    ports:
      - "8000:5000"
#如果build后没值,则镜像用从DockerHub上拉下来的redis镜像
  redis:
    image: "redis:alpine"

(6)使用以下命令查看该文件夹下的文件,看是否齐全

app.py:程序

docker-compose.yml:用于部署应用

Dockerfile:用于创建docker镜像

requirements.txt:里面写着需要依赖的包

ls

效果图: 

Docker Compose简介及使用

(7)在当前文件夹下运行docker compose up命令

Docker Compose简介及使用

docker compose up

效果图:

(PS:1、一开始加载都会比较久,因为需要到国外去下载东西,所以需要耐心等待;2、可以不用去管那个WARNING,一开始我看它颜色是红色以为是报错了,然后一直上网找解决方案,但好像都解决不了,后来继续时发现这个WARNING并不影响实际使用) 

Docker Compose简介及使用

另起一个窗口访问服务器,使用docker ps命令能看到运行中的docker容器 

Docker Compose简介及使用

(8)另起一个窗口访问服务器,访问服务器的8000端口(在步骤4(5)进行了8000:5000的端口映射),发现输出Hello World!的语句

Docker Compose简介及使用

Docker Compose简介及使用

5、使用compose构建的docker容器的名称是自动生成的,生成规则为文件名-服务名-num(num是副本的数量,用集群跑compose时,到时候就会自动生成docker容器,num就会自动往上加)

Docker Compose简介及使用

6、查看compose的网络规则

(1)使用以下命令查看所有的docker网络

docker network ls

效果图:

Docker Compose简介及使用

(2)找到compose自动生成的网络,即composetest_default,然后使用以下命令查看该网络的详情,发现composetest_redis_1和composetest_web_1在同一个网络下,所以这两个docker容器之间能通过容器名或容器id互相访问

docker network inspect composetest_default

效果图:

Docker Compose简介及使用

其他:

Docker Compose的yaml文件配置

 1、第一步是确认应使用的Compose版本

(1)去看官方文档,根据给出的文档选择对应的Compose版本

https://docs.docker.com/compose/compose-file/compose-file-v3/

Compose和Docker Engine版本对比截图:

Docker Compose简介及使用

(2)使用以下命令查看自己的docker engine版本

docker version

效果图:

Docker Compose简介及使用

(3)由图可知我的Docker Engine版本为20.10.17,根据官方文档的版本对比表,没有对应Docker Engine 20版本的Compose版本,所以只能使用最新的Compose 3.8版本

#通过对比Compose和Docker Engine的版本,得出Compose使用3.8版本
version:'3.8'

2、第二步配置services

官方文档:https://docs.docker.com/compose/compose-file/compose-file-v3/#service-configuration-reference

#配置我们自己的服务
services:
  #服务名称
  web
    #跟docker build命令一样
    build:
      #表示在指定目录下找Dockerfile
      context: .
      #Dockerfile的名称
      dockerfile:
      #当前服务跑在哪个地址上
      network:host
    #容器启动时执行的命令
    command:bundle exec thin -p 3000
    #Entrypoint指令用于设定容器启动时第一个运行的命令及其参数
    entrypoint: /code/entrypoint.sh
    #指定docker容器的名称
    container_name: my-web-container
    #依赖关系:有些项目需要redis先启动,项目后启动,所以这时候需要配置依赖关系,如下配置就是让db服务先启动,然后redis服务启动,最后web服务才启动
    depends_on:
      - db
      - redis
    #配置环境变量
    environment:
    #当前服务对外暴露的端口
    expose:
      - "8080"
    #服务的镜像名称
    image:web:0.1
  #服务名称
  redis:
    #服务的镜像名称
    image: redis
  #服务名称
  db:
    #服务的镜像名称
    image: mysql

3、第三步配置其他参数(不做硬性要求)

    #容器数据卷挂载目录
    volumes:
      - type: volume
        #主机目录
        source: mydata
        #容器目录
        target: /data
        volume:
          nocopy: true
    #配置docker自定义网络
    networks:
     - my-network
    configs:

创作不易,如果这篇文章对你有帮助,希望能点个赞帮助文章的推广,如果文章有错漏,希望各位能批评指正,谢谢大家。文章来源地址https://www.toymoban.com/news/detail-443334.html

到了这里,关于Docker Compose简介及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Excalidraw 简介及 Docker Compose 部署指南

    家人们好,我们在工作生活中经常需要画些图,我们往期了已经出过draw-io私有化部署的文章了,今天我要向大家介绍一款名为 Excalidraw 的绘图工具,这款工具了我个人非常喜欢使用,是因为它可以修改成类似于手写体的字体,并且可以直接绘画,这篇文章我将分享如何使用

    2024年02月15日
    浏览(34)
  • docker-compose简介以及常用命令

    什么是docker-compose compose 是用来定义和运行一个或多个容器(通常都是多个)运行和应用的工具。使用 compose 可以简化容器镜像的构建以及容器的运行。 安装docker-compose需要在Linux系统上运行以下命令: 1.使用curl命令下载docker-compose二进制文件: 2.为二进制文件添加可执行权限:

    2024年02月10日
    浏览(38)
  • 实战:大数据Spark简介与docker-compose搭建独立集群

    很多同学都使用过经典的大数据分布式计算框架hadoop,其分布式文件系统HDFS对数据管理很友好,但是计算能力较Spark还是不足。俗话说工欲善其事必先利其器,今天就介绍docker容器化部署Spark集群。 Spark简介 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在

    2024年02月11日
    浏览(57)
  • 关于docker-compose up -d在文件下无法运行的原因以及解决方法

    一、确认文件下有docker-compose.yml文件  二、解决方法 检查 Docker 服务是否运行 : 使用以下命令检查 Docker 服务是否正在运行: 如果 Docker 未运行,可以使用以下命令启动它: 确认 Docker 服务开机自启动 : 如果 Docker 服务在启动后无法正常运行,您可以使用以下命令将其设置

    2024年02月12日
    浏览(35)
  • 关于Deepin安装docker时遇到E: 无法定位软件包 docker-buildx-plugin 以及 E: 无法定位软件包 docker-compose-plugin 的解决办法

    操作系统:Deepin20.9 使用电脑:Dell G15 按照https://docs.docker.com/engine/install/debian/的教程,正在完成如图所示操作时 报以下错误   我们知道我们是按照Debian10去安装Docker的, 此时我的soucelist如图所示: souecelist文件路径:/etc/apt/  在更新apt-get的 过程中,发现   debian有名叫apric

    2024年02月16日
    浏览(64)
  • 【docker】Docker Compose 使用介绍

    Docker Compose是一个用于定义和运行多个Docker容器的工具。它允许您使用YAML文件来配置应用程序的服务、网络和卷等方面,并通过单个命令即可快速启动和停止整个应用程序的多个容器。 Docker Compose的主要作用如下: 管理多个容器:Docker Compose允许您在一个项目中定义和管理多

    2024年02月02日
    浏览(35)
  • Docker Compose初使用

    简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器(container)。 Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个

    2024年02月07日
    浏览(30)
  • 【Docker】docker-compose基本使用

    一般的docker部署项目有如下弊端: 一个完整的项目通常需要用到多个容器,N个容器之间会形成依赖,比如项目启动时如果没有启动mysql容器,那么项目容器就启动不起来。没有启动es容器,kibana容器也启动不起来。所以, 容器启动之间的编排显得至关重要,项目庞大时我们很

    2024年02月16日
    浏览(30)
  • 使用 Docker Compose 部署 Docker Registry

    在内网环境中,我们期望能够在本地共享镜像。为了解决这一问题,Docker Registry成为了我们的救星。Docker Registry是一个用于存储和管理Docker镜像的开源工具。通过在本地部署Docker Registry,您可以轻松地构建、存储和分享自己的Docker镜像。本文将详细介绍如何使用Docker Compose快

    2024年02月02日
    浏览(51)
  • Docker【部署 04】Docker Compose下载安装及实例Milvus Docker compose(CPU)使用说明分享

    Docker Compose 是一个用于定义和管理多个 Docker 容器的工具,旨在简化容器化应用程序的开发、部署和管理过程。通过 Docker Compose,您可以使用一个单独的配置文件(通常是 docker-compose.yml 文件)来描述应用程序中涉及的多个容器、网络设置、存储卷等。 Docker Compose 官网安装说

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包