DevOps
docker
docker
  • 基础知识
    • 概述
      • 核心概念
      • Docker 引擎
      • 基本架构
      • 联合文件系统
      • 网络虚拟化
    • 安装
      • 安装Docker Engine
      • 以非 root 用户使用 Docker
      • 配置 Docker 服务
    • 3. Docker镜像
      • 3.1 获取镜像(pull)
      • 3.2 查看镜像信息
        • images
        • tag
        • inspect
        • history
      • 3.3 搜寻镜像(search)
      • 3.4 删除镜像(rmi)
      • 3.5 清理镜像(prune)
      • 3.6 创建镜像
        • 基于已有容器创建
        • 基于本地模板导入
        • 基于Dockerfile创建
      • 3.7 导出镜像(save)
      • 3.8 导入镜像(load)
      • 3.9 上传镜像(push)
    • 4. Docker容器
      • 4.1 新建容器(create)
      • 4.2 启动容器(start)
      • 4.3 新建并启动容器(run)
      • 4.4 查看容器输出(logs)
      • 4.5 暂停容器(pause)
      • 4.6 恢复容器(unpause)
      • 4.7 停止止容器(stop)
      • 4.8 清除容器(prune)
      • 4.9 重启容器(restart)
      • 4.10 进入容器
      • 4.11 删除容器(rm)
      • 4.12 导出容器(export)
      • 4.13 导入容器(import)
      • 4.14 查看容器详情(inspect)
      • 4.15 查看容器内进程(top)
      • 4.16 查看统计信息(stats)
      • 4.17 复制文件(cp)
      • 4.18 查看变更(diff)
      • 4.19 更新配置(update)
    • 5. Docker仓库
      • 5.1 Docker Hub
      • 5.2 本地私有仓库
        • 使用HTTPS协议
        • 添加用户认证
        • 使用push时遇到的一些坑
    • 6. Docker数据管理
      • 6.1 数据卷
      • 6.2 数据卷容器
      • 6.3 利用数据卷容器来迁移数据
    • 7. 端口映射与容器互联
      • 7.1 端口映射
      • 7.2 容器互联
    • 8. Dockerfile
      • 8.1 基本结构
      • 8.2 指令说明
        • ARG
        • FROM
        • LABEL
        • EXPOSE
        • ENV
        • ENTRYPOINT
        • VOLUME
        • USER
        • WORKDIR
        • ONBUILD
        • STOPSIGNAL
        • HEALTHCHECK
        • SHELL
        • RUN
        • CMD
        • ADD
        • COPY
      • 8.3 创建镜像
      • 8.4 最佳实践
    • 9. Compose
      • 9.1 安装
      • 9.2 Compose文件
        • 9.2.1 services
        • 9.2.2 networks
        • 9.2.3 多文件Compose
          • Extend
          • Merge
          • Include
        • 9.2.4 锚点和别名
      • 9.3 Compose命令
      • 9.4 实例
  • 中间件安装
    • 安装tomcat
    • 安装redis
      • 单机
      • Cluster集群
    • 安装mysql
    • 安装ssh服务
      • 基于commit命令创建
      • 使用Dockerfile创建
    • 安装Apache
    • 安装ngnix
  • 操作系统镜像
    • BusyBox
    • ☑️Alpine
    • Debian/Ubuntu
    • CentOS/Fedora
  • Tips
    • docker 引擎开启远程访问
    • dockerfile-maven-plugin
    • IDEA 连接远程 docker
Powered by GitBook
On this page
  • 获取镜像
  • 拉取镜像:
  • 单节点安装
  • 创建目录
  • 添加配置
  • 运行容器
  • 测试
  • 主从复制安装

Was this helpful?

Edit on GitHub
  1. 中间件安装

安装mysql

PreviousCluster集群Next安装ssh服务

Last updated 1 year ago

Was this helpful?

获取镜像

进入网站,搜索mysql的镜像

选择官方认证的排在前面的镜像,点击进入详情页面,通过 tag 选择版本号

阅读页面中How to use this image.

拉取镜像:

docker pull mysql[:tag]

单节点安装

创建目录

# 增加mysql用户
useradd mysql
passwd mysql

# 创建归属于mysql的目录,用于存储mysql相关文件
mkdir /media/mysql
mkdir /media/mysql/conf.d
mkdir /media/mysql/datadir
chown -R mysql:mysql /media/mysql

# 进入mysql用户的bash环境
su mysql

mkdir -p /media/mysql/password
# 输入密码(不规范的,只是用作说明)
echo "123456" > /media/mysql/password/root-pw.txt
echo "123456" > /media/mysql/password/hive-pw.txt
exit

添加配置

注意:配置文件应使用 .cnf 扩展名

文件全限定名:/media/mysql/conf.d/mysql.cnf

vim /media/mysql/conf.d/mysql.cnf
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
chown mysql:mysql /media/mysql/conf.d/mysql.cnf

运行容器

# 获取用户的UID和GID
id mysql

# some-mysql:自定义容器名称
# --user 1001:1001:以指定用户(UID:GID)启动mysql服务(只能是ID,不能是用户名和组名)
# -v /my/custom:/etc/mysql/conf.d:自定义配置文件的防止目录
# -v /my/own/datadir:/var/lib/mysql: mysql数据放入宿主机的/my/own/datadir目录下
# MYSQL_ROOT_PASSWORD_FILE:指定用于存储root用户的密码的文件
# MYSQL_ROOT_PASSWORD:root用户的密码,,以命令行方式进行指定,存在安全隐患
# MYSQL_PASSWORD_FILE:指定用于存储新建用户的密码的文件,如果设置了MYSQL_DATABASE,则该用户会成为db的#					  超级用户
# MYSQL_PASSWORD:新建用户的密码,以命令行方式进行指定
docker run --name mysql-server \
--user 1001:1001 \
-p 3306:3306 \
-v /media/mysql/password:/run/secrets \
-v /media/mysql/conf.d:/etc/mysql/conf.d \
-v /media/mysql/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/root-pw.txt \
-e MYSQL_DATABASE=metastore \
-e MYSQL_USER=hive \
-e MYSQL_PASSWORD_FILE=/run/secrets/hive-pw.txt \
-d mysql[:tag]

测试

# 进入容器
docker exec -it mysql-server /bin/bash

# 进入mysql的命令行客户端
mysql -uroot -p123456
mysql> SHOW VARIABLES LIKE "character%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> SHOW CREATE DATABASE warehouse;
+-----------+-----------------------------------------------------------------------+
| Database  | Create Database                                                       |
+-----------+-----------------------------------------------------------------------+
| warehouse | CREATE DATABASE `warehouse` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+-----------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)

主从复制安装

docker hub