0.系统
宝塔 v7.5.1
Centos v8.2
1. 安装Docker
直接yum install docker
会提示找不到
> docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
Loaded plugins: fastestmirror
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal
这是因为
阿里云服务器ECS安装Docker提示No match for argument: docker-ce,No match for argument: docker-ce-cli
版本不同导致
虽然这篇文章说可以看阿里云官方文档部署并使用Docker(CentOS 8),但我按照该方法仍无法安装成功。最后按照下面这篇博客的教程安装成功。
centos安装docker显示 No package docker-ce available
# 查看操作系统的发行版号 //内核版本必须是3.10+以上的版本
uname -r
# 更新yum
yum update -y
# 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
yum install -y yum-utils
# 添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新索引
yum makecache
# 安装
yum install -y docker-ce
# 启动
systemctl start docker
# 验证安装成功
docker info
# 开机自启动
systemctl enable docker
为docker配置镜像源
# 首先查看是否有镜象源的配置
cat /etc/docker/daemon.json
如果没有镜像源的配置,那就生成
# 新建该文件
vim /etc/docker/daemon.json
# 输入镜像
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn",
"{阿里云镜像}",# https://help.aliyun.com/document_detail/60750.html
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com" ]
}
# 加载并重启
systemctl daemon-reload && systemctl restart docker
重启后再次输入docker info
,可以看到最下面输出了可以用的mirrors
2. 安装Mysql
1.下载mysql镜像文件
docker pull mysql:5.7
2. 创建实例并启动
docker run -p 3306:3306 --name mysql \ # 将容器的 3306 端口映射到主机的 3306 端口
-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 \ # 初始化 root 用户的密码
-d mysql:5.7
测试是否启动成功:使用root作为-u和-p的参数登陆进去
docker exec -it mysql mysql -uroot -proot
3. 配置MySQL my.cnf文件
由于上述命令设置了配置文件夹挂载到主机
,因此不管是在/mydata/mysql/log
做的修改还是在/var/log/mysql
做的修改都会双向同步
# 新建文件
vim /mydata/mysql/conf/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
docker restart mysql
3. 安装redis
1. 下载镜像文件
docker pull redis
2. 创建实例并启动
# 先执行配置文件的建立
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/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
3. 使用redis-cli检查是否安装成功
docker exec -it redis redis-cli
4. 通过redis配置文件,设置持久化
# 编辑redis.conf
vim /mydata/redis/conf/redis.conf
# 写入AOS持久化方式
appendonly yes
之前不持久化,重启redis后,数据会从内存丢失,现在不会了
# 进入
docker exec -it redis redis-cli
# 设置值
set aa bb
get aa
# 推出并重启
exit
docker restart redis
# 再次进入
docker exec -it redis redis-cli
get aa