Windows/Mac系统Docker方式安装Mysql(包含utf8)

目录
  • 一、Mac系统下Docker安装
  • 二、Win 10系统下Docker安装
  • 三、安装Mysql

一、Mac系统下Docker安装

访问docker官网:https://www.docker.com/get-started下载Mac版,下载时需要我们登陆Docker账号,因此我们需要先注册一个Docker账号,这个账号在后面启动应用的时候也可以用于登陆。

登陆Docker账号下载,下载后是一个Docker.dmg文件(523.1M),直接双击安装,安装完后,直接点击图标启动Docker,如下图(whaly应是个调皮的鲸鱼)。

下一步完毕之后,就可以在上面见到这个图标,集装箱不跳动的时候就是启动完成。

为了更快速的拉取镜像,可以配置为国内的镜像源。点击图标,选中 Preferences --> Daemon,在Registry mirrors填入国内的Docker容器代理地址,这里推荐阿里云的,也可以用网易云的,这里演示这么获取自己的专属阿里云的容器镜像服务

访问阿里云官网https://www.aliyun.com/登陆账号,进入管理控制台 --> 产品与服务 --> 弹性计算 --> 容器镜像服务 --> 镜像加速器,复制自己的专属加速器地址到Registry mirrors,重启Docker。

二、Win 10系统下Docker安装

访问docker官网:https://www.docker.com,如果有Docker账号的最好先登录账号,单击页面右上角的 ,接下来单击页面的(如果前面没有登录账号的这里会弹出登录页面),在弹出的页面单击Get start with Docker Desktop开始下载

记得中间选择 下载Window版本,这里可能下载比较慢,如果下载比较慢可以到 http://get.daocloud.io/#install-docker-for-mac-windows下载

这里Win 10 系统即可开启 Hyper-V,然后确定重启

但如果开启Hyper-V后,VMware Workstation再启启动镜像时会提示如下错误,且无法启动。如果想正常使用可以将此选项取消,然后为保险再在PowerShell(开始 -> 右键 -> Windows PowerShell 管理员)执行一次 bcdedit /set hypervisorlaunchtype off 。重启系统才能正常使用VMware Workstation。

bcdedit /set hypervisorlaunchtype off

最后就是双击下载的 Docker for Windows Installer.exe 进行安装。

安装完毕后会提示重启系统,会在系统任务栏出现Docker的小图标,可以根据提示在PowerShell(Shift + 右键 ,进行选择)输入 :

docker info
docker version
docker ps
docker images
docker run hello-world

三、安装Mysql

同样可以在阿里云控制台镜像搜索中搜索官方进行mysql

选择第一个,里面有很详细的安装说明,也可以看到支持的版本(标签)有8.0.12,我们这次就安装这个版本,

安装之前推荐看下文档中的“Where to Store Data”部分的说明,方便我们理解在Docker中安装Mysql时为什么默认是将数据库数据映射到自己系统本地文件。

安装的方式有多中,这里直接使用如下的一条命令自动安装,

docker run --restart=always --name mysql8.0 -p 3306:3306 -v ~/soft/mysql/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=**** -d mysql:8.0.12 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

参数解释:更详细的参数说明可查看官网对 docker run 的描述(docker run Description

--restart=always 设置启动Docker后自动运行容器
--name 设置此容器的名字
-p 3306:3306 前面是暴露出去的端口,后面是容器内部的服务端口
-v 本地目录:容器路径 最好指定这个参数,明确将容器的挂载点映射到本地文件夹,这个文件夹中会保存容器的数据,其中包括 mysql 数据的数据
-e MYSQL_ROOT_PASSWORD 设置root用户的密码
-d mysql:tag 指定安装mysql的版本,tag可以选择官方文档提供的可选的版本

查看mysql容器信息

$ docker ps

使用工具(Navicat)连接

连接成功,查看版本,也是我们刚安装的8.0.12的版本。

【说明】 这里需要注意一点的是,官方提供的 MySQL 的 Dockerfile使用的是 debian 系统,默认没有对语言及 utf8 字符集的支持,如下图:

如果不使用 docker 中的 mysql cli 命令就可以直接使用官方镜像,这个是完全没有任何问题的,但如果需要使用 docker 中的 mysql cli 命令,官方的会无法输入 中文字符,并且显示的中文是乱码。此时我们访问 mysql 官方提供的 Dockerfile.debian (https://github.com/docker-library/mysql),下载其中的 8.0 版本到本地(8.0 版本下的 Dockerfile.debian、docker-entrypoint.sh、config 都需要下载),对 Dockerfile 进行如下修改,重点是添加了对 utf8 编码的支持,并设置为本地语言环境为 en_US.utf8(这个在开始时完全够用)。

#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#
# 系统使用 debian 的 buster-slim 镜像
FROM debian:buster-slim

# 设置 uft8 环境
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
    && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8

# 添加 mysql 的用户和组
RUN groupadd -r mysql && useradd -r -g mysql mysql

RUN apt-get update && apt-get install -y --no-install-recommends gnupg dirmngr && rm -rf /var/lib/apt/lists/*

# 添加 gosu,以便从 root 用户轻松降级,更详细可见 https://github.com/tianon/gosu/releases
ENV GOSU_VERSION 1.12
RUN set -eux; \
	savedAptMark="$(apt-mark showmanual)"; \
	apt-get update; \
	apt-get install -y --no-install-recommends ca-certificates wget; \
	rm -rf /var/lib/apt/lists/*; \
	dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
	wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
	wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
	export GNUPGHOME="$(mktemp -d)"; \
	gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
	gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
	gpgconf --kill all; \
	rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
	apt-mark auto '.*' > /dev/null; \
	[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \
	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
	chmod +x /usr/local/bin/gosu; \
	gosu --version; \
	gosu nobody true

RUN mkdir /docker-entrypoint-initdb.d

RUN apt-get update && apt-get install -y --no-install-recommends \
# for MYSQL_RANDOM_ROOT_PASSWORD
		pwgen \
# for mysql_ssl_rsa_setup
		openssl \
# FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
# File::Basename
# File::Copy
# Sys::Hostname
# Data::Dumper
		perl \
# install "xz-utils" for .sql.xz docker-entrypoint-initdb.d files
		xz-utils \
	&& rm -rf /var/lib/apt/lists/*

RUN set -ex; \
# gpg: key 5072E1F5: public key "MySQL Release Engineering <mysql-build@oss.oracle.com>" imported
	key='A4A9406876FCBD3C456770C88C718D3B5072E1F5'; \
	export GNUPGHOME="$(mktemp -d)"; \
	gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
	gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/mysql.gpg; \
	gpgconf --kill all; \
	rm -rf "$GNUPGHOME"; \
	apt-key list > /dev/null

# 添加 mysql 环境变量
ENV MYSQL_MAJOR 8.0
ENV MYSQL_VERSION 8.0.22-1debian10

RUN echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' > /etc/apt/sources.list.d/mysql.list

# the "/var/lib/mysql" stuff here is because the mysql-server postinst doesn't have an explicit way to disable the mysql_install_db codepath besides having a database already "configured" (ie, stuff in /var/lib/mysql/mysql)
# also, we set debconf keys to make APT a little quieter
RUN { \
		echo mysql-community-server mysql-community-server/data-dir select ''; \
		echo mysql-community-server mysql-community-server/root-pass password ''; \
		echo mysql-community-server mysql-community-server/re-root-pass password ''; \
		echo mysql-community-server mysql-community-server/remove-test-db select false; \
	} | debconf-set-selections \
	&& apt-get update \
	&& apt-get install -y \
		mysql-community-client="${MYSQL_VERSION}" \
		mysql-community-server-core="${MYSQL_VERSION}" \
	&& rm -rf /var/lib/apt/lists/* \
	&& rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql /var/run/mysqld \
	&& chown -R mysql:mysql /var/lib/mysql /var/run/mysqld \
# ensure that /var/run/mysqld (used for socket and lock files) is writable regardless of the UID our mysqld instance ends up having at runtime
	&& chmod 1777 /var/run/mysqld /var/lib/mysql

# 指定挂载点为 /var/lib/mysql,也可以通过 docker run -v 宿主机目录:容器中挂载点
VOLUME /var/lib/mysql

# Config files
COPY config/ /etc/mysql/
COPY docker-entrypoint.sh /usr/local/bin/
# backwards compat
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh
# 作用类似于 CMD,但更加灵活复杂,使用后会将 CDM 的内容作为参数传给 ENTRYPOINT 指令
ENTRYPOINT ["docker-entrypoint.sh"]

# 声明运行时暴露的端口(port1 port2 …)。但是在运行时并不会默认暴露这个配置的端口,还是需要 run 的时候指定,
EXPOSE 3306 33060
CMD ["mysqld"]
 

执行如下命令开始构建镜像,这里通过 -f 参数指定 Dockerfile 文件为 Dockerfile.debian,如果使用默认文件名可以不用指定。

docker build -t mysql-utf8:8.0.22 -f ./Dockerfile.debian .

构建成功后可以通过 docker images 查看刚才构建出的 mysql 镜像。

最后我们使用这个镜像,通过如下命令启动一个容器

docker run --name mysql8.0 -p 33307:3306 -v /u01/docker-mysql/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root用户密码 -d mysql-utf8:8.0.22 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 

此时进入容器后,发现已经支持了 utf8

如果是直接在linux系统下安装mysql5.X或者8.X版本可参考我的另一篇博客Centos7环境下离线安装mysql 5.7 / mysql 8.0

参考资料:https://hub.docker.com/r/_/mysql/

到此这篇关于Windows/Mac系统Docker方式安装Mysql(包含utf8)的文章就介绍到这了,更多相关Docker安装Mysql内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mac 中docker安装mysql的图文教程

    今天在Docker中安装了MySQL ,是自己打的docker包. 首先新建Dockerfile 内容如下: FROM mysql:latest MAINTAINER abel.yang <527515025@qq.com> LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="latest" RUN apt-get

  • Mac上将brew安装的MySql改用Docker执行操作过程

    docker是最近大热的技术,堪称技术界的网红.本着技术人折腾的本性,尝试将本地的MySql服务器改成用docker执行,本文记录折腾过程,以作备忘. 步骤如下: 1:安装docker 自己找文档去 2:使用mysql官方发布的docker image,命令如下 docker pull mysql/mysql-server:5.7.16 ##(这是本文发布时候MySql最新稳定版,并且最好和本地的Mysql版本一致,否则第三步可能会有问题.) 因为GFW的缘故,这个过程有点漫长.命令执行完之后,

  • Windows/Mac系统Docker方式安装Mysql(包含utf8)

    目录 一.Mac系统下Docker安装 二.Win 10系统下Docker安装 三.安装Mysql 一.Mac系统下Docker安装 访问docker官网:https://www.docker.com/get-started下载Mac版,下载时需要我们登陆Docker账号,因此我们需要先注册一个Docker账号,这个账号在后面启动应用的时候也可以用于登陆. 登陆Docker账号下载,下载后是一个Docker.dmg文件(523.1M),直接双击安装,安装完后,直接点击图标启动Docker,如下图

  • Windows 下noinstall方式安装 mysql 5.7.5 m15 winx64(推荐)

    下载解压不说 我解压在:E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64 添加配置文件E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64\my.ini ####################配置文件开始################### [client] default-character-set=utf8 [mysqld] port=3306 basedir ="E:\DBFiles\m

  • 在docker中安装mysql详解

    在docker中安装mysql ubuntu官方镜像是精简的ubuntu系统,很多软件和库没有安装,所以直接安装mysql的话依赖较多,建议直接从源码编译安装mysql 通过命令行安装 先启动一个容器,建议可以创建一个包含常用工具的便于自己使用的基本镜像,比如:包含vim.net-tools.添加阿里云镜像 1.安装编译环境 需要gcc.cmake等环经,因为使用ubuntu的官方源较慢,所以要添加阿里云的源,但是注意,不要覆盖原来ubuntu的源,将阿里云的源放在/etc/apt/source

  • Linux下rpm方式安装mysql教程

    每次安装总是有些不同,这次用这种方式尝试一下,也记录一下. 1.首先需要去下载rpm包: 镜像地址:http://mysql.mirrors.pair.com/Downloads/ 根据不同的版本选择下载即可,我下载的是: MySQL-server-5.6.20-1.el6.i686.rpm MySQL-client-5.6.20-1.el6.i686.rpm MySQL-devel-5.6.20-1.el6.i686.rpm(这个包备用) 因为采用rpm方式安装mysql的话,那么只安装好my

  • 在windows上用docker desktop安装部署StoneDB

    目录 1.安装Docker desktop 1.1 下载 1.2 安装 1.3 安装WSL 2核心 1.4 安装Docker desktop完成 1.5.配置镜像加速 2.用docker安装StoneDB 2.1 拉取StoneDB镜像 2.2 创建容器 2.3 连接StoneDB数据库 自6月底开源以来,许多热心的社区用户都对StoneDB进行了编译和测试,也有一些用户询问StoneDB是否会支持Windows.虽然适配Windows版本的StoneDB尚未进入研发计划,但实际上我们也可以通过

  • linux采用binary方式安装mysql

    本文实例为大家分享了linux采用binary方式安装mysql的具体步骤,供大家参考,具体内容如下 1.下载binary文件 在官网上下载 mysql-5.6.36-linux-glibc2.5-i686.tar.gz. 2.解压文件并移动到/usr/local/mysql目录下 tar -zxvf mysql-5.6.36-linux-glibc2.5-i686.tar.gz 3.创建用户组和用户并配置 groupadd mysql useradd mysql -g mysql chown

  • VMware中安装CentOS7(设置静态IP地址)并通过docker容器安装mySql数据库(超详细教程)

    一位读大二的学弟问我怎么安装配置这些,我简单的整了一个教程,这里记录一下,并分享给需要的朋 安装过程学习使用足够,实际工作中有些繁琐的配置略过了! 打开VM虚拟机,菜单栏[文件]-->选择[新建虚拟机],选择"o自定义(高级)"-->[下一步] 默认一直点[下一步]到选择安装盘的位置,选择自己已经下载好的官方DVD镜像文件(不要整别的镜像,避免走不必要 的坑) [下一步]设置虚拟机名称(取一个合适的名称,设置合适的路径) 处理器设置默认,安装好虚拟centos后可以根据情况

  • docker如何安装mysql

    最近在部署django,不想在手动安装一遍mysql,便尝试使用docker,总结了安装的心得,这些前提都是在安装了docker后: 1. 查看mysql镜像: docker search mysql 2.有镜像,直接拉取最新镜像 docker pull mysqlv:latest 3.启动mysql镜像 ```shell docker run –name w-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest –na

  • 在windows server 2012 r2中安装mysql的详细步骤

    MySQL1.首先去MySQL的官网下载安装包 2.其他下载需要登录,选择下面的直接安装 3.然后解压到文件夹中(本文解压C:\mysql-8.0.29-winx64),并配置初始化的mi.ini文件(创建my.ini文件并把以下内容粘贴进去,记得先在解压路径下创建data文件夹哦),文件创建好后放到解压路径:C:\mysql-8.0.29-winx64 下文件内容:[mysql]设置mysql客户端默认字符集default-character-set=utf8[mysqld]设置3306端口p

  • 通过yum方式安装mySql数据库的全过程

    目录 Yum方式安装mysql服务 修改密码: 总结 Yum方式安装mysql服务 步骤一:首先下载mysql的yum源配置 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 步骤二:安装mysql的yum源 yum -y install mysql57-community-release-el7-11.noarch.rpm 步骤三:yum方式安装mysq yum -y install mysql-

随机推荐