# 一、准备工作
# 1、目录说明
服务器的文件目录说明:
# 存放docker镜像的地方
docker search redis # docker hub
# 存放软件环境
mkdir -p /data/docker_service
# ----------
# 临时存放Git项目代码
# mkdir -p /home/app_code
# 存放已部署上线的项目
# mkdir -p /data/app
# 2、Portainer 工具
使用 Portainer 一个轻量级的图形化界面应用来管理 docker。
官网:
https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux
docker volume create portainer_data
docker run -p 8000:8000 -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
-d portainer/portainer-ce:2.9.3
- 访问
# 服务器ip地址:9000
admin
[密码设置]
其他工具
上面的 Portainer 是轻量级的,下面的这个 CIG 是重量级的
# CAdvisor监控收集 + InfluxDB存储数据 + Granfana展示图表
# 略
# 3、端口映射
基础环境 | 端口映射 | 项目数据 | 端口映射 | |
---|---|---|---|---|
JDK | MySQL | 3307:3306 | ||
Tomcat | 8081:8080 | Redis | 6380:6379 | |
Maven | MongoDB | 27018:27017 | ||
RabbitMQ | 15672 | |||
Nginx | 81:80 | |||
Node |
# 4、Docker 安装
Docker 在 centos 上目前有三种安装方式。下面我们采用
具体见:https://docs.docker.com/engine/install/centos/
# 设置docker存储库(使用阿里的镜像)
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
# 安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# 验证是否成功
docker -v
# 启动docker
systemctl start docker
# 开机自启
systemctl enable docker
拓展:docker 镜像加速
要注意是的,registry-mirrors 的值可以使用自己的阿里云镜像服务,具体位置如下:
阿里云-容器镜像服务 ACR-管理控制台-镜像工具-镜像加速器
⚠️ 注意:阿里云镜像站存在未同步最新源镜像问题,建议同时配置多个镜像加速器,具体参考Gist (opens new window)
# 编写docker/daemon.json配置文件
mkdir -p /etc/docker
vim /etc/docker/daemon.json
# 添加
{
"registry-mirrors": ["https://7ykbt77s.mirror.aliyuncs.com"]
}
# 使配置文件生效
systemctl daemon-reload
systemctl restart docker
# 5、docker-compose 安装
- 安装
# 官方
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
# 国内
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.12.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker compose version
- 卸载
rm /usr/local/bin/docker-compose
# 二、基础环境
# 前置说明
注意
关于 docker 的映射文件本地位置: /sources
关于 docker 的端口映射说明:比默认端口 + 1
- option 说明
-d # 后台守护式🎈启动
-p [本地端口]:[镜像端口] # 端口映射
--privileged=true # 扩大容器权限
-v [本地文件路径]:[镜像文件路径] # 数据备份
# 自动重启docker容器
docker update --restart=always [容器ID]
# 后端
# 1、JDK 安装
# 可以忽略(FROM作为基础镜像时会自动安装)
docker pull openjdk:8
# 2、Tomcat 安装
# 安装
docker pull tomcat:8.5.83-jdk8
docker images
# 文件准备
docker run -p 8081:8080 --name tomcat8 -d tomcat:8.5.83-jdk8
mkdir -p /sources/tomcat8
docker cp tomcat8:/usr/local/tomcat/webapps.dist /sources/tomcat8/
cd /sources/tomcat8/ && mv webapps.dist webapps
docker cp tomcat8:/usr/local/tomcat/conf /sources/tomcat8/
docker cp tomcat8:/usr/local/tomcat/logs /sources/tomcat8/
docker rm -f tomcat8
# 启用
docker run -p 8081:8080 --name tomcat8 --privileged=true \
-v /sources/tomcat8/webapps:/usr/local/webapps \
-v /sources/tomcat8/conf:/usr/local/tomcat/conf \
-v /sources/tomcat8/logs:/usr/local/tomcat/logs \
-d tomcat:8.5.83-jdk8
docker ps
docker exec -it tomcat8 /bin/bash
ls
rm -r webapps
mv webapps.dist webapps
- 测试
# 直接访问 服务器地址:8081 即可
- server.xml 配置
# /sources/tomcat8/conf/server.xml 目录下修改即可
# 前端
# 1、Nginx 安装
# 可以忽略(FROM作为基础镜像时会自动安装)
docker pull nginx:1.17.10
拷贝配置文件 nginx.conf
# 方式1
docker run --name nginx -p 81:80 -d nginx:1.17.10
mkdir -p /data/docker_service/nginx/conf
docker cp nginx:/etc/nginx/nginx.conf /data/docker_service/nginx/conf/nginx.conf
docker rm -f nginx
# 方式2
# (当然也可以离线下载nginx-1.17.10.tar.gz --- 然后拿取里面的nginx.conf 备用)
mkdir -p /data/docker_service/nginx/conf
cp -p /root/code-environment/conf-source/nginx.conf /data/docker_service/nginx/conf
# 拉取镜像
docker pull nginx:1.17.10
docker images
# 初始化容器(后台守护式运行)
docker run --name nginx -p 81:80 --privileged=true \
-v /data/docker_service/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/docker_service/nginx/html:/usr/share/nginx/html \
-v /data/docker_service/nginx/logs:/var/log/nginx \
-d nginx:1.17.10
# 其他
# 1、Ubuntu 安装
# 演示环境
docker pull ubuntu
docker run -it ubuntu
# 安装vim
apt-get update
apt-get -y install vim
# 三、项目数据 🎈
# 1、Mysql 安装
# 拉取镜像
docker pull mysql:5.7.40
docker images
# 初始化容器(后台守护式运行)
docker run -p 3307:3306 --name mysql --privileged=true \
-e MYSQL_ROOT_PASSWORD=mysql666 \
-d mysql:5.7.40
# 进入容器测试
docker ps -a
docker exec -it mysql /bin/bash
mysql -uroot -p
> show database;
exit
# 远程连接测试
# 使用Navicat等工具进行连接测试即可
拓展:字符编码处理
docker 容器 mysql:5.7.40 默认的字符编码为 utf8mb4
,它相较于 utf8 编码来说支持更广泛的字符范围,包括 Emoji 表情、一些不常见的汉字、特殊符号等。
但如果我们的应用程序只需要处理常规文本,没有特殊字符需求,并且想要节省一些存储空间,那么 utf8 可能足够。
docker run -p 3307:3306 --name mysql --privileged=true \
-v /sources/mysql/logs:/var/log/mysql \
-v /sources/mysql/data:/var/lib/mysql \
-v /sources/mysql/conf:/etc/mysql/conf.d \
-d mysql:5.7.40 \
-e MYSQL_ROOT_PASSWORD=mysql666 \
# 2、Redis 安装
# 拉取镜像
docker pull redis:6.0.8
docker images
# 初始化容器(后台守护式运行)
docker run -p 6380:6379 --name redis --privileged=true \
-d redis:6.0.8 \
--requirepass "redis666"
# 进入容器测试
docker ps -a
docker exec -it redis /bin/bash
redis-cli
> set name lencamo
> get name
exit
# 远程连接测试
# 使用RESP等工具进行连接测试即可
# 3、MongoDB 安装
# 安装
docker pull mongo:4
# 启用
docker run -p 27017:27017 --name mongo \
-v /mydata/mongo/db:/data/db \
-d mongo:4
# 远程连接测试
# 使用Navicat等工具进行连接测试即可
# 4、RabbitMQ 安装
# 安装
docker pull rabbitmq:3.9-management
# 启用
docker run -p 5672:5672 -p 15672:15672 --name rabbitmq \
-d rabbitmq:3.9-management
# 访问:http://ip地址:15672
# guest guest
# 四、Docker 思考
docker 适合跑轻量级或分布式数据库,当 docker 服务挂掉,会自动启动新容器,而不是继续重启容器服务
# 1、对比本地
使用 docker 安装环境的过程要简单的多:
- 不需要对每个服务设置开机自启了(ruoyi 容器运行状态由 docker 决定)
- 不需要对每个服务设置环境变量(宿主是 docker)
- 像 mysql、redis 等容器的密码设置仅使用 参数即可配置成功
- 可以同时安装多个版本的同类环境(docker 可以进行版本管理)
需要自定义配置文件的换,通过 docker 的 -v 进行映射即可
# 2、docker 优势
优点 1:
利用 Dockerfile 启动一个一个的前后端项目,结合 docker-compose 可以更加方便管理每个项目。
优点 2:
由于使用的是 Docker,项目的 👏 数据(mysql、redis 等)可以非常方便的移植
← Docker基础 【docker部署】 →