Docker 是什么?
虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。
Docker 镜像仓库:https://hub.docker.com/
参考文档:https://docs.docker.com/engine/install/centos/
卸载旧版本 docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装依赖
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 docker,一路确认就行了
sudo yum install docker-ce docker-ce-cli containerd.io
启动 docker
sudo systemctl start docker
检查 docker 下载了哪些镜像
sudo docker images
设置 docker 开机自启
sudo systemctl enable docker
配置镜像加速,来到阿里云控制台容器镜像服务
Docker 安装 MySQL
拉取镜像
sudo docker pull mysql:5.7
创建实例并启动
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 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d mysql:5.7:-d 表示以后台方式运行,mysql 5.7是启动的容器
图示说明:
每次 sudo 太麻烦,直接切换到 root 用户,密码是 vagrant
su do
执行上面的代码,出现这个参数说明容器启动起来了
2d8e96c6d32d283d05d9ceb936a7c0eb71ad576a6e632bff5e317f3210597e65
查看 docker 正在运行中的容器
docker ps
打开客户端连接工具测试连接成功
每个容器都是互相隔离的,我们刚刚启动的 mysql 就相当于一个完整的 LInux 环境
可以进入到 mysql 容器内部
docker exec -it mysql /bin/bash
以 root 用户访问到了 mysql 容器内部
列举以下目录结构,发现就是一个完整的 Linux 目录结构
查看 mysql 安装在了哪里
exit; 退出 mysql 容器,切换到 mysql 配置文件目录
进入到 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
然后重启 mysql
可以检查以下 mysql 容器内部是否生成了配置文件
至此,mysql 配置文件修改结束
Docker 安装 Redis
拉取 redis 镜像
docker pull redis
创建实例并启动
由于容器内 redis 目录下没有 redis.conf 文件,所以提前创建出来然后在挂载到 Linux 上
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/redis.conf \
-d redis redis-server /etc/redis/redis.conf
启动 redis
docker exec -it redis redis-cli
redis 的默认配置是没有持久化的,修改配置文件
vi redis.conf
重启 redis
docker restart redis
为了以后方便看 redis 里面的数据,安装 redis 可视化客户端 Redis Desktop Manager
redis 官网可以详细查看配置文件内容:https://raw.githubusercontent.com/redis/redis/6.0/redis.conf