Docker Compose
(可简称Compose)是一个定义与运行复杂应用程序的 Docker 工具,是 Docker 官方编排(Orchestration)
项目之一,负责快速在集群中部署分布式应用。
1、为什么要使用 Docker Compose部署容器
仅使用docker命令部署和管理多容器:应用程序时往往需要编写若干脚本文件,使用的命令可能会变得冗长,包括大量的选项和参数,配置过程比较复杂,而且容易发生差错。
Docker Compose
实质:不是通过脚本和各种docker命令将多个容器组织起来,而是通过一个声明式的配置文件描述整个应用程序,从而让用户使用一条命令即可完成整个应用程序的部署。
Docker Compose
功能:将逻辑关联的多个容器编排为一个整体进行统一管理,提高了应用程序部署效率。
2、Docker Compose项目概念
Docker Compose
以项目为单位管理应用程序的部署。按从上到下依次分为以下三个层次。
项目:一组关联的容器组成一个完整的业务单位,实现一个应用程序,涵盖应用程序所需的所有资源。
服务:具体定义容器运行的镜像、
容器:
3、使用Docker Compose的基本步骤
1、安装 Compose
Compose 有两种常用的安装方式:
[root@docker ~] % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 24.7M 100 24.7M 0 0 62821 0 0:06:53 0:06:53 --:--:-- 1494k [root@docker ~] [root@docker ~] -rwxr-xr-x 1 root root 25968640 Jun 7 16:29 /usr/local/bin/docker-compose [root@hecs-hqs-01 ~] Docker Compose version v2.6.0
2、卸载Compose
如果要卸载,删除docker-compose文件即可。
[root@docker ~]
1、使用Docker Compose 部署 WordPress
WordPress是个人博客系统,逐步演化成一款内容管理系统软件。使用PHP和mysql开发。
以部署 WordPress 为例示范使用 Compose进行容器编排的完整过程。
每个服务容器就是服务的一个副本,其名称格式:“项目名_服务名_序号”,序号编排从1开始,不同的序号表示依次分配的副本。
[root@docker ~] [root@docker ~] [root@docker my_wordpress] [root@docker my_wordpress] version: '2.6' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: {} [root@docker my_wordpress] [+] Running 34/34 ⠿ wordpress Pulled 41.3s ⠿ a2abf6c4d29d Pull complete 7.9s ⠿ c5608244554d Pull complete 8.0s ⠿ 2d07066487a0 Pull complete 20.0s ⠿ 1b6dfaf1958c Pull complete 20.1s ⠿ 32c5e6a60073 Pull complete 21.0s ⠿ 90cf855b27cc Pull complete 21.1s ⠿ 8b0f1068c586 Pull complete 23.0s ⠿ 5355461305e8 Pull complete 23.0s ⠿ ad1eec592342 Pull complete 23.0s ⠿ e03fbc76cb78 Pull complete 23.0s ⠿ 1f5796e48b39 Pull complete 23.0s ⠿ 72fbe8e1d4e7 Pull complete 23.0s ⠿ 96edece66175 Pull complete 23.0s ⠿ 5f46f0743de2 Pull complete 23.4s ⠿ c9f9671a5e1f Pull complete 24.1s ⠿ 3f543dcd35b1 Pull complete 24.2s ⠿ c88e21a0c2a0 Pull complete 24.3s ⠿ 964b4457a910 Pull complete 24.4s ⠿ 0d55fb9a64ef Pull complete 25.5s ⠿ fb009ff7c567 Pull complete 25.6s ⠿ 4f058a67a50d Pull complete 25.6s ⠿ db Pulled 17.6s ⠿ 72a69066d2fe Pull complete 6.7s ⠿ 93619dbc5b36 Pull complete 6.8s ⠿ 99da31dd6142 Pull complete 7.4s ⠿ 626033c43d70 Pull complete 7.5s ⠿ 37d5d7efb64e Pull complete 7.6s ⠿ ac563158d721 Pull complete 8.6s ⠿ d2ba16033dad Pull complete 8.7s ⠿ 0ceb82207cd7 Pull complete 8.8s ⠿ 37f2405cae96 Pull complete 16.7s ⠿ e2482e017e53 Pull complete 16.8s ⠿ 70deed891d42 Pull complete 16.9s [+] Running 2/2 ⠿ Container my_wordpress-db-1 Started 0.5s ⠿ Container my_wordpress-wordpress-1 Started 0.9s [root@docker my_wordpress] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e515de5227a wordpress:latest "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:8000->80/tcp my_wordpress-wordpress-1 dac849646e5a mysql:5.7 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 3306/tcp, 33060/tcp my_wordpress-db-1 ip:8000
原文链接:https://blog.csdn.net/kongshuo6/article/details/128537953?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168623078216800213057985%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168623078216800213057985&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-6-128537953-null-null.268%5Ev1%5Ekoosearch&utm_term=docker%E3%80%81wordpress%E3%80%81wordpress%E5%BB%BA%E7%AB%99%E3%80%81wordpress%E4%B8%BB%E9%A2%98%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81