一、生成镜像

方法一:通过Dockerfile

1、新建目录 mysql  D:\docker\docker应用池\mysql

mysql目录下创建三个目录 /home/mysql /logs /conf/my.cnf

home目录将映射为mysql容器配置的数据文件存放路径

logs目录将映射为mysql容器的日志目录

conf目录里的配置文件将映射为mysql容器的配置文件

conf中增加文件my.cnf

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysqlsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONlog_error = /logs/error.log#慢查询sql日志设置
slow_query_log = 1character-set-server=utf8mb4#跨库查询
federated

2、进入创建的mysql目录,创建Dockerfile

FROM debian:jessie# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
RUN groupadd -r mysql && useradd -r -g mysql mysql# add gosu for easy step-down from root
ENV GOSU_VERSION 1.7
RUN set -x \&& apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \&& wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc" \&& export GNUPGHOME="$(mktemp -d)" \&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \&& gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \&& rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \&& chmod +x /usr/local/bin/gosu \&& gosu nobody true \&& apt-get purge -y --auto-remove ca-certificates wgetRUN mkdir /docker-entrypoint-initdb.d# 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
RUN apt-get update && apt-get install -y perl pwgen --no-install-recommends && rm -rf /var/lib/apt/lists/*# gpg: key 5072E1F5: public key "MySQL Release Engineering <mysql-build@oss.oracle.com>" imported
RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys A4A9406876FCBD3C456770C88C718D3B5072E1F5ENV MYSQL_MAJOR 5.6
ENV MYSQL_VERSION 5.6.31-1debian8RUN echo "deb http://repo.mysql.com/apt/debian/ jessie mysql-${MYSQL_MAJOR}" > /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-server="${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 777 /var/run/mysqld# comment out a few problematic configuration values
# don't reverse lookup hostnames, they are usually another container
RUN sed -Ei 's/^(bind-address|log)/#&/' /etc/mysql/my.cnf \&& echo 'skip-host-cache\nskip-name-resolve' | awk '{ print } $1 == "[mysqld]" && c == 0 { c = 1; system("cat") }' /etc/mysql/my.cnf > /tmp/my.cnf \&& mv /tmp/my.cnf /etc/mysql/my.cnfVOLUME /var/lib/mysqlCOPY docker-entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]EXPOSE 3306
CMD ["mysqld"]

3、通过Dockerfile创建镜像,替换名字

 docker build -t mysql .

4、创建完成

通过 docker images 查看刚创建成功的镜像

方式二:官网拉镜像

1、查找mysql镜像

docker search mysql

2、拉取镜像 mysql-5.7

docker pull mysql:5.7

3、拉取完成

二、启动mysql镜像

命令:

docker run -p 3306:3306 --name mymysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/home/mysql/data:/var/lib/mysql/ -v $PWD/home/mysql/mysql-files/:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

命令说明:

  • -p 3306:3306:将容器的3306端口映射到主机的3306端口

  • -v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf

  • -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs

  • -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data

  • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

三、查看容器状态

docker ps

可以通过数据库连接工具连接数据库 连接容器3306端口,数据库名称选择:sys

用户名选择:root 密码选择:123456 可以建立连接。证明数据库安装成功

附录(基础):

1、Docker的环境安装(基于win10)_无敌小田田的博客-CSDN博客_docker安装 win10

2、Docker的环境安装(基于Linux)_无敌小田田的博客-CSDN博客

3、Docker命令大全_无敌小田田的博客-CSDN博客

docker安装:

4、Docker安装sprintboot,打包与部署_无敌小田田的博客-CSDN博客

5、Docker安装常用软件-Centos_无敌小田田的博客-CSDN博客

6、Docker安装常用软件-Nginx_无敌小田田的博客-CSDN博客

7、Docker安装常用软件-Mysql_无敌小田田的博客-CSDN博客

8、Docker安装常用软件-Tomcat_无敌小田田的博客-CSDN博客

9、Docker安装常用软件-Redis_无敌小田田的博客-CSDN博客

Docker安装常用软件-Mysql相关推荐

  1. 【docker11】docker安装常用软件

    目录 docker安装常用软件 1.安装软件说明 1.安装tomcat 2.安装mysql 2.1简单版 2.2实战版本 3.安装redis docker安装常用软件 1.安装软件说明 框架图 总体步 ...

  2. 四、docker系列之docker安装常用软件

    docker安装常用软件 目录 docker安装常用软件 docker安装运行redis 一.DockerHup redis仓库 二.镜像拉取 三.镜像启动 四.参数解析 docker安装运行mysq ...

  3. Docker安装常用软件/JAVA/大数据

    Docker安装常用软件 文章目录 Docker安装常用软件 一.Docker安装 1. Windows安装Docker Desktop 2. Centos安装Docker 二.大数据组件安装 1. ...

  4. Docker 安装常用软件(超全、超实用)

    容器化概念越来越普及,很多公司都在往这个方向发展,也有不少公司在招聘要求上提到这点.Docker就是一个出色的.开源的应用容器引擎.只需要一条命令就可安装一个软件环境,非常方便. 安装Docker 以 ...

  5. 使用docker安装常用软件

    大家好,我是音乐家. 在docker的自行摸索中,确实踩过很多坑,耽误过很多时间.接下来我会一一讲解常用软件的下载.亲测有效! 目录 1.安装mysql 2.安装mongodb 3.安装rabbitm ...

  6. docker安装常用组件(mysql,redis,postgres,rancher,Portainer,蝉道,JIRA,sonarqube,Confluence,pgadmin4,harbor)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 docker安装mysql docker search mysql 搜索 docker pull mysql:5.6 下载 docker images ...

  7. Docker安装常用软件

    一.基本要用到的几个命令 其实记住下面这两个就行了 docker --help:列出所有命令及其说明 docker COMMAND --help:单个命令的用法 其中安装软件需要用到的 search: ...

  8. Docker 安装一些软件命令

    Docker 安装一些软件命令 一.Docker的安装 1. Ubuntu系 2. Centos系 二.Docker可视化控制面板--Portainer汉化版 三.Docker运行Mysql 四.Do ...

  9. (七) Docker安装常规软件

    Docker安装常规软件 一.安装tomcat 1.docker hub上面查找tomcat镜像 2.从docker hub上拉取tomcat镜像到本地 3.docker images查看是否有拉取到 ...

最新文章

  1. Linux命令学习-mv命令
  2. python 等值线 标注 间距、控制_python - Matplotlib-Contourf-如何使刻度线间距不均匀? - 堆栈内存溢出...
  3. boost::gregorian模块实现打印假期的测试程序
  4. 物联网python教程慕课_物联网小白入门
  5. 合肥.NET俱乐部第二期技术沙龙活动预告
  6. 基于 websocket 实现的 im 实时通讯案例
  7. 外服封号_王者荣耀外服玩家被封号十年吐槽无辜,官方复审后,玩家表示轻了...
  8. struts-step
  9. Web Service Compression for .NET CF 3.5
  10. 【动态规划】路径dp:蓝桥2020: 数字三角形
  11. nginx服务器怎么配置文件,nginx服务器搭建和配置(nginx怎么搭配配置服务器)
  12. 学习RedHat7第一课
  13. Mirth Connect 第二章 什么是通道?
  14. Windows 10系统中修改用户名的方法
  15. Qt下使用QAxObject进行Word转换为PDF出现错误 error: undefined reference to `QAxObject::QAxObject(QObject*)‘
  16. 如何防止form表单的重复提交
  17. 安卓模拟器配置全局代理
  18. layui动态添加的表单元素显示异常
  19. 计算机中符号位正负,负数在计算机中的表示+有符号无符号的区别+负数按位运算...
  20. Win10修改远程桌面3389端口

热门文章

  1. css常用代码大全,html+css代码
  2. 管中窥豹!从冠德石油看数字化对加油站的影响力
  3. mysql 开窗函数 累加_开窗函数在MySql中的使用
  4. 探寻C++读取文件最快的方式
  5. spring mvc使用@InitBinder 标签将日期格式字符串转换成Timestamp类型
  6. Android 大转盘 好用的示例
  7. Linux中gcc编译步骤
  8. Openlayers 热力图和权重热力图
  9. 取消开机按F1的解决方法
  10. 谷歌Chrome将消灭火狐甚至Safari