`
baobeituping
  • 浏览: 1079815 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

使用Docker安装Mysql

 
阅读更多

最近使用阿里云服务器,学习一下Docker,今天学着使用Docker安装MySQL。

首先,从阿里云的Docker Hub 上pull一个MySQL的image.

复制代码
[centos@loovelj~]$ docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7
5.7: Pulling from acs-sample/mysql
d4bce7fd68df: Pull complete 
a3ed95caeb02: Pull complete 
01588229585e: Pull complete 
ada32b818a1a: Pull complete 
ac7528e308ac: Pull complete 
44e3fb8779c7: Pull complete 
bfcca86efc6a: Pull complete 
32da415dff2e: Pull complete 
aae6d9712a36: Pull complete 
3148136ce9cc: Pull complete 
Digest: sha256:32ff2f404c3bd199aaec2e6d19d91d59673e40d7394732124f91dd72a2e1ed97
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7
复制代码

查看下载镜像,就会看到已经有了

[centos@loovelj~]$ docker images
REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
test/ubuntu                                          v1.0                523e7db0e264        11 minutes ago      98.3MB
ubuntu                                               latest              dd6f76d9cc90        7 days ago          122MB
hello-world                                          latest              725dcfab7d63        8 days ago          1.84kB
registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql   5.7                 ec7e75e5260c        23 months ago       360MB

 

名字太长,修改为短的tag

复制代码
[centos@loovelj~]$ docker tag registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7 mysql:5.7 
[centos@loovelj~]$ docker images
REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
test/ubuntu                                          v1.0                523e7db0e264        12 minutes ago      98.3MB
ubuntu                                               latest              dd6f76d9cc90        7 days ago          122MB
hello-world                                          latest              725dcfab7d63        8 days ago          1.84kB
mysql                                                5.7                 ec7e75e5260c        23 months ago       360MB
registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql   5.7                 ec7e75e5260c        23 months ago       360MB
复制代码

 

根据镜像创建容器

[centos@loovelj~]$ docker create -it mysql:5.7
62c975b37ad25b03914eb61e05088019f37ff9cb049a682ac02f20fac1761a4d

 

启动MySQL容器

复制代码
[centos@loovelj~]$ docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=sgcc -d -i -p 3306:3306  mysql:5.7
2a7a85124400be6fd47e0d97cf5d602456b1db1a11c6331747fe662481eea537
[centos@loovelj~]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
2a7a85124400        mysql:5.7           "/entrypoint.sh my..."   9 seconds ago       Up 8 seconds        0.0.0.0:3306->3306/tcp   mysqlserver
188099665d1e        ubuntu:latest       "/bin/bash"              23 hours ago        Up 23 hours                                  angry_spence
复制代码

 

进入MySQL终端

复制代码
[centos@liujun ~]$ docker exec -it  2a7a85124400  /bin/bash
root@2a7a85124400:/# mysql -h 127.0.0.1 -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.9 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
复制代码

3.访问Mysql数据库
由于我们在上面使用了-p参数映射了容器的3306端口到宿主机的3306端口,此时我们可以直接访问宿主机的3306端口来访问Docker中的mysql服务
mysql -h 127.0.0.1 -u root -p 

 

其中,mysql 报错,我就在本机重新安装mysql,参照阿里云教程。

但是启动mysql时报错 

[root@loovelj support-files]# /etc/init.d/mysqld start
Starting MySQL...The server quit without updating PID file [FAILED]cal/mysql/data/liujun.pid).

经过查询,发现已经有一个运行的mysql。关闭后再重启

复制代码
[root@liujun support-files]# ps -ef|grep mysqld
root     10803  9758  0 13:26 pts/0    00:00:00 grep --color=auto mysqld
[root@liujun support-files]# kill -9 10803
bash: kill: (10803) - No such process
[root@liujun support-files]# kill -9 9758
Killed
[root@liujun mysql]#  /etc/init.d/mysqld start
Starting MySQL. 
复制代码

 

再执行mysql时,发现还是报错,查询原因是启动项不在/usr/bin下面。

ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可

 后来发现环境变量修改了,但是好像没有保存好,mysqladmin 命令还是不能用,所以又重新保存环境变量

复制代码
[centos@liujun ~]$ vim ~/.bash_profile

#PATH=$PATH:$HOME/bin:/usr/local/apache/bin
#添加以下列
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib #:wq 保存退出 [centos@liujun ~]$ source ~/.bash_profile
复制代码

再次运行(第二天再次尝试的,上次的容器已经退出了)docker run

[centos@liujun ~]$ docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=sgcc -d -i -p 3306:3306  mysql:5.7
0cc2009d1d367903a0d4e47a6e69af1bc41e409e194a231b6dd1193cc27bf716
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysqlserver (4e7ecdbc87918be626ac8920214ed76386784c83b572f5cd5d3ff0d46d453bb6): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use.

 

发现已经存在这个容器,只好删除了重新建立容器

 


[centos@liujun ~]$ docker rm mysqlserver mysqlserver [centos@liujun ~]$ docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=sgcc -d -i -p 3306:3306 mysql:5.7 9455dbd9c9128e51eee84c29d356fb5dff8d31762179ec2585c563ead08ad413

 

按照教程,通过mysql 远程连接就好了,但是说端口已经占有,估计是自己的mysql打开了,关闭本机的mysql

[centos@liujun ~]$ docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=sgcc -d -i -p 3306:3306  mysql:5.7
0cc2009d1d367903a0d4e47a6e69af1bc41e409e194a231b6dd1193cc27bf716
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysqlserver 
(4e7ecdbc87918be626ac8920214ed76386784c83b572f5cd5d3ff0d46d453bb6): Error starting userland proxy: listen tcp
0.0.0.0:3306: bind: address already in use.

 

[centos@liujun ~]$ sudo /etc/init.d/mysql stop
[sudo] password for centos: 
sudo: /etc/init.d/mysql: command not found
[centos@liujun ~]$ sudo /etc/init.d/mysqld stop
Shutting down MySQL..                                      [  OK  ]

 

最后再执行连接

复制代码
[centos@liujun ~]$ mysql -h 127.0.0.1 -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.9 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
复制代码

成功!

分享到:
评论

相关推荐

    使用Docker安装MySQL以及MybatisPlus的入门.docx

    使用Docker安装MySQL以及MybatisPlus的入门 本文将向您介绍使用Docker安装MySQL,以及MybatisPlus的入门搭建后台服务系统实现新增房源服务前后端进行整合,实现新增房源功能。 标题解释 使用Docker安装MySQL以及...

    使用docker安装mysql的命令

    总结:使用Docker安装MySQL是一种快速且方便的方法,通过上述步骤和命令,用户可以快速搭建起一个运行MySQL的环境,并进行相应的配置,以适应不同的使用需求。需要注意的是,安全性设置如密码修改和远程登录权限的...

    Docker安装MySQL 8.0.20详细教程

    一、Docker安装MySQL 8 Docker安装MySQL 8主要涉及拉取官方镜像、运行容器并进行一系列自定义配置。 二、自定义设置 存储路径:通过Docker的卷(volume)功能,可以将宿主机的目录挂载到容器内的指定路径。 端口:在...

    docker安装skywalking+mysql

    在本文中,我们将探讨如何使用Docker安装MySQL和Apache SkyWalking。Docker是一个流行的容器化平台,它允许我们在隔离的环境中轻松部署和管理应用程序及其依赖项。以下是对标题和描述中涉及步骤的详细解释。 首先,...

    docker安装mysql8.0.33

    docker安装mysql8.0.33:包含修改加密规则及修改时区等

    Docker安装MySQL5.6安装手册

    Docker安装MySQL5.6安装手册

    docker安装mysql镜像

    docker安装mysql镜像

    vagrant 安装docker docker 安装mysql 、redis、kafka

    vagrant 安装docker docker 安装mysql 、redis、kafka、 自启动

    Mysql 教程 - docker 安装 Mysql 教程.pdf

    我们将从基础知识开始,逐步讲解如何使用 Docker 安装 MySQL,创建 MySQL 服务器实例,使用自定义配置文件,并了解 stack 部署 MySQL。 一、Docker 安装 MySQL 在安装前,需要先访问 Docker 官网查看 MySQL 的版本...

    MySQL5.7docker离线包

    Docker 离线安装 MySQL 5.7 使用说明 本文将指导你如何使用离线的 Docker 镜像包 (docker-mysql-5.7.tar.zip) 来在 Linux 系统中安装并运行 MySQL 5.7 容器。 前提条件 • 已安装 Docker 环境。 • MySQL 5.7 ...

    MySQL备份Docker安装MySQL备份_SqlBackups.zip

    "mysql备份 docker安装的mysql 备份_sqlBackups"、"sqlBackups-main"这些文件名暗示了压缩包内可能包含了关于如何使用Docker安装和配置MySQL,以及如何进行备份的具体方法、脚本、文档和其他相关资源。这些文件可能...

    docker离线安装MySQL镜像

    docker离线安装MySQL镜像

    docker的基本命令及使用docker安装mysql.doc

    一 docker基本命令 docker search xxx --搜索镜像 docker pull xxx --拉取镜像 docker images --查看当前安装的镜像 docker rmi image-id --删除指定镜像,image-id表示docker images查询出的镜像的id

    docker离线安装mysql.tar包

    docker离线安装mysql.tar包

    Docker 安装 MySQL5.7.30 Docker安装MySQL主从配置

    Docker 安装 配置阿里云镜像加速器 Docker 安装 MySQL5.7.30 Docker安装MySQL主从配置

    docker安装mysql踩过的坑.doc

    学习docker安装mysql我遇到很多坑,大约花了三天才解决掉这个问题,真的是太坎坷了,差点就放弃让我学习Java的心态了。首先往VM安装带有docker东西的虚拟机,查看ip地址是192.168.200.128.然后按照网上步骤docker ...

    docker 安装mysql主从

    docker 安装mysql主从

    使用Docker建立Mysql集群

    使用Docker建立Mysql集群使用Docker建立Mysql集群使用Docker建立Mysql集群使用Docker建立Mysql集群

    docker离线mysql镜像.zip

    docker离线安装mysql镜像文件,并附带docker加载配置流程,服务器在无网络情况下即可轻松部署mysql服务。

    mysql 8.4.2 docker镜像包

    在使用MySQL 8.4.2 Docker镜像包时,需要确保自己已经安装了Docker环境。Docker可以运行在多种操作系统之上,包括Linux、Windows和Mac OS。安装Docker后,用户可以通过简单的命令行指令拉取(pull)MySQL 8.4.2的...

Global site tag (gtag.js) - Google Analytics