从docker安装到前后端分离项目启动完成(docker安装mysql、nginx;启动jar包)--菜鸟小回

从docker安装到前后端分离项目启动完成(docker安装mysql、nginx;启动jar包)


博主自研AI欢迎体验: 慧言AI
关注慧言公众号:慧言高科技



一、安装docker

此部分参照linux下安装docker并部署运行jar博文( 鸣谢!侵删)

// 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
//设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//启用 edge 和 testing 镜像仓库(可选)
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-testing
//安装Docker最新版本
yum install -y docker-ce
//启动docker
systemctl start docker
//开机自启
systemctl  enable docker.service

enter description here


二、使用docker安装mysql

可以去docker官网注册一下,获取可用的docker镜像。直接搜想要安装的应用
enter description here
enter description here

1.安装mysql

//这里选择安装5.7.29版本
docker pull mysql:5.7.29
//使用以下命令来查看是否已安装了 mysql: 
docker images

enter description here

2. 启动mysql并设置密码

docker run -itd --restart=always --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.29

命令解析:

  • docker run:docker容器启动命令
  • –name mysql:为此容器起名为mysql,可自定义
  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • -e MYSQL_ROOT_PASSWORD=123456: 初始化 MySQL 的密码为123456
  • mysql:5.7.29:你下载好的mysql镜像(需要指定版本)

3. 查看容器运行状况

docker ps
enter description here

4. 进入mysql容器中,更新访问权限,使本机或者navicat等远程连接

docker exec -it mysql bash
//登录mysql
mysql -uroot -p123456

enter description here

  • 修改权限
update mysql.user set host="%" where user="root";
//刷新权限
flush privileges;

enter description here

5. 使用navicat连接,测试成功

enter description here

三、使用docker安装以及自定义配置文件

1. 同样步骤去官网搜索nginx找到你想要下载的版本

//这里下载1.13版本
docker pull nginx:1.13

2. 启动默认配置文件的nginx

docker run --name nginx -p 80:80 nginx:1.13
enter description here

3. 复制nginx配置文件到主机

  • docker cp nginx:/etc/nginx/nginx.conf /opt/config/
    在这里插入图片描述
  • 修改该配置文件为你想要的配置,我这里配置到/out/project/demo/dist文件,为我的vue项目文件(你可以随便测试一个html)
    enter description here

4. 重启nginx,同时映射本机的配置文件,本机vue项目到容器中

//停止nginx容器
docker stop nginx
//删除
docker rm nginx
//重新启动
docker run  --restart=always --name nginx --privileged=true -p 80:80 -p8001:8001 -v /opt/config/nginx.conf:/etc/nginx/nginx.conf -v /out/project/demo/dist:/out/project/demo/dist -d nginx:1.13

本机访问成功
enter description here
命令解析:

  • –restart=always :总是在启动docker后重启本容器
  • –privileged=true:添加root权限到容器(权限问题,详情百度)
  • -p:端口映射,使用8001端口映射到本机(与你的nginx.conf保持一致)
  • -v:分别映射你配置好的nginx配置和项目文件
  • -d:后台启动

四、部署Java项目(此处为springboot项目的jar包)

1. 新建Dockerfile

FROM java:8
ADD code-demo-persion-0.0.1-SNAPSHOT.jar  /demo.jar
EXPOSE 8088
ENTRYPOINT ["java","-Xms1024m","-Xmx1024m","-jar","/demo.jar","--spring.profiles.active=dev","-c"]

命令解析:

  • FROM java:8,使用java8
  • 启动文件为code-demo-persion-0.0.1-SNAPSHOT.jar 重命名为 demo.jar
  • ENTRYPOINT :启动后执行的命令为[xxx](语法百度)
    enter description here

2. 使用新建好的Dockerfile构建项目

cd /out/project/demo
//构建本目录下的Dockerfile
docker build -t demo:v1 .
//查看我们构建出的镜像
docker images

enter description here

3.启动项目

docker run  -d --restart=always --name demo -p 8088:8088 -v /out/logs/demo:/out/logs/demo demo:v1

命令解析:

  • -v:此处是为了将项目日志输出到本机以便查看
    所有进程启动完成
    enter description here
    项目可访问
    enter description here

五、redis安装

1. 下载镜像

docker pull redis:5.0.3

2. 添加配置文件启动

2-1 下载对应版本的压缩包官网
2-2 解压后得到conf文件

enter description here

2-3 修改配置文件
//找到bind 127.0.0.1改为
#bind 127.0.0.1
2-4 将配置文件上传至centos中
  • 配置文件在主机的位置
    enter description here
2-5 启动redis同时设置密码
docker run -itd --restart=always  -p 6379:6379 --name redis -v /opt/config/redis.conf:/etc/redis/redis.conf -v /out/data:/data  redis:5.0.3 redis-server /etc/redis/redis.conf --requirepass root --appendonly yes

命令解析:

  • –requirepass xxx:xxx为你所设置的redis密码

  • –appendonly yes:开启redis 持久化

  • 启动成功
    enter description here


本文大概介绍了使用docker一个前后端系统的上线流程,下面总结一点常用命令:

  • service docker start/restart/stop:docker开启/重启/关闭
  • docker images:查看镜像
  • docker ps:查看启动的容器
  • docker start/stop xxx:开启/关闭某容器
  • docker build ~:构建镜像
  • docker run ~:启动容器
  • docker exec -it xxx bash :在运行的容器中执行交互终端命令,如:docker exec -it mysql bash
  • docker rmi xxx:删除某镜像,如:docker rmi demo:v1(demo:v1为镜像名,需要携带版本)
  • docker rm xxx:删除某容器,如:docker rm demo(demo为容器名)
  • docker update xxx xxx:为某个容器更新某设置,如docker update --restart=always nginx(将nginx容器设置为自启动)
  • docker cp /out/maven xxx:/out:xxx为容器名 将主机的/out/maven文件夹复制到容器的/out文件夹

更多命令参考:菜鸟教程

相关技术使用详情:springBoot集成Jenkins,实现自动化部署(centos7&windows,涵盖防jenkins杀死的脚本)

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值