在 linux系统中使用docker部署java web项目

环境

Ubuntu 16.04

注意:我这里docker,mysql等都是安装最新版如果需要则在docker官网搜索相应版本安装

docker搜索对应网址:Docker Hub

步骤

1.更新apt包

注:apt用于软件安装的指令

sudo apt-get update

安装apt依赖 用于通过https获取仓库

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

添加docker 官方GPG密钥

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

设置稳定版仓库

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \  $(lsb_release -cs) \  stable"

2.安装docker

获取最新的docker

sudo apt-get install docker-ce docker-ce-cli containerd.io

查看docker,顺便看看docker版本

docker --version

2.1 docker常用命令

查看是否安装成功 

举例是mysql  如果是其他 将mysql换成你下载的镜像

docker images  容器ID

效果如下就是安装成功

查看运行的容器

docker ps

查看所有容器(运行与没运行)根据status 判断是否运行

docker ps -a 

停止运行容器

先找到容器运行的ID

docker ps -a 

停止容器

docker stop 容器ID

删除容器

docker rm 容器id

删除镜像

删除镜像前先找到镜像id

docker images 

删除镜像

docker rmi 容器id|容器名称

获取镜像ip 

docker inspect 容器name or id | grep IPAddress

docker run 命令解析

-e 设置环境变量

-p 外部端口:内部端口

--name  给容器定义一个名字

-v 系统路径:docker 路径

就是将磁盘的文件挂载到容器相对应 使用挂载之前先检查对应文件夹是否存在,如果加上挂载运行报错可以先去除挂载的运行,然后再运行 docker cp  将 容器中的文件在系统中生成 

docker cp 容器id or 容器name : 容器中路径   系统路径
例如:
docker cp nginx:/var/log/nginx /usr/local/nginx/logs 

如果docker cp 无效 一般是文件位置不对 可以进入容器内部查看文件地址 

//进入容器
docker exec -it 容器id or 容器名称  ls

3.docker安装mysql

docker pull mysql:latest

运行mysql 并且设置默认密码

docker run -itd --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-v /usr/local/mysql/conf:/etc/mysql  \  //将配置文件夹挂载到主机
-v /usr/local/mysql/log:/var/log/mysql  \   //将日志文件夹挂载到主机
-v /usr/local/mysql/data:/var/lib/mysql/  \  //将配置文件夹挂载到主机
 mysql

 4.docker 安装redis

docker pull redis:latest

运行redis

docker run -itd --name redis \
 -p 6379:6379 \
 -v /usr/local/redis/data:/data \
 -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf \
 redis

5.docker 安装rabbitmq

docker pull rabbitmq:latest

运行rabbit

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 -e TZ=Asia/Shanghai rabbitmq

 6.docker安装nginx

docker pull nginx:latest

运行nginx  挂载config文件   config文件参考网址:https://www.cnblogs.com/ausion/p/16457365.html

docker run --name nginx -p 80:80 \
-v /usr/local/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/logs:/var/log/nginx \
-v /usr/local/nginx/cert:/etc/nginx/cert \
-e TZ=Asia/Shanghai \
-d nginx

7.部署web 

7.1我一般将web站点放入/usr/local/web/admin文件下 

所以我会在/usr/local文件下创建 /web/admin文件夹然后创建一个Dockerfile文件 文件内容如下

FROM java:8

ADD youyue-admin.jar app.jar

EXPOSE 8098

ENTRYPOINT ["java","-jar","app.jar","--spring.profiles.active=prod"]

from 是基于java8环境

Expose 是端口

--spring.profiles.active=prod 是我需要执行环境文件 如果不需要切换就删除

7.2 将jar包放入文件下,最后截图如下:

 注:执行命令时需要注意文件位置是否正确

7.3 构建jar 镜像

 docker build -t admin  .

查看镜像是否构建成功

docker images admin

运行镜像

docker run  -d  -p 8098:8098 \
-v /usr/local/web/admin/file:/usr/local/web/admin/file \  //这个是我生成的项目文件如不需要可以去掉
-e TZ=Asia/Shanghai \
admin

查看镜像是否运行

docker ps

最后附一张我构建好运行的容器图

码云:youyue: 有岳,后台管理系统,springboot+mybatis+redis

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值