1. Linux安装Docker
Centos系统Docker安装官方文档:
- https://docs.docker.com/engine/install/centos/
- 此安装过程安装的是最新版的Docker
1.1 什么是Docker
1.2 安装Docker
1.2.1 卸载之前的Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2.2 设置仓库
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.2.3 安装Docker及相关引擎
sudo yum install docker-ce docker-ce-cli containerd.io
1.2.4 启动Docker
sudo systemctl start docker
sudo docker-v #查看docker版本
sudo docker images #使用超级管理员权限查看docker安装了哪些镜像
1.2.5 设置docker开机自启动
sudo systemctl enable docker
1.3 配置docker镜像加速
-
阿里云镜像服务地址:https://cr.console.aliyun.com/cn-hangzhou/instances
-
分别执行下方4条指令
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kl34k9x6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2. Docker安装Mysql
2.1 安装Mysql
2.1.1 卸载mysql
- 通过两种方式安装mysql的卸载方法
//rpm包安装方式卸载
查包名:rpm -qa|grep -i mysql
删除命令:rpm -e –nodeps 包名
//yum安装方式下载
1.查看已安装的mysql
命令:rpm -qa | grep -i mysql
2.卸载mysql
命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64
查看mysql的其它依赖:rpm -qa | grep -i mysql
//卸载依赖
yum remove mysql-libs
yum remove mysql-server
yum remove perl-DBD-MySQL
yum remove mysql
2.1.2 下载镜像文件
- 指定mysql版本为5.7
sudo docker pull mysql:5.7
2.2通过端口和文件映射创建一个容器并启动
- 将docker容器中的mysql和linux系统的mysql端口,日志,数据,配置文件进行映射。
这样,如果修改linux的mysql配置文件,docker容器内部的配置文件也会修改
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
参数说明
- 挂载类似于快捷方式,将容器内(docker)文件挂载到容器外(linux)
- 以后修改配置文件或者查看日志,直接在容器外即可查看
- 修改外部文件,容器内部文件同步修改
-p 3306:3306 #将容器的 3306端口映射到主机的3306端口
--name mysql #给当前容器命名为mysql
-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 #以后台方式运行该镜像
Linux内部
Docker容器内部
2.2.1 查看正在运行的容器
docker ps #查看正在运行的容器
docker rm fb087642b497 (该containerID) #根据容器id删除容器
2.2.2 进入容器内部
- 每个容器都相当于一个小型的linux系统
docker exec -it mysql /bin/bash #进入该容器bash控制台
查看该容器文件目录
查看容器安装路径
whereis mysql
退出容器内部
exit
2.2.3 修改容器内部mysql配置
vi my.conf
按i进入插入模式
[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 退出
修改后重启mysql容器
docker restart mysql
查看容器内部配置文件是否同步更新
修改文件名
mv my.conf my.cnf
3. Docker安装Redis
3.1 下载镜像文件
sudo docker pull redis
查看镜像
3.2通过端口和文件映射创建一个容器并启动
- 首先创建一个文件夹conf和文件redis.conf
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
出错解决方案
netstat -anp |grep 6379 #查看进程id
kill -9 进程id
docker rm 容器id #关闭该容器
- 将docker容器中的redis和linux系统的redis端口,日志,数据,配置文件进行映射。
这样,如果修改linux的redis配置文件,docker容器内部的配置文件也会修改
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
3.2.1启动redis客户端
docker exec -it redis redis-cli
测试存入数据
注意点
- 新版本的redis默认持久化
- 重启redis容器,再次获取值还是能获取的
3.2.2 给redis设置密码
如果开放6379端口,不对其设置密码的话,容易被入侵。
- 修改redis.conf文件,在其加入
requirepass 123 指定密码123