后端部署
准备docker环境,拉取所需镜像
正式安装docker环境:
1)较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
[root@localhost ~]# sudo yum remove docker \
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2)安装docekr所需要的环境
[root@localhost ~]# sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
3)下载阿里云docker社区版yum源(docker-ce.repo这个是一个yum源文件)
[root@localhost ~]# sudo yum-config-manager
--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
备注:
i)下载yum源文件所在的路径:/etc/yum.repos.d,进入查看有没有此文件
ii)查看docker可下载的版本
yum list docker-ce --showduplicates
4)安装docker(不加版本号,默认安装最新的版本)
sudo yum -y install docker-ce docker-ce-cli containerd.io
为了防止启动不了docker,需要再次更新一个环境xfsprogs(日志文件系统)
yum -y update xfsprogs
5)启动docker服务
systemctl start docker.service
6)查看版本
[root@localhost yum.repos.d]# docker version
7)设置docekr开机自动启动
[root@localhost test]# systemctl enable docker
docker镜像
https://www.cnblogs.com/flaming/p/11438244.html
什么是docker镜像?
类似于CentOS-7-x86_64-Minimal-1804.iso镜像文件
镜像到底是个什么东西呢,很多人在学习docker的时候都是一头雾水的,可是是歪果仁对镜像情有独钟吧,好
多东西都有镜像的概念。比如我们安装系统的.iso文件,其实就是镜像,这里你就可以把镜像认为是一种模板。我们可以
使用docker根据这个模板创建容器来运行,其实更可以理解为镜像是好比github上的仓库一样,我们可以克隆下来源代
码然后运行,运行起来的代码可以是一个网站、一个应用程序啥的,这就可以叫做容器。说白了,镜像就是一堆静态的模
板,运行起来的镜像就是容器。镜像一般需要我们拉取下来,是只读的
总结:镜像(静态的模板)-》运行起来-》就是容器(一个镜像可以创建很多个容器,容器之间互相隔离)
仓库:
https://hub.docker.com/
存放镜像文件的地方就是仓库
存放镜像的地方就是仓库,就好比存放代码的地方是github一样,我们就把github称为代码的仓库,github
算是最大的仓库。那么存放docker镜像的地方我们叫做dockerhub,是docker的中央仓库。其实已经有dockerhub这
个网站了(https://hub.docker.com/),这就是 存放docker镜像的官方仓库,好多官方的也保存在这里,保证了
镜像的安全性和可靠性,我们可以从上边拉取一下镜像来运行我们的软件。当然我们也可以制作好我们自己镜像推送上
去,不过这些肯定是要官方审核的,防止有些人写入一些恶意代码。不过我们可以推到我们自己的dockerhub上去,供我
们自己使用,这个就好我们的github账号一样了,属于私有镜像了。
镜像加速
https://www.runoob.com/docker/docker-mirror-acceleration.html
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提
供了国内加速器服务
备注的是:加速器地址每个人都不一样,不要直接复制我的,将下面命令全选中执行即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://totb4wfp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
拉取所需镜像
docker pull mysql:8.0.19
docker pull redis:6.0.8
docker pull nginx:1.18.0
docker images
docker自定义网络配置
自定义网络:
1)创建一个基于bridge网络模式的自定义网络
[root@docker ~]# docker pull centos:7 //拉取镜像
[root@docker ~]# docker network create My_networ
2)查看网络模式
[root@docker ~]# docker network ls
3)创建容器
[root@docker ~]# docker run -itd --name=containerName --net connect My_network imageId /bin/bash
4)已有容器
[root@docker ~]# docker connect My_network containerId/name
生成mysql容器-配置mysql数据库
`#生成mysql容器
[root@localhost mysql]# docker run -itd --name=mysql -v
/root/ruoyi/mysql/data:/var/lib/mysql -v /root/ruoyi/mysql/logs:/var/log/mysql -p
3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.19
进入此mysql容器中
[root@localhost mysql]# docker exec -it mysql /bin/bash
root@9aa98fd6e746:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
//修改加密规则
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
//更新一下用户的密码
mysql> ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> FLUSH PRIVILEGES;
备注:MySQL8.0之前的版本中加密规则是mysql_native_password,而在MySQL8.0之后,加密规则是
caching_sha2_password,如果不改navicat连接报错:Authentication plugin
‘caching_sha2_password’ cannot be loaded
`
验证:navicat连接mysql数据库成功
导入数据
i)将sql文件上传到服务器中
ii)将此sql文件复制进容器中的/root目录下,参考《容器化技术中的文件的复制章节》
iii)进入数据库导入即可
root@9aa98fd6e746:/# mysql -uroot -p
mysql> create database ryvue charset utf8;
mysql> show databases;
iii)将两个sql文件导入到ryvue库中
root@9aa98fd6e746:/# mysql -uroot -p'123456'
mysql> use yourdb;
mysql> source /root/my.sql