01 什么是 OrbStack
OrbStack 是 macOS 上提供使用快速运行 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 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 执行 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
参数介绍
- version:
version
是**必须指定
**的,而且总是位于文件的第一行
。它定义了Compose 文件格式
(主要是 API)的版本,而不是 Docker 引擎或是 Docker Compose 的版本 - services:用于定义不同的应用服务。这里services下的
db
表示服务名称(此处可以取任意名称),服务都是被Docker Compose部署在各自容器当中 - image:指定
镜像tag
或者镜像ID
。image是**必须指定
**的,或者可以选择与build存在其一(version1版本不支持同时存在
)。 - restart:重启策略,默认no,可选:always,no-failure,unless-stopped
- platform:支持的运行平台。
- container_name:容器名称
- environment:添加环境变量。这里是为数据库指定数据库名称,用户名称,密码,root密码
- ports:用于暴露端口。
[在宿主环境/主机暴露的端口]:[容器内部暴露的端口]
,此外与之类似的还有一个**expose
,不过expose暴露的端口只提供给容器
使用,而不会暴露给主机/宿主环境** - volumes:挂载数据卷。上述表示将主机的./db-data 挂载到容器的/var/lib/mysql 上,访问/var/lib/mysql 就相当于访问主机的./db-data,数据写入也会同步到主机上。
在指定的目录下创建好 docker-compose.yml
后,cd 到当前目录,通过 docker compose up -d
启动