Docker Compose部署及基础使用详解

Docker Compose部署及基础使用详解

Docker Compose是一个用于定义和运行多个Docker容器的工具,可以通过一个简单的YAML文件来配置多个容器之间的关系,从而实现容器的编排。这篇攻略将介绍Docker Compose的使用方法和示例,帮助大家更好地理解和运用Docker Compose。

安装Docker Compose

要使用Docker Compose,首先需要在本地机器上安装Docker Compose。下面是在Linux操作系统上的安装步骤:

  1. 下载Docker Compose二进制文件

$ 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

  1. 赋予二进制文件可执行权限

$ sudo chmod +x /usr/local/bin/docker-compose

  1. 验证是否安装成功

$ docker-compose --version

编写Docker Compose配置文件

Docker Compose的核心是YAML文件,可以使用任何文本编辑器来创建这个文件。下面是一个最简单的Docker Compose配置文件示例,它定义了一个Nginx容器:

version: '3'
services:
   web:
     image: nginx:latest
     ports:
       - "8080:80"

这个配置文件的YAML格式包含了version和services两个关键字。其中,version指定Docker Compose的版本,services则表示定义的多个服务。在这个配置文件中,我们定义了一个名为web的服务,使用了nginx:latest镜像,并将主机的端口8080映射到容器的端口80。

运行Docker Compose

在编写好Docker Compose配置文件之后,可以使用docker-compose up命令来启动容器。在上面的示例中,我们可以在包含Docker Compose配置文件的目录下运行以下命令:

$ docker-compose up

执行该命令后,Docker Compose会通过Docker Hub拉取nginx:latest镜像,并将其容器化。此时就可以通过http://localhost:8080来访问Nginx服务了。

示例1:使用Docker Compose部署WordPress

除了上面的示例外,Docker Compose还支持更为复杂的场景。下面是一个为WordPress部署的Docker Compose示例,其中包含了MySQL、WordPress和Nginx三个服务:

version: '3.3'

services:

  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8080:80"
    restart: always
    volumes:
      - wp_data:/var/www/html
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress

  nginx:
    depends_on:
      - wordpress
    image: nginx:latest
    ports:
      - "80:80"
    restart: always
    volumes:
      - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
      - wp_data:/var/www/html
volumes:
    db_data:
    wp_data:

在这个示例中,我们通过Docker Compose定义了三个服务:MySQL、WordPress和Nginx。其中,MySQL服务使用mysql:5.7镜像,定义了数据卷并指定了环境变量;WordPress服务使用wordpress:latest镜像,定义了端口和数据卷,并通过环境变量来将其连接到MySQL服务;Nginx服务使用nginx:latest镜像,定义了端口和数据卷,并将WordPress服务作为其后端。

要启动这个Docker Compose示例,只需要进入该示例配置文件所在目录,并执行以下命令:

$ docker-compose up -d

执行该命令后,Docker Compose会依次启动MySQL、WordPress和Nginx服务,并将其容器化。此时就可以通过http://localhost访问WordPress了。

示例2:使用Docker Compose部署Django应用

除了WordPress之外,Docker Compose还可以用于部署Django应用。下面是一个Django应用的Docker Compose示例,其中包含了Web、Nginx、PostgreSQL和Redis四个服务:

version: '3.7'

services:
  db:
    image: postgres:13.2-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - POSTGRES_DB=app_db
      - POSTGRES_USER=app_user
      - POSTGRES_PASSWORD=app_password
    ports:
      - "5432:5432"

  redis:
    image: redis:latest
    command: redis-server
    volumes:
      - redis_data:/data
    ports:
      - "6379:6379"

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
      - redis

  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
      - static_data:/static/
      - media_data:/media/
    depends_on:
      - web

volumes:
  postgres_data:
  redis_data:
  static_data:
  media_data:

在这个示例中,我们通过Docker Compose定义了四个服务:PostgreSQL、Redis、Web和Nginx。其中,PostgreSQL服务使用postgres:13.2-alpine镜像,定义了数据卷和环境变量;Redis服务使用redis:latest镜像,定义了数据卷和端口;Web服务使用Dockerfile构建镜像,定义了数据卷和端口,并通过依赖关系和Redis服务连接到PostgreSQL服务;Nginx服务使用nginx:latest镜像,定义了端口和数据卷,并通过依赖关系和Web服务连接。

要启动这个Docker Compose示例,只需要进入该示例配置文件所在目录,并执行以下命令:

$ docker-compose up -d

执行该命令后,Docker Compose会依次启动PostgreSQL、Redis、Web和Nginx服务,并将其容器化。此时就可以通过http://localhost访问Django应用了。

结语

本文介绍了如何使用Docker Compose来定义和运行多个Docker容器。通过示例的介绍,读者可以更好地理解Docker Compose的使用方法和语法规则,从而优化容器编排的过程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker Compose部署及基础使用详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Docker制作镜像的两种方式(在线制作和离线制作)

    当我们使用Docker来管理应用程序时,我们需要制作镜像并将其上传到Docker仓库,以便在其他机器上部署该应用程序。Docker的镜像可以通过在线制作和离线制作两种方式来完成。下面将详细介绍这两种制作方式的过程,以及给出相应的示例说明。 在线制作镜像 在线制作镜像是指直接从Docker Hub上的公共镜像开始,修改配置并生成新的镜像。这种方式制作出来的镜像…

    Docker 2023年5月16日
    00
  • docker-compose之基本语法解读

    一、docker-compose基本语法 docker-compose是一个用于定义和运行多容器Docker应用程序的工具。它使用一个YAML文件来配置应用程序的服务,再使用命令行工具对这些服务进行操作。下面是docker-compose的基本语法: 创建/启动/停止/重启容器 docker-compose up [-d] # 创建并且启动容器,-d 表示后…

    Docker 2023年5月15日
    00
  • 记一次CentOS Install Docker 报错

        报错信息:     问题: package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed – cannot install the best candidate for …

    Docker 2023年4月13日
    00
  • 初次使用Docker的体验笔记总结

    初次使用Docker的体验笔记总结 什么是Docker Docker是一种轻量级的容器虚拟化技术,可以快速构建、打包以及分享便携式容器应用程序。Docker可以在不同的操作系统上共享,具有简单易用、环境隔离等优点。 安装Docker Mac:可以通过Homebrew安装,命令行输入brew install docker Windows:可以从官网下载Dock…

    Docker 2023年5月16日
    00
  • docker运行项目的方法

    下面是关于“docker运行项目的方法”的完整攻略: 准备工作 建议在使用Docker之前先安装Docker和Docker Compose。对于不同的操作系统,安装命令可能会有所不同。安装Docker和Docker Compose的方法可以参考官方文档。 步骤一:编写Dockerfile文件 Dockerfile文件是Docker的构建文件,用于描述Dock…

    Docker 2023年5月16日
    00
  • CentOS 7安装Docker服务详细过程

    下面是CentOS 7安装Docker服务的详细过程及两条示例说明的完整攻略: 安装步骤 确保系统已更新 执行以下命令进行更新: sudo yum update 安装Docker依赖 执行以下命令安装Docker依赖: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 添加Doc…

    Docker 2023年5月16日
    00
  • Docker搭建MySQL数据库

    1、docker 可以执行如下命令一步搭建MySQL数据库: docker run –name mysql -v $PWD/mysql:/var/lib/mysql -p3306:3308 -eMYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 命令中显示我们使用的是Docker技术并创建一个名字为mysql的容器,然后在容器中…

    Docker 2023年4月13日
    00
  • Linux搭建docker

    ### 1. 查看系统的内核版本 “`bash[root@wide ~]# uname -r3.10.0-1160.el7.x86_64“` ### 2. 将yum更新到最新版本 “`bash[root@wide ~]# yum upate -yComplete!“` ### 3. 安装Docker所需的依赖包 “`bash[root@wide ~…

    Docker 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部