使用docker安装mysql或者redis。总的步骤都是搜索镜像、拉取镜像、运行容器

1. 一、docker安装mysql。

下面是安装mysql的步骤。

  • 1.1. 搜索镜像 docker search mysql 。如下:

[root@localhost ~]# docker search mysql
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                                                  MySQL is a widely used, open-source relation…   7926                [OK]                
mariadb                                                MariaDB is a community-developed fork of MyS…   2646                [OK]                
mysql/mysql-server                                     Optimized MySQL Server Docker images. Create…   598                                     [OK]
zabbix/zabbix-server-mysql                             Zabbix Server with MySQL database support       174                                     [OK]

或者去https://hub.docker.com 搜索mysql。找官方的镜像。

  • 1.2. 拉取镜像docker pull mysql:5.6 。

这里使用mysql的5.6版本。

  • 1.3. 运行镜像,也就是运行容器。

运行镜像的命令如下:

docker run -p 12345:3306 --name mysql \
 -v /wk/mysql/conf:/etc/mysql/conf.d \
 -v /wk/mysql/logs:/logs \
 -v /wk/mysql/data:/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=123456 \
 -d mysql:5.6

命令说明:

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

  • --name mysql:运行服务名字

  • -v /wk/mysql/conf:/etc/mysql/conf.d :将主机/wk/mysql录下的conf 挂载到容器的 /etc/mysql/conf.d

  • -v /wk/mysql/logs:/logs:将主机/wk/mysql目录下的 logs 目录挂载到容器的 /logs。

  • -v /wk/mysql/data:/var/lib/mysql :将主机/wk/mysql目录下的data目录挂载到容器的 /var/lib/mysql

  • -e MYSQL_ROOT_PASSWORD=123456:设置mysql的 root 用户的密码为12345。

  • -d mysql:5.6 : 后台程序运行mysql5.6

运行成功之后,可以看到宿主机的 /wk/mysql下面有3个文件夹。就是和容器映射的文件夹。如下:

[root@localhost mysql]# pwd
/wk/mysql
[root@localhost mysql]# ll
总用量 0
drwxr-xr-x. 2 root    root    6 3月  19 00:56 conf
drwxr-xr-x. 4 polkitd input 114 3月  19 00:57 data
drwxr-xr-x. 2 root    root    6 3月  19 00:56 logs
  • 1.4. 连接mysql操作数据库。

可以使用Navicat 、MySQL Workbench 等连接数据库。也可以登录docker之后,操作数据库。登录docker容器命令如下:

docker exec -it 容器ID     /bin/bash

执行效果如下:登录mysql之后,就可以任意的操作数据库了。操作完成(可以新建一个数据库、新建一个表、插入数据)之后,可以看到宿主机/wk/mysql/data下面有数据了。

[root@localhost ~]# docker exec -it 44149fabea34 /bin/bash
root@44149fabea34:/# pwd   
/
root@44149fabea34:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
  • 1.5. 备份数据。

可以使用下面的命令备份数据。就是在docker外面运行docker exec在docker内部执行这个命令:exec mysqldump --all-databases -uroot -p"123456"。

docker exec 容器ID sh -c ' exec mysqldump --all-databases -uroot -p"123456" ' > /wk/all-databases.sql

2. 二、docker安装redis。

  • 2.1. 一样的流程。先拉取镜像,这里使用3.2版本。如下:

docker pull redis:3.2
  • 2.2. 运行镜像。命令如下:

docker run -p 6379:6379 \
-v /wk/myredis/data:/data \
-v /wk/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf  \
-d redis:3.2 \
redis-server /usr/local/etc/redis/redis.conf --appendonly yes

命令说明:

  • -d redis:3.2 表示后台运行镜像redis:3.2的容器。
  • -v /wk/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf 注意这2个redis.conf都是文件夹。
  • redis-server /usr/local/etc/redis/redis.conf --appendonly yes 表示在容器内运行的命令。表示启动 redis-server并且开启redis的AOP,这个纯粹是redis的命令。

  • 2.3. 在主机/wk/myredis/conf/redis.conf目录下新建redis.conf文件:

vim /wk/myredis/conf/redis.conf/redis.conf

内容如下:要注意一下bind 127.0.0.1 这一行要注释掉。因为docker内部运行redis。不能限制只由docker容器内访问。

  • 2.4. 连接redis服务器做操作。

命令如下:

docker exec -it 运行着Rediis服务的容器ID redis-cli

操作如下:登录docker后使用redis-cli连接reids服务器,设置几个值,最后关闭reids服务器。

[root@localhost wk]# docker exec -it ee4ce8b50b12 redis-cli
127.0.0.1:6379> set key1 v1
OK
127.0.0.1:6379> set key2 v2
OK
127.0.0.1:6379> set key3 v3
OK
127.0.0.1:6379> SHUTDOWN

操作完成后。可以在宿主机的映射目录/wk/myredis/data 下看到aof持久化文件:

[root@localhost data]# pwd
/wk/myredis/data
[root@localhost data]# ll
总用量 4
-rw-r--r--. 1 polkitd input 116 3月  19 02:16 appendonly.aof

results matching ""

    No results matching ""