如何使用Docker安装Redis\Zookeeper\Mysql
2019独角兽企业重金招聘Python工程师标准>>>
最近准备写如何实现分布式锁的文章,实现分布式锁可以借助数据库、缓存和Zoopkpeer实现。在实现代码时就需要安装以上软件。于是就想到使用docker来简化我的安装,并可以正好学习一下Docker相关知识,本篇文章就介绍下如何使用Docker安装Mysql/Reids/Zookeeper。
关于docker的安装教程很多,不同的操作系统也不一样,这里不再赘述。如果仅是个人研究和学习,在mac上安装建议大家使用docker for mac安装,https://store.docker.com/editions/community/docker-ce-desktop-mac
Docker基础概念
在使用Docker之前,我们先了解下几个Docker的核心概念
Docker Daemon
Docker引擎,就是运行在后台的一个守护进程,在我们启动它之后,我们就可以通过Docker客户端发送相关Docker的命令。
Docker Images
Docker镜像,这个就类似于我们在安装Windows时的镜像,只不过windows的镜像,在以前我们通常存在光盘上或者U盘里,这里的镜像我们通常会发布到Docker Registry
Docker Containers
Docker容器,在获取到Docker镜像之后,我们可以运行该镜像,此时便会启动一个Docker容器,该容器中运行镜像中的程序。如果把Docker镜像理解为一个类的话,那么Docker容器就是一个实例
Docker Client
Docker客户端,我们安装完Docker之后,我们打开终端使用docker 相关命令进行操作,这些命令便是Docker客户端的命令,另外还有一个基于REST API的Docker客户端,REST API一般用于在开发一些基于Docker运维的系统中使用。
Docker Registry
Docker镜像注册中心,Docker的官网的注册中心为http://hub.docker.com。我们也可以自己搭建自己的注册中心。
以上是Docker的核心概念,下面我们来看如何使用Docker安装Redis、Zookeeper、Mysql,并在过程中,学习使用Docker Client的一些常用命令
Redis
查找镜像
使用以下命令在Docker Hub搜索Redis镜像
docker search redis
执行以上命令,会搜索出所有带redis关键字的镜像(为减少篇幅,仅展示部分结果)
yanyanwangdeMacBook-Pro:~ yanyan.wang$ docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store th... 3788 [OK]
bitnami/redis Bitnami Redis Docker Image 47 [OK]
torusware/speedus-redis Always updated official Redis docker image... 32 [OK]
其中Name表示镜像仓库的名称,如果不带/则表示Docker官方仓库,带/则表示其他用户公开的镜像。OFFICIAL表示是否为官方仓库,一般我们推荐使用官方的仓库。
拉取镜像
我们使用以下命令拉取,Redis的镜像
docker pull redis:latest
其中redis:latest表示我们下载NAME为redis的镜像,latest表示TAG
在执行完以上命令之后,Docker Client会从Docker镜像注册中心下载Redis的镜像,待下载之后,我们查看本地的镜像
列出所有镜像
我们使用以下命令查看,本地的redis镜像
docker images
执行以上命令,就会显示本地的所有镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest a858478874d1 10 days ago 184 MB
其中IMAGE ID表示镜像ID,具有唯一性
创建并启动容器
使用以下命令,使用Reids镜像,创建并启动Redis容器
docker run -p 6379:6379 -v $PWD/data:/data -d redis:latest redis-server --appendonly yes
执行以上命令,我们就使用redis:latest镜像创建并启动了一个Redis容器,其中
-p 6379:6379:将容器的6379端口映射成主机的6379端口
-v $PWD/data:/data :将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
查看容器启动情况
使用以下命令查看所有容器
docker ps
执行以上命令,输出如下
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
07f0edc95fb3 redis:latest "docker-entrypoint..." 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp quirky_davinci
其中Status表示运行状态,Up表示运行中,PORTS表示容器需要对外暴露的端口号
连接、查看容器
我们使用Redis镜像使用redis-cli客户端,连接到redis容器
docker run -it redis:latest redis-cli -h 192.168.0.101
执行以上命令,我们就连接到redis容器,接下来我们就可以使用redis命令进行操作
192.168.0.101:6379> set "testKey" "test"
OK
192.168.0.101:6379> get "testKey"
"test"
192.168.0.101:6379>
至此,我们已经完成了Reids的安装。
Zookeeper
接下来我们安装zookeeper,我们使用和redis相同的方法。直接使用最少的步骤安装,不再做过多解释
查找zookeeper镜像
docker search zookeeper
查找结果如下:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jplock/zookeeper Builds a docker image for Zookeeper versio... 160 [OK]
zookeeper Apache ZooKeeper is an open-source server ... 157 [OK]
mesoscloud/zookeeper ZooKeeper 70 [OK]
digitalwonderland/zookeeper Latest Zookeeper - clusterable 14 [OK]
springxd/zookeeper A Docker image that can run a ZooKeeper se... 6 [OK]
拉取镜像
docker pull zookeeper
创建并启动容器
docker run -p 2181:2181 -v $PWD/data:/data -d zookeeper:latest
使用zookeeprt镜像创建并启动容器,我们把容器的2181映射到机器的2181上,同样把当前目录的data 挂载到容器的/data
查看当前容器列表
yanyanwangdeMacBook-Pro:zookeeper yanyan.wang$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
44b43e486817 zookeeper:latest "/docker-entrypoin..." 24 minutes ago Up 24 minutes 2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp mystifying_wing
2358c79358d6 redis:latest "docker-entrypoint..." About an hour ago Up About an hour 0.0.0.0:6379->6379/tcp fervent_lamarr
进入容器
docker exec -it 44b43e486817 /bin/bash
进入容器之后,ls查看操作目录,可以查看下有哪些目录
bash-4.3# ls
LICENSE.txt bin dist-maven lib zookeeper-3.4.10.jar.asc
NOTICE.txt build.xml docs recipes zookeeper-3.4.10.jar.md5
README.txt conf ivy.xml src zookeeper-3.4.10.jar.sha1
README_packaging.txt contrib ivysettings.xml zookeeper-3.4.10.jar
Mysql
接下来我们安装Mysql,和以上直接从docker注册中心拉取镜像不同。我们首先构建自己的mysql镜像,然后在创建并启动容器
构建镜像
编写Dockerfile文件
我们可以使用Dockerfile来快速的构建。Dockerfile实际上就是一种编写Docker镜像的脚本,Dockerfile脚本有固定的格式,通过这些固定的格式,我们可以编写不同需求的Docker镜像。以下是构建Mysql镜像的脚本以及脚本的含义
## 设置基础镜像
FROM mysql:latest## 设置维护者信息
MAINTAINER yywang <wangyan9110@163.com>## 设置描述信息
LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="latest"
## 设置镜像制作过程中,需要执行的命令
RUN apt-get update
RUN apt-get -y install vim
RUN usermod -u 1000 mysql
RUN mkdir -p /var/run/mysqld
RUN chmod -R 777 /var/run/mysqld
其中FROM 表示设置基础镜像指令,该指令有固定的格式,即“仓库名:标签名”,RUN 表示在镜像构建过程中,需要执行的命令。
把以上脚本保存在一个叫Dockerfile的文件下,这时mysql镜像的Dockfile的脚本就完成了。
构建mysql镜像
在Dockerfile文件的同一目录下输入如下命令:
docker build -t yywang/mysql-osx:latest .
其中-t 指定了镜像的名称,. 这一点表示读取当前目录下的Dockerfile文件
查看镜像
在执行完成以上命令后,我们查看当前镜像
yanyanwangdeMacBook-Pro:zookeeper yanyan.wang$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yywang/mysql-osx latest 38c6579b6f70 4 minutes ago 446 MB
可以看出yywang/mysql-osx就是我们刚刚构建的镜像
创建并启动容器
创建并启动mysql容器
接下来我们就创建并启动mysql容器
docker run -d -h mysql \-v $PWD/mysql:/var/lib/mysql \-p 0.0.0.0:3306:3306 --name mysql \-e MYSQL_ROOT_PASSWORD=123456 yywang/mysql-osx
其中-e 表示设置mysql的root账户密码为123456
连接、查看容器
我们使用Mysql镜像的mysql客户端,连接到mysql容器
docker run -it yywang/mysql-osx mysql -h192.168.0.101 -uroot -p123456
登录完成后,我们就可以使用mysql的命令操作mysql
mysql> select GET_LOCK("testKey",0);
+-----------------------+
| GET_LOCK("testKey",0) |
+-----------------------+
| 1 |
+-----------------------+
1 row in set (0.01 sec)mysql> select RELEASE_LOCK("testKey");
+-------------------------+
| RELEASE_LOCK("testKey") |
+-------------------------+
| 1 |
+-------------------------+
1 row in set (0.00 sec)
至此Mysql的安装也已经完成。
关注公众号
关注以上公众号回复 Docker 获取PDF版
转载于:https://my.oschina.net/wangyan9110/blog/911216
如何使用Docker安装Redis\Zookeeper\Mysql相关推荐
- Docker安装Tomcat、MySQL和Redis
总体步骤 Docker安装Tomcat docker hub上查找tomcat镜像 docker search tomcat 从docker hub上拉取tomcat镜像到本地 docker pull ...
- docker安装常用组件(mysql,redis,postgres,rancher,Portainer,蝉道,JIRA,sonarqube,Confluence,pgadmin4,harbor)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 docker安装mysql docker search mysql 搜索 docker pull mysql:5.6 下载 docker images ...
- Docker 安装redis(四)
Docker 安装redis 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search redis 2.拉取docker的mysql镜像(如果 ...
- docker 安装redis第三方集群方案 codis
docker 安装redis第三方集群方案 codis docker 安装redis第三方集群方案 codis 首先,安装好docker环境,这里不提,需要看的可以在我的博客里找, 事先准备好zook ...
- docker安装redis并将配置文件和数据文件映射到外部
[Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...
- Docker系列(二十四)——Docker实例六Docker安装Redis实例
< Docker实例三Docker安装Redis实例 > 前言 在前面一篇文章种,完成了 < Docker安装MongoDB实例 >,本篇将继续镜像安装教程,并完成Docker ...
- Docker安装Redis,Spring Boot使用Redis,解决Redis发生的类型转换异常
Docker安装Redis(如果已安装请跳过这一步) 1.拉取Redis镜像(默认最新版本) docker pull redis 如果下载比较慢的话建议配置阿里云镜像 查看阿里云镜像:阿里云官网--& ...
- Docker系列 六. Docker 安装 Redis
Docker 安装 Redis Redis 是一个开源的使用 ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 的 NoSQL 数据库,并提供多种语言的 API . ...
- Docker 安装 Redis
Docker 安装 Redis 方法一.docker pull redis:3.2 查找 Docker Hub上的 redis 镜像: docker search redis 这里我们拉取官方的镜像, ...
最新文章
- 修改jupyter的保存位置
- 使用奇异值谱分析鉴定振荡成份
- capture 原理图添加pcb封装_Altium Designer18制作两层PCB入门
- @property的必要性
- html css页脚代码,HTML CSS - 页脚 - 下面的空格
- 获取来源网站php,js实现获取网站搜索来源代码
- linux考试试题及答案填空题,Linux认证考试试题及答案(20210511022419)
- adb查看android手机设备型号、品牌、机型等信息
- 天黑时间跟经度还是纬度有关_经纬度和时间气候
- TI 杯2019年全国大学生电子设计竞赛题
- 全面改革个税关乎民生和正义
- python爬取微信好友头像_python 使用wxpy实现获取微信好友列表 头像 群成员
- android 4.4 x86 iso,安卓x86 4.4 iso下载
- Hyperf 热更新Watcher
- 详细解读 PolarDB HTAP 的功能特性和关键技术
- VSTO PPT图表对象的操作(2)
- POJ1984 Navigation Nightmare —— 种类并查集
- 故障:电脑频繁短暂黑屏
- Excel无法打开,内存或磁盘空间不足,Microsoft Excel无法再次打开或保存任何文档
- Ansible playbook文件中指定SSH密钥文件