Docker安装MySQL与Redis

Docker安装MySQL与Redis

彼方 965 2022-04-17

前言

如果你是云服务器,直接按步骤执行下面每一步的代码即可,如果你是虚拟机,还需要提前配置网络环境。

安装步骤

前置条件

为避免不必要的错误,请切换到root用户下执行命令

su - root

安装docker

点击查看安装参考文档

1. 删除旧版本

 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. 安装工具包并设置存储库

sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. 安装docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io

使用docker

1. 启动docker

sudo systemctl start docker

2. 常用命令

  • 检测docker版本
    docker -v
    
  • 查看docker已有镜像
    sudo docker images
    

3. 设置开机自启

sudo systemctl enable docker

4. 设置国内镜像加速

点击查看参考文档

# 创建文件
sudo mkdir -p /etc/docker
# 修改配置, 设置镜像
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://t6w9cblo.mirror.aliyuncs.com"]
}
EOF
# 重启后台线程
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker

安装MySQL

1. 拉取MySQL镜像

# 不指定版本则默认拉取最新版本
sudo docker pull mysql:5.7

2. 启动MySQL

sudo 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=root \
-d mysql:5.7

参数:

  • -p 3306:3306:将容器的3306端口映射到主机的3306端口
  • –name:给容器命名
  • -v /mydata/mysql/log:/var/log/mysql:将配置文件挂载到主机/mydata/…
  • -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码为root

3. 查看docker启动的容器

docker ps

4. 配置MySQL

  • 进入挂载的MySQL配置目录
    cd /mydata/mysql/conf
    
  • 修改配置文件
    vi my.cnf
    

拷贝以下内容保存:

[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-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

# Esc
# :wq
  • docker重启MySQL使配置生效
docker restart mysql
  • 容器随docker启动自动运行
docker update mysql --restart=always

安装Redis

  1. docker拉取redis镜像
docker pull redis
  1. docker启动redis
  • 创建redis配置文件目录
mkdir -p /mydata/redis/conf

touch /mydata/redis/conf/redis.conf
  • 启动redis容器
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
  1. 配置redis持久化

点击查看更多配置

echo "appendonly yes"  >> /mydata/redis/conf/redis.conf

# 重启生效
docker restart redis
  1. 容器随docker启动自动运行
docker update redis --restart=always

解释

Docker中每一个容器都是独立运行的,相当于一个独立的linux系统,如果想便捷地修改容器内的文件,我们就需要把容器目录挂载到主机的目录上。容器端口类似,外界无法直接访问容器内部的端口,需要先将容器端口映射到linux主机端口上才能访问。
image0417