使用docker安装mysql或者redis。总的步骤都是搜索镜像、拉取镜像、运行容器。
1. 一、docker安装mysql。
下面是安装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。找官方的镜像。
这里使用mysql的5.6版本。
运行镜像的命令如下:
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
可以使用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
可以使用下面的命令备份数据。就是在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。
docker pull redis:3.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容器内访问。
命令如下:
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