安装docker
离线
- 下载docker安装包: https://download.docker.com/linux/static/stable/x86_64/
- 解压安装
tar xzvf /path/to/.tar.gz - 复制docker目录下的文件到/usr/bin目录下
sudo cp docker/* /usr/bin/
(/user/bin 目录包含系统中可执行的文件,将解压后的文件复制到该目录下,可以让这些文件处于可执行的位置,以便用户直接通过命令调用) - 后台运行docker的守护进程
sudo dockerd & - 设置开机自动
在/etc/systemd/system/目录中创建一个名为docker.service的服务配置文件sudo vi /etc/systemd/system/docker.service 将以下内容粘贴到文件中:
[Unit]
Description=Docker Service
Documentation=https://docs.docker.com
After=network.target
[Service]
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
Restart=always
StartLimitIntervalSec=0
[Install]
WantedBy=multi-user.target
- 设置远程连接(两种方式,推荐第二种)
- 启动了docker的守护进程,并且指定了监听地址,docker未启动时才可运行此命令
dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 &
2.编辑启动文件
/etc/systemd/system/docker.service 或 /lib/systemd/system/docker.service
如图:找到ExecStart这一行 并且替换为
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
在线
- 安装必要的系统工具 yum-utils ,device-mapper-persistent-data ,lvm2 这三个系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加软件源信息,添加阿里云docker镜像资源的配置文件
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum索引列表并安装Docker引擎
sudo yum makecache
- yum安装docker
sudo yum install docker-ce
- 设置远程连接(两种方式,推荐第二种)
- 启动了docker的守护进程,并且指定了监听地址,docker未启动时才可运行此命令
dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 &
2.编辑启动文件
/etc/systemd/system/docker.service 或 /lib/systemd/system/docker.service
如图:找到ExecStart这一行 并且替换为
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
源码下载
若依官网 https://www.ruoyi.vip/
选择前后端分离版本
后端打包部署
- 配置jdk,maven等
- 打包
- 创建Dockerfile文件,copy如下内容
# 基础镜像
FROM java:openjdk-8u111-jre
# 维护者信息
MAINTAINER zj
# 设置容器时区为当前时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME /tmp
# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD ./ruoyi-admin/target/ruoyi-admin.jar ruoyi-admin.jar
# 容器启动执行命令
ENTRYPOINT ["java", "-Xmx128m","-Djava.security.egd=file:/dev/./urandom", "-jar", "/ruoyi-admin.jar"]
# 声明容器提供服务端口
EXPOSE 8080
- 连接服务器docker
- 配置端口镜像名称等
- 启动
前端打包
- 修改后端路径
- 本机装有node环境
- npm install
- build 打包文件
中间件安装部署
mysql
- 创建挂载目录
mkdir -p /usr/local/mysql/data /usr/local/mysql/conf.d
- 启动
docker run --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf.d:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest
- 进入容器内部修改远程连接
# 进入容器内部
docker exec -it mysql /bin/bash
# mysql -u root -p
# 选择数据库
show databases;
use mysql;
# 修改连接权限
ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
-- 刷新权限
FLUSH PRIVILEGES;
- 连接测试
- 示例
Redis
- 执行命令
docker run -d -p 6379:6379 --name redis --restart always redis:latest
- 连接工具测试连接
无用户名 密码:启动命令设置 - 示例
Nginx安装
- 创建挂载目录
mkdir -p /home/docker/nginx/html /home/docker/nginx/conf /home/docker/nginx/log
- 上传 .conf 配置文件并修改 将文件放至/home/docker/nginx/conf 目录下
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; #前端项目的端口
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://39.100.94.212:8080/; #后台项目的运行端口
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- 启动
docker run --restart always --name nginx8888 --volume "/home/docker/nginx/html":/usr/share/nginx/html --volume "/home/docker/nginx/conf/nginx.conf":/etc/nginx/nginx.conf -p 8888:80 -d nginx
- 上传前端文件(dist)至 /home/docker/nginx/html 文件夹下
- 访问测试
- 示例