OrbStack 一个轻量化 Docker 与 Linux 工具 |豆包MarsCode AI 刷题

1,401 阅读2分钟

01 什么是 OrbStack

OrbStackmacOS 上提供使用快速运行 Docker 和 Linux 虚拟机的工具,启动响应很快,对比 Docker GUI 速度快很多。

02 使用 OrbStack 安装 MySQL

Docker Compose 构建 Docker 容器

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YAML 文件(后缀名 .yml)来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务(默认使用的配置文件名称为 docker-compose.yml)。OrbStack 内部自动集成 docker-compose,因此无需重复安装,开箱使用

Docker Compose 核心概念

Docker Compose将所管理的容器分为三层,分别是工程(project)服务(service)以及容器(container)

Docker Compose 使用的三个步骤:

  1. 使用 Dockerfile 定义应用程序的环境。
  2. 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  3. 执行 docker-compose up 命令来启动并运行整个应用程序。
# docker-compose.yml
version: "3.3"
services:
  db:
    image: mysql:5.7
    restart: always
    platform: linux/amd64
    container_name: dataDB
    environment:
      MYSQL_DATABASE: "niumu"
      # So you don't have to use root, but you can if you like
      MYSQL_USER: "user"
      # You can use whatever password you like
      MYSQL_PASSWORD: "123654"
      # Password for root access
      MYSQL_ROOT_PASSWORD: "123654"
    ports:
      # <Port exposed> : <MySQL Port running inside container>
      - "3306:3306"
    volumes:
      - ./db-data:/var/lib/mysql

参数介绍

  1. version:version 是**必须指定**的,而且总是位于文件的 第一行。它定义了 Compose 文件格式(主要是 API)的版本,而不是 Docker 引擎或是 Docker Compose 的版本
  2. services:用于定义不同的应用服务。这里services下的db表示服务名称(此处可以取任意名称),服务都是被Docker Compose部署在各自容器当中
  3. image:指定镜像tag或者镜像ID。image是**必须指定**的,或者可以选择与build存在其一(version1版本不支持同时存在)。
  4. restart:重启策略,默认no,可选:always,no-failure,unless-stopped
  5. platform:支持的运行平台。
  6. container_name:容器名称
  7. environment:添加环境变量。这里是为数据库指定数据库名称,用户名称,密码,root密码
  8. ports:用于暴露端口。 [在宿主环境/主机暴露的端口]:[容器内部暴露的端口],此外与之类似的还有一个**expose,不过expose暴露的端口只提供给容器使用,而不会暴露给主机/宿主环境**
  9. volumes:挂载数据卷。上述表示将主机的./db-data 挂载到容器的/var/lib/mysql 上,访问/var/lib/mysql 就相当于访问主机的./db-data,数据写入也会同步到主机上。

在指定的目录下创建好 docker-compose.yml 后,cd 到当前目录,通过 docker compose up -d 启动

image.png