3

引言

当你本地没有mysql或本地mysql版本与需要的版本不对应时,这时不用在本地折腾安装或切换版本,用docker拉取myql镜像启动服务就可以解决所面临的问题。

推荐一篇介绍docker的优秀文章

Docker 架构

Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是类,容器是镜像运行时的实例。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库(Repository)是集中存放镜像的地方。
docker官方仓库: docker hub

1.Docker Compose 来管理你的容器

总体步骤:
首先创建一个 docker-compose.yml 文件,并在其中定义服务、网络、卷等配置。然后,你可以使用 docker compose up 命令来启动并管理这些服务。(docker-compose.yml 修改后的第一次用docker compose up启动服务,之后使用docker compose start)
示例:docker-compose.yml 文件

# Use root/example as user/password credentials
version: '3.1'

services:

  db:
    image: mysql
    # NOTE: use of "mysql_native_password" is not recommended: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password
    # (this is just an example, not intended to be a production configuration)
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

上面的示例中:启动了两个服务,db和adminer
MYSQL_ROOT_PASSWORD: example 为root用户设置密码
image: adminer 使用dminer的镜像。adminer是一个流行的数据库管理工具,特别是用于MySQL和MariaDB。
restart: always 这是一个重启策略
可以在浏览器访问

2.Docker CLI 来运行一个 MySQL 容器

获取镜像

docker hub找到默认的您需要的镜像

在终端执行docker pull mysql命令

docker pull mysql默认下载最新版本的mysql, docker pull mysql:xx 可以指定xx为您想要的版本。

引用:浅谈 docker【理论向】

镜像是分层的。

  1. 有基础镜像,仅仅包含操作系统,比如 ubuntu 镜像。
  2. 有中间件镜像,比如 mysql 等数据库镜像。
  3. 最后是应用镜像,就是指具体的应用服务了。

如下图:
图片
红圈就是基础镜像 ubuntu 操作系统;蓝圈就是中间件镜像 mysql 数据库;;绿圈就是应用镜像。

由于镜像是分层的,获取的时候也需要一层一层的pull,只有等上一层pull complete 下一层才开始pull

docker images 来列出本地主机上的镜像

REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

运行容器

们可以直接使用这个镜像来运行容器。
官方这样说:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

在这个命令中:

--name some-mysql 为容器指定一个名称。
-e MYSQL_ROOT_PASSWORD=my-secret-pw 设置 MySQL 的 root 密码。
-d 使容器在后台运行。
mysql:tag 是你想要运行的 MySQL 镜像和标签。

这样容器就已经起来了


吴季分
390 声望13 粉丝