docker镜像配置mysql、redis

mysql

拉取mysql镜像

docker pull mysql:5.7

创建并运行mysql容器

docker run -p 3306:3306 --name mysql\
 -v /mydata/mysql/log:/var/log/mysql\
 -v /mydata/mysql/data:/var/lib/mysql\
 -v /mydata/mysql/conf:/etc/mysql \
 -e MYSQL_ROOT_PASSWORD=123456\
 -d mysql:5.7
  • -e 设置mysql, root用户的密码为123456
  • -d 后台运行
  • -v 挂载到宿主机,在宿主机就可以修改容器中mysql的配置文件

修改mysql配置文件

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-service=utf8
collation-service=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
  • skip-name-resolve 跳过域名解析,解决连接慢问题

配置后要重启mysql

docker restart mysql

redis

提前创建 redis.conf,不然挂载时会当做目录,因为 /etc/redis.conf 刚开始没有 redis.conf

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis\
 -v /mydata/redis/data:/data\
 -v /mydata/redis/conf/redis.conf:/etc/redis.conf\
 -d redis\
 redis-server /etc/redis.conf
  • 第一个redis 时容器名,第二个redis是镜像名
  • 最后一行表示,redis-server 以指定的配置文件运行

使用redis容器执行redis-cli命令连接

docker exec -it redis redis-cli

redis默认不开启持久化,开启在 redis.conf 中t添加如下配置

appendonly yes

你可能感兴趣的:(docker,docker)