docker pull redis
docker pull mysql
拉取redis、mysql 镜像
docker 启动 redis 服务
docker run # -itd (i)以交互模式运行容器,通常与 -t 同时使用 (t)为容器重新分配一个伪输入终端,通常与 -i 同时使用(t)后台运行容器,并返回容器ID
-p 16379:6379 # 端口映射
--name redis_26379 # 容器名称
-v /docker/redis/redis.conf:/etc/redis/redis.conf # 映射配置
-v /docker/redis/data:/data # 映射数据持久化位置
-itd redis redis-server /etc/redis/redis.conf # 根据配置进行启动
--requirepass "123456" # 设置密码
--appendonly yes # 数据持久化
docker run --privileged=true -p 6379:6379 --name myredis -v /home/workspace/redis:/home/workspace/redis -v /home/workspace/redis/redis.conf:/etc/redis.conf -itd redis redis-server /etc/redis.conf
redis.conf
daemonize no
port 6379
#unixsocket /home/workspace/redis/run/myredis.sock
logfile /home/workspace/redis/log/myredis.log
pidfile /home/workspace/redis/run/myredis.pid
dir /home/workspace/redis/data/
dbfilename myredis.rdb
loglevel notice
tcp-backlog 65535
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
rdbchecksum yes
activerehashing yes
protected-mode no
requirepass 123456
注意:daemonize no 一定是no否在redis启动就会立即退出
进入容器
docker exec -it myredis /bin/bash
docker 连接redis
redis-cli -p 6379 -a 123456
如果报错 docker redis WARNING: IPv4 forwarding is disabled. Networking will not work
vi /etc/sysctl.conf
net.ipv4.ip_forward=1 #添加这段代码
systemctl restart network && systemctl restart docker #重启network服务
redis 指定socket连接
redis-cli -p 6379 -a 123456 -s /home/workspace/redis/run/myredis.sock --如果配置了unixsocket连接
docker 启动mysql
docker run \
--privileged=true \
--name mysql \
-p 3306:3306 \
-v /home/workspace/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-itd mysql \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
注意:data 目录不用自己创建,会自动生成
连接docker mysql服务
mysql -h 127.0.0.1 -P 3306 -u root -p
必须这样连接才可以,否则报 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
查看创建mysql服务日志
docker logs my_mysql
带mysql配置启动mysql服务
docker run \
--privileged=true \
-itd \
-v /home/workspace/mysql/data/:/var/lib/mysql \
-v /home/workspace/mysql/conf.d:/etc/mysql/conf.d \
-v /home/workspace/mysql/my.cnf:/etc/mysql/my.cnf \
-p 33060:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
参考docker mysql 自带配置
docker exec -it mysql /bin/bash
查看
/etc/mysql/my.cnf
/etc/mysql/conf.d/mysql.cnf
可以将其拷贝到主机内,进行配置
workspace/
├── mysql
│ ├── backup
│ ├── conf
│ ├── conf.d
│ ├── data
│ │ ├── #innodb_temp
│ │ ├── mysql
│ │ ├── performance_schema
│ │ └── sys
│ ├── log
│ ├── run
│ └── tmp
│ └── mysql
│ └── conf.d
└── redis
├── data
├── log
└── run