从docker安装到前后端分离项目启动完成(docker安装mysql、nginx;启动jar包).md
从docker安装到前后端分离项目启动完成(docker安装mysql、nginx;启动jar包)
前言:通过上篇博文:虚拟机安装centos7并配置网络
我们已经安装好centos并配置好网络,现在来尝试docker容器的安装及基本使用。本人为Java程序猿一枚,所以此处来使用docker安装几个常用软件:mysql,nginx。部署一个jar包服务,配合vue前端。部署一个简易程序。
[toc]
一、安装docker
此部分参照linux下安装docker并部署运行jar博文( 鸣谢!侵删)
1 |
|
二、使用docker安装mysql
可以去docker官网注册一下,获取可用的docker镜像。直接搜想要安装的应用
1.安装mysql
1 |
|
2. 启动mysql并设置密码
1 |
|
命令解析:
- 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
4. 进入mysql容器中,更新访问权限,使本机或者navicat等远程连接
1 |
|
- 修改权限
1
2
3update mysql.user set host="%" where user="root";
//刷新权限
flush privileges;
5. 使用navicat连接,测试成功
三、使用docker安装nginx以及自定义配置文件
1. 同样步骤去官网搜索nginx找到你想要下载的版本
1 |
|
2. 启动默认配置文件的nginx
docker run --name nginx -p 80:80 -d nginx:1.13
3. 复制nginx配置文件到主机
docker cp nginx:/etc/nginx/nginx.conf /opt/config/
- 修改该配置文件为你想要的配置,我这里配置到/out/project/demo/dist文件,为我的vue项目文件(你可以随便测试一个html)
4. 重启nginx,同时映射本机的配置文件,本机vue项目到容器中
1 |
|
本机访问成功
命令解析:
- –restart=always :总是在启动docker后重启本容器
- –privileged=true:添加root权限到容器(权限问题,详情百度)
- -p:端口映射,使用8001端口映射到本机(与你的nginx.conf保持一致)
- -v:分别映射你配置好的nginx配置和项目文件
- -d:后台启动
四、部署Java项目(此处为springboot项目的jar包)
1. 新建Dockerfile
1 |
|
命令解析:
- FROM java:8,使用java8
- 启动文件为code-demo-persion-0.0.1-SNAPSHOT.jar 重命名为 demo.jar
- ENTRYPOINT :启动后执行的命令为[xxx](语法百度)
2. 使用新建好的Dockerfile构建项目
1 |
|
3.启动项目
1 |
|
命令解析:
- -v:此处是为了将项目日志输出到本机以便查看
所有进程启动完成
项目可访问
五、redis安装
1. 下载镜像
docker pull redis:5.0.3
2. 添加配置文件启动
2-1 下载对应版本的压缩包官网
2-2 解压后得到conf文件
2-3 修改配置文件
1 |
|
2-4 将配置文件上传至centos中
- 配置文件在主机的位置
2-5 启动redis同时设置密码
1 |
|
命令解析:
–requirepass xxx:xxx为你所设置的redis密码
–appendonly yes:开启redis 持久化
启动成功
本文大概介绍了使用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杀死的脚本)
从docker安装到前后端分离项目启动完成(docker安装mysql、nginx;启动jar包).md
http://example.com/24918.html