Docker Compose 教程

Docker Compose 是一个 Docker 容器的依赖管理工具。 例如我们一个服务需要依赖到多个 Docker 容器,那么使用 Docker Compose 这个工具就能很方便的帮助我们管理。

Docker Compose 通过配置文件 .yml。 定义了所有容器的依赖关系。 然后我们只需把我们想要的 Docker 相关容器信息写到的 .yml 配置文件中,剩下的就可以交给 Docker Compose。

安装 Docker Compose

我现在使用的是 Ubuntu 22.04 这个发行版,安装 Docker Compose 十分简单,只需要下面这条命令。

复制代码
sudo apt install docker-compose // 只需要这条命令

使用 Docker Compose 安装 Wordpress

我们可以在这个地址 Wordpress | Docker Hub 找到 Wordpress 的 Docker yml 信息,如下:

bash 复制代码
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

这只信息包含了两个容器服务:

  • 第一个是:wordpress 的 PHP 代码。
  • 第二个是:Mysql 数据服务器。

这两个也是运行 Wordpress 所需要的服务。 关于上面这个 Docker 的 .yml 文件里,我们需要关注下面这几个信息:

  • image: Docker 的镜像名称。
  • ports: 服务启动的端口。
  • environment: 服务的环境相关信息,通常是一些账号密码。 db 部分是 mysql 的账号密码,wordpress 部分是 wordpress 需要登录 mysql 的账号密码(也就是填写 db 部分)。
  • volumes: 运行目录。

安装步骤

bash 复制代码
// 1. 我们到我们的 home 目录(可以在任何目录)
cd ~

// 2. 新建一个 wordpress 的目录
mkdir wordpress

// 3.  创建一个 docker-compose.yml 文件,把上面的配置信息写到这个文件里面
touch docker-compose

常用命令

执行完上面几步,我们需要用到这几个 Docker Compose 的常见命令:

bash 复制代码
// 创建实例 | 执行这个命令就创建出 .yml 里面配置的 image 实例,有点像 docker run
// 创建实例后,我们可以用 docker-compose stop / docker-compose start 启动和暂停实例
docker-compose up -d

// 删除实例
docker-compose down

// 列出目前正在运行相关容器服务
docker-compose ps

// 启动
docker-compose start
相关推荐
数据知道28 分钟前
容器化部署:用Docker封装机器翻译模型与服务详解
docker·容器·机器翻译
桦说编程3 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen3 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研3 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
没有bug.的程序员4 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋4 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
阿华的代码王国5 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Zyy~5 小时前
《设计模式》装饰模式
java·设计模式
A尘埃5 小时前
企业级Java项目和大模型结合场景(智能客服系统:电商、金融、政务、企业)
java·金融·政务·智能客服系统
青云交5 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图