docker 创建mysql和redis
1 镜像加速
创建docker 目录
sudo mkdir -p /etc/docker
镜像加速:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://l9obl5ce.mirror.aliyuncs.com"]
}
EOF
重新加载docker:
sudo systemctl daemon-reload
重启:
sudo systemctl restart docker
2 更改docker api版本
错误提示:
Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39
解决方法:
export DOCKER_API_VERSION=1.39
3 创建mysql docker
3.1 下载镜像
默认下载最新版:
docker pull mysql
下载指定版本:
docker pull mysql:5.7
3.2 创建mysql 容器映射目录
mkdir -p /opt/mysql/data /opt/mysql/conf /opt/mysql/log
/opt/mysql/data : 挂载数据文件
/opt/mysql/conf:挂载配置文件
/opt/mysql/log : 挂载日志文件
3.3 创建映射配置文件
vi /opt/mysql/conf/mysql.cnf
[mysqld]
user=root
character-set-server=utf8
default_authentication_plugin=mysql_native_password
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1 #忽略表名大小写
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3.4 创建mysql实例:
docker run -p 3306:3306 --name mysqlb -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf:/etc/mysql -v /opt/mysql/log:/var/log -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
-d: 后台运行容器,并返回容器ID
3.5 查看容器状态
docker ps -a
status 为exitted (挂载文件启命令可能有问题)
3.6 创建mysql实例第二方式,(状态正常)
docker run -i -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
或
docker run -p 3306:3306 --name mysqld -e MYSQL_ROOT_PASSWORD=123456 mysql
3.7 进入docker msql容器中
docker exec -it mysqld /bin/bash
3.8 重启docker mysql
docker restart mysqld
3.9 查看docker 日志
docker logs [id]
如:
docker logs mysqld
4 docker 创建redis
4.1 下载镜像
docker pull redis
4.2 创建映射配置文件
mkdir -p /opt/redis/conf
touch /opt/redis/conf/redis.conf
4.3 创建redis实例
docker run -p 6379:6379 --name redisa -v /opt/redis/data:/data -v /opt/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
4.4 查看redis实例状态
docker ps -a
4.5 测试redis是否可用
docker exec -it redisa redis-cli
4.6 redis的持久化配置
vi /opt/redis/conf/redis.conf
appendonly yes