本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动mysql服务接受外部连接

步骤:

1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下

  1. FROM centos:centos6
  2. MAINTAINER Fanbin Kong "kongxx@hotmail.com"
  3. RUN yum install -y mysql-server mysql
  4. RUN /etc/init.d/mysqld start &&\
  5. mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&\
  6. mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&\
  7. mysql -u root -pletmein -e "show databases;"
  8. EXPOSE 3306
  9. CMD ["/usr/bin/mysqld_safe"]

2. 在Dockerfile所在目录下运行build命令来生成image文件,这里使用mysql_server作为image文件名

  1. sudo docker build -t mysql_server .

运行完build命令后,可以使用“sudo Docker images”来查看。

3. 启动容器

3.1 首先使用下面的命令来启动容器

  1. sudo docker run --name=mysqlserver -d -P mysql_server

启动完容器后,可以使用“sudo docker ps”来查看,此时可以看PORTS列内容为“0.0.0.0:49153->3306/tcp”,容器的3306端口会被映射到宿主机器的49153端口,这样我们就可以通过宿主机器的49153端口来连接了,比如:

  1. mysql -h <宿主机器> -u root -pletmein -P 49153

3.2 另外在运行容器的时候也可以通过下面的命令

  1. sudo docker run --name=mysqlserver -d -p 3306:3306 mysql_server

此时容器的3306端口会被映射到宿主机器的3306端口,这样我们就可以通过宿主机器的3306端口访问mysql了

  1. mysql -h <宿主机器> -u root -pletmein

3.3 还有一种情况就是为了安全考虑,我只希望当前的宿主机器可以访问mysql服务,此时我们可以

    1. sudo docker run --name=mysqlserver -d -p 127.0.0.1:3306:3306 mysql_server

Dockerfile创建MySQL容器的更多相关文章

  1. docker学习笔记4:利用docker hub上的mysql镜像创建mysql容器

    docker hub上有官方的mysql镜像,我们可以利用它来创建mysql容器,作为一个服务容器使用. 1.下载mysql镜像 docker pull mysql 2.创建镜像 docker run ...

  2. dockerfile创建php容器(安装memcached、redis、gd、xdebug扩展)

    dockerfile创建php容器(含有memcached.redis.gd.xdebug扩展) 代码如下: FROM php:7.2-fpm COPY redis-3.1.6.tgz /home/r ...

  3. Docker | Compose创建mysql容器

    本文通过Docker Compose来创建mysql容器 在linux服务器上创建文件,用于管理容器 mkdir docker-mysql cd docker-mysql vim docker-com ...

  4. Docker创建Mysql容器并通过命令行连接到容器

    拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker ...

  5. 使用docker创建MySQL容器,并在springboot中使用

    最近在看网上找了个springboot的项目试试,在项目中需要的MySQL版本是5.7,但是本机的MySQL只有5.5.因此想着在我的服务器上跑一个MySQL:5.7的容器解决这一问题,但是在实际操作 ...

  6. 使用docker创建mysql容器

    1.拉取mysql容器   docker pull mysql:5.7

  7. Docker创建MySQL容器环境两部曲

    1:下载MySQL镜像 需要执行以下命令,确保主机或者VM联网,从官网下载mysql的最新镜像(镜像版本以官网为主) docker  pull  mysql 下载成功后执行 docker image ...

  8. docker创建mysql容器,并挂载数据+配置

    新建:/my/mysql/my.cnf (准备挂载配置文件用) 将以下内容拷贝进去(或者启动一个docker的mysql,并且把/etc/mysql/my.cnf中的内容拷贝出来) # Copyrig ...

  9. Docker 创建 mysql 容器

    docker -v Docker version 18.06.1-ce, build e68fc7a   拉取 docker mysql 最新的镜像 docker pull mysql   Using ...

随机推荐

  1. Frobenius inner product

    https://en.wikipedia.org/wiki/Frobenius_inner_product Frobenius norm

  2. ubuntu编译内核模块报错:Required key not available 的解决

    系统为ubuntu18.04, 在编译内核模块insmod helloworld.ko的时候提示如下错误. 出现此问题的原因是,Ubuntu Kernel 使用 EFI_SECURE_BOOT_SIG ...

  3. IE下获取不到Response添加的cookie的解决方法

    原博客地址: http://blog.csdn.net/wjdd1/article/details/16341189 在百度上查询了好久也没有查询到结果,于是自己用ie的开发者工具进行跟踪,JSESS ...

  4. 从 零开始 无差错 装好nginx+PHP

    由于这两天 一直有人追问 nginx为何报错,为何php没装好啥的,大多原因是 : 1.编译与yum混合安装,导致很多包的路径不对,进而报错 2.yum源比较旧,导致 与新版本的php不匹配 3.安装 ...

  5. 谷歌浏览器chrome上的firepath ----chropath

    图标如下 功能:获取相对xpath,绝对xpath和CSS选择器.在devtools面板中编辑,检查并验证XPath和CSS选择器. 使用方法

  6. 【LeetCode】【动态规划】Generate Parentheses(括号匹配问题)

    描述 Given n pairs of parentheses, write a function to generate all combinations of well-formed parent ...

  7. DevExpress实用心得:XtraGridControl动态添加右键菜

    在使用GridControl的时候经常需要添加右键菜单. 一般的做法是自己创建菜单项,然后注册GridView的Mouse-Click事件,然后Show出定义好的菜单. 但是涉及到一些单击事件会收到编 ...

  8. vim 的复制粘贴命令,以及使用寄存器来存放要复制的内容;

    一,y(yanks)复制,p(paste)粘贴: yy 复制当前行,2yy,复制2行: Y  复制整行:Y=yy; p 粘贴到光标后: P 粘贴到光标前: 注意vim会知道你复制内容的是整行还是一个矩 ...

  9. JavaWeb中文件的上传和下载

    JavaWeb中文件的上传和下载 转自: JavaWeb学习总结(五十)——文件上传和下载 - 孤傲苍狼 - 博客园https://www.cnblogs.com/xdp-gacl/p/4200090 ...

  10. BI入门经典(转载)

    原帖地址:http://blog.csdn.net/sgtzzc/archive/2009/10/10/4649770.aspx [前言] 昨天论坛的SQL Server大版新增了一个BI板块,大家讨 ...