-d: 后台运行容器,并返回容器ID
mysql:5.6 是 mysql镜像
#进入容器
docker exec -it mysql /bin/bash
#登录mysql
mysql -u root -p*****
#添加远程登录用户
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
完成以上操作 就可以在Navicate 测试链接了
你不试试,你怎么知道自己不行。
本文章转载:https://www.cnblogs.com/afeige/p/10698155.html
Window中的Docker 拉取Mysql镜像 并在本地Navicate链接
标签:ash -name mysql5.6 htm ica 重载 image 图片 ref
小编还为您整理了以下内容,可能对您也有帮助:
详解如何使用DockerHub官方的MySQL镜像
Mysql关系型数据库管理系统
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL是一个广泛使用的开源关系型数据库,那如何获取Mysql Docker镜像?下面通过这篇文章来一起看看如何使用DockerHub官方的MySQL镜像,有需要的朋友们可以参考借鉴。
前言
最近一直在尝试以官方centos镜像为基础,制作基于centos的MySQL镜像。但是制作后发现镜像大小已经超过1.5G,这对于一般的Docker镜像来说太臃肿了。Docker Hub官方提供的mysql镜像才324MB。目前来说我还没有找到什么好的方法把我制作的镜像的体积减下来,所以就先使用官方的吧!
docker pull mysql:5.7
如何使用这个Docker镜像?
1、启动一个Mysql Server容器(默认端口3306)
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.72、启动另一个容器,通过链接方式访问Mysql服务器
docker run --name some-app --link mysql:mysql -d application-that-uses-mysql3、启动另一个容器,通过Mysql命令行访问Mysql服务器
docker run -it --link mysql:mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT"
-uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'4、进入服务器控制台
docker exec -it mysql bash5、查看Mysql服务器日志
docker logs mysql更多内容,可参考官网详解:https://hub.docker.com/_/mysql/。
怎么linux本地mysql放到docker中?
如果对MySQL比较熟悉,那么可以使用MySQL异机迁移的方法:
先确定MySQL的运行系统、发行版、版本号,以前的配置文件。
根据以上信息在Docker环境下新建一台全新的MySQL。
根据业务需要实施停机迁移/在线迁移,将数据迁入Docker内的MySQL。
停机迁移:直接拷贝数据文件(物理迁移)、全量Dump导出(逻辑备份迁移)、xtraback备份(物理备份迁移)
在线迁移:将新库作为从库加入集群,完成同步后fo切换,原主库下线。
如果对Docker比较熟悉,可以使用Docker整机迁移的方法:
整机虚拟化直接作为一个镜像在Docker内运行。
这种方法虽然简单,但过程漫长而且运行时性能损耗非常大,也容易出问题,不是很推荐。
怎么linux本地mysql放到docker中?
如果对MySQL比较熟悉,那么可以使用MySQL异机迁移的方法:
先确定MySQL的运行系统、发行版、版本号,以前的配置文件。
根据以上信息在Docker环境下新建一台全新的MySQL。
根据业务需要实施停机迁移/在线迁移,将数据迁入Docker内的MySQL。
停机迁移:直接拷贝数据文件(物理迁移)、全量Dump导出(逻辑备份迁移)、xtraback备份(物理备份迁移)
在线迁移:将新库作为从库加入集群,完成同步后fo切换,原主库下线。
如果对Docker比较熟悉,可以使用Docker整机迁移的方法:
整机虚拟化直接作为一个镜像在Docker内运行。
这种方法虽然简单,但过程漫长而且运行时性能损耗非常大,也容易出问题,不是很推荐。
Docker的mysql集群节点可以正常创建,但无法正常连接到宿主机的mysql应该如何解决?
Ambari是Apache的开源项目,它帮助用户在GUI页面上简单的部署、管理、监控Hadoop集群环境。Ambari支持的Hadoop组件包括HDFS、Hive、HBase、Spark、Yarn等,HortonWorks官方也是采用Ambari来完成自家HDP套件的安装、管理及监控的。除了预置的组件之外,Ambari还支持自定义组件的安装,同时,支持RESTful的API,继而可以通过命令行等方式调用Ambari来完成一些自动化的任务。
本文共分为两部分,第一部分介绍如何在Docker虚拟化环境中部署Ambari;第二部分介绍如何基于Ambari来部署和管理Hadoop集群。
### 环境信息
* Docker发行版:Docker for Mac
* Docker版本:17.06.2-ce
* Docker容器OS:Ubuntu 14.04
* Ambari版本:2.5.2.0
Docker环境准备
拉取Docker镜像:在宿主机上执行命令docker pull ubuntu:14.04从远端仓库中获取Ubuntu的镜像,也可以获取其他OS的镜像,本文以Ubuntu为例
启动Docker容器:执行如下命令,以ubuntu:14.04镜像为基础启动容器:
docker run -itd --name ambari_new -p 8080:8080 -p 3306:3306 -v /Users/yuxiaolei/Workspace/dockerShared:/dockerShared ubuntu:14.04 /bin/bash
由于Ambari启动Web程序的时候占用8080端口,因此要从Docker宿主机上访问Ambari页面,需要通过参数 -p 来制定端口映射;
作为新手,笔者在容器内部署好Ambari之后,才发现Web页面的8080端口和MySQL的3306端口(可选)没有暴露给Docker宿主机,也就没法从宿主机上通过浏览器来登陆Ambari,因此必须想办法在已有容器上开放端口。
有两个方法:
1)如果宿主机为Linux系统,则修改iptables防火墙来指定端口映射规则;
2)如果是非Linux系统,可以将已装Ambari的容器commit为新的镜像,再基于该镜像创建新的容器。此时,就可以在docker run命令中添加参数 -p 来指定端口映。
还有一个问题,Ambari将其数据存储在数据库中,支持MySQL、PostgreSQL等数据库;容器内安装MySQL之后,基于上一步创建的新容器里,会发现MySQL启动不起来,执行命令/etc/init.d/mysql restart启动失败,在/var/log/mysql/error.log日志文件中打印有170802 14:02:59 [ERROR] Fatal error: Can't open and lock privilege tables: Got error 140 from storage engine的错误,经过网上查资料,需要在创建容器的时候添加参数-v /var/lib/mysql将MySQL数据存储路径声明为数据卷,即可解决问题。
启动容器之后,执行命令docker exec -it ambari /bin/bash进入容器内部。
Ambari安装
配置Ubuntu的软件仓库源:
国内建议采用阿里云的软件源,在root账号下用vim打开/etc/apt/sources.list文件,删除文件所有内容,粘贴如下内容:
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
执行命令apt-get update完成软件列表更新
安装Ambari所依赖的软件
apt-get install software-properties-commonsudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default
完成安装之后,在 ~/.bashrc 文件末尾添加命令 `export JAVA_HOME=/usr/lib/jvm/java-8-oracle ` 以配置JAVA_HOME 环境变量。
create database ambari;use ambari;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password' WITH GRANT OPTION;FLUSH PRIVILEGES;exit;
由于Ambari的数据存储在MySQL数据库中,这里为Ambari单独创建了database,并为其赋了完全控制权限;说明:假设MySQL数据库root用户的密码为:root_password
修改 `/etc/mysql/my.conf`,将`skip-external-locking`注释掉,并确保 `bind-address = 0.0.0.0` 配置,以使MySQL可被远程主机访问。
执行命令`/etc/init.d/mysql restart`重启MySQL 服务。
时间同步服务器ntp:执行命令apt-get install ntp安装ntp时间同步服务器,以便于集群环境中各节点的时钟一致;执行命令sudo service ntp restart重启ntp服务。
MySQL:执行命令apt-get install mysql-server安装MySQL服务器,安装完成后执行命令mysql -uroot -proot进入MySQL客户端,执行如下SQL代码:
Oracle JDK:逐条执行如下命令,以添加WebUpd8团队(https://launchpad.net/~webupd8team/+archive/ubuntu/java)提供的Oracle JDK仓库源,并从该仓库安装JDK:
下载Ambari仓库文件
进入cd /etc/apt/sources.list.d目录,执行命令wget http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.5.2.0/ambari.list从HortonWorks仓库中下载Ambari源文件,下载后切勿修改list文件名;
执行命令apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD以信任远端仓库的GPG签名
执行命令apt-get update更新Ambari软件源
执行命令apt-get install ambari安装Ambari套件,由于软件包较大(700多MB),这里情耐心等待,不过apt-get支持断点下载,网络终端后重新执行命令时不会从零开始下载
配置Ambari:
执行命令mysql -uroot -proot进入MySQL客户端,执行命令source ambari进入ambari的数据库,并执行命令source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql来完成Ambari的数据库表初始化操作;
执行命令ambari-server setup启动Ambari的引导式配置操作,根据指导做配置即可。需要注意的是,JDK不要选择由Ambari从网络下载,应该选择自定义路径,然后输入/usr/lib/jvm/java-8-oracle即可;
启动Ambari:执行命令ambari-server start,启动日志存储路径为/var/log/ambari-server/ambari-server.log
启动之后,由于我们之前做了Docker容器的端口映射,因此可以在宿主机上打开浏览器输入http://localhost:8080即可访问Ambari登陆页面
登陆用户名和密码均为admin,登陆之后就可以看到Ambari的首页了,如下图:
{% asset_img
如何在 Windows 操作系统中运行 Docker 客户端
我们来了解一下 Windows 操作系统中的 Docker 以及在其中安装 Docker Windows 客户端的知识。Docker 引擎使用 Linux 特有的内核特性,因此不能通过 Windows 内核运行,所以,(在 Windows 上)Docker 引擎创建了一个小的虚拟系统运行 Linux 并利用它的资源和内核。这样,Windows Docker 客户端就可以用这个虚拟的 Docker 引擎来构建、运行以及管理 Docker 容器。有个叫 Boot2Docker 的团队开发了一个同名的应用程序,它创建了一个虚拟机来运行基于Tiny Core Linux特制的小型 Linux,来在 Windows 上运行 Docker 容器。它完全运行在内存中,需要大约 27M 内存并能在 5秒 (因人而异) 内启动。因此,在用于 Windows 的 Docker 引擎被开发出来之前,我们在 Windows 机器里只能运行 Linux 容器。
下面是安装 Docker 客户端并在上面运行容器的简单步骤。
1. 下载 Boot2Docker
在我们开始安装之前,我们需要 Boot2Docker 的可执行文件。可以从 它的 Github 下载最新版本的 Boot2Docker。在这篇指南中,我们从网站中下载版本 v1.6.1。我们从那网页中用我们喜欢的浏览器或者下载管理器下载了名为 docker-install.exe 的文件。
2. 安装 Boot2Docker
现在我们运行安装文件,它会安装 Window Docker 客户端、用于 Windows 的 Git(MSYS-git)、VirtualBox、Boot2Docker Linux ISO 以及 Boot2Docker 管理工具,这些对于开箱即用地运行全功能的 Docker 引擎都至关重要。
3. 运行 Boot2Docker
安装完成必要的组件之后,我们从桌面上的“Boot2Docker Start”快捷方式启动 Boot2Docker。它会要求你输入以后用于验证的 SSH 密钥。然后会启动一个配置好的用于管理在虚拟机中运行的 Docker 的 unix shell。
检查否确配置运行面 docker version 命令
docker version
4. 运行 Docker
由于 Boot2Docker Start 自启已经确设置环境变量 shell我马始使用 Docker请注意我要 Boot2Docker 作远程 Docker 守护进程要 docker 命令前加 sudo
现让我试试 hello-world 例镜像载 hello-world 镜像运行并输 "Hello from Docker" 信息
$ docker run hello-world
5. 使用命令提示符(CMD) 运行 Docker
现想始用命令提示符使用 Docker打命令提示符(CMD.exe)由于 Boot2Docker 要求 ssh.exe PATH 我需要命令提示符输入命令使 %PATH% 环境变量包括 Git 安装目录 bin 文件夹
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
运行面命令我命令提示符运行 boot2docker start 启 Boot2Docker 虚拟机
boot2docker start
注意: 看 machine does no exist 错误信息运行 boot2docker init 命令
复制图控制台标命令 cmd.exe 控制台窗口设置环境变量我像平运行 docker 容器
6. 使用 PowerShell 运行 Docker
能 PowerShell 运行 Docker我需要启 PowerShell 窗口并添加 ssh.exe PATH 变量
$Env:Path="${Env:Path};c:\Program Files (x86)\Git\bin"
运行完面命令我需要运行
boot2docker start
打印用于设置环境变量连接虚拟机内部运行 Docker PowerShell 命令我需要 PowerShell 运行些命令平运行 docker 容器
7. 用 PUTTY 登录
Boot2Docker %USERPROFILE%.ssh 目录使用用于登录公共私密钥我需要使用文件夹私密钥私密钥需要转换 PuTTY 格式我通 puttygen.exe 实现
我需要打 puttygen.exe 并 %USERPROFILE%.ssh\id_boot2docker 导入("File"->"Load" 菜单)私钥点击 "Save Private Key"用保存文件通 PuTTY 用 docker@127.0.0.1:2022 登录
8. Boot2Docker 选项
Boot2Docker 管理工具提供些命令所示
$ boot2docker
Usage: boot2docker.exe [<options>]{help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|shellinit|delete|download|upgrade|version}[<args>]
总结
通 Docker Windows 客户端使用 Docker 趣Boot2Docker 管理工具能使任何 Docker 容器能像 Linux 主机平滑运行棒应用程序更仔细发现 boot2docker 默认用户用户名 docker密码 tcuser新版本 boot2docker 设置 host-only 网络适配器提供访问容器端口般说 192.168.59.103通 VirtualBox DHCP 实现改变