Docker DockerFile部署java jar项目包,以及Mysql,Redis

这篇具有很好参考价值的文章主要介绍了Docker DockerFile部署java jar项目包,以及Mysql,Redis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker运行环境要求系统为64位、Linux系统内核版本为 3.8以上

1. Docker安装

1.1 搭建gcc环境 (gcc是编程语言译器)

  1. yum -y install gcc

  2. yum -y install gcc-c++

1.2 安装需要的软件包

yum install -y yum-utils

1.3 装镜像仓库

因为docker的服务器是在国外,

所以有时候从仓库中下载镜像的时候会连接被拒绝或者连接超时的情况!

因此可以使用阿里云镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4 新yum软件包索引

 yum makecache fast

 1.5 安装docker引擎

yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

1.6 启动docker

systemctl start docker

1.7 查看docker版本

docker version

docker部署jar包,docker,docker,java,容器,redis,mysql,jar

1.8 配置阿里云镜像加速

docker部署jar包,docker,docker,java,容器,redis,mysql,jar

docker部署jar包,docker,docker,java,容器,redis,mysql,jar

 在CentOS下配置镜像加速器

mkdir -p /etc/docker 
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你个人的阿里云镜像加速器地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker 

 docker已经安装完毕

2. docker安装Mysql

2.1 拉取mysql镜像

docker pull mysql:8.0.19

2.2 启动mysql

 # docker run 创建一个新的容器
docker run -d -p 23306:3306 --name mysql \
-v /usr/dcoker-mysql/log:/var/log/mysql \
-v /usr/docker-mysql/data:/var/lib/mysql \
-v /usr/docker-mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.19

命令参数说明:

参数说明:
-d   后台运行
-p 33060:3306  端口映射,宿主机的33060端口映射到容器3306端口
--name mysql  容器名称,可以自定义
-v /usr/dcoker-mysql/log:/var/log/mysql  宿主机/usr/dcoker-mysql/log目录与容器的/var/log/mysql目录挂载,该目录保存了mysql的日志
-v /usr/docker-mysql/data:/var/lib/mysql  也是挂载,该目录是mysql数据储存的位置
-v /usr/docker-mysql/conf:/etc/mysql/conf.d  也是挂载,该目录放置配置文件的
-e MYSQL_ROOT_PASSWORD=123456  设置环境变量,该变量是设置root用户的密码,可自行修改
mysql:8.0.19  镜像名称以及tag

如果不挂载数据卷,容器被删掉之后,mysql数据库里面的数据都会消失 

如果启动失败,可以执行docker logs -f -t --tail 1000  [容器id] ,查看日志,找失败的原因

2.3 查看容器

docker ps 

docker部署jar包,docker,docker,java,容器,redis,mysql,jar 进入容器执行

# docker exec 在运行的容器中执行命令

docker exec -it mysql mysql -uroot -p123456

参数说明: -i 以交互模式运行容器 -t 为容器重新分配一个伪输入终端 mysql -uroot -p123456 容器执行的命令,直接进入容器中的mysql 

*注意:安装的mysql是8.x版本的,默认的身份验证插件为caching_sha2_password,该插件不能使用旧版本的客户端来连接;如果所使用的Navicat版本较旧,需要修改身份验证插件才能登录。修改插件执行:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

使用navicat连接后创建数表并插入数据, 如果出现乱码, 修改配置文件

执行exit退出容器, 在宿主机中挂载的配置文件编写

执行 vim /usr/docker-mysql/conf/my.cnf, 这个目录就是上面创建容器时挂载的数据卷

docker部署jar包,docker,docker,java,容器,redis,mysql,jar

[client]

default_character_set=utf8

[mysqld]

collation_server=utf8_general_ci

character_set_server=utf8

 保存之后执行docker restart mysql重启容器

 3. docker部署redis

3.1 拉取redis镜像

docker pull redis:6.0.8

3.2 创建配置文件

在宿主机上创建一个文件redis.conf, 路径可以自定义, 这里提供一个配置文档, 配置可根据自己的需求修改, 本文配置文件路径: /usr/docker-redis/conf/reids.conf

# bind 127.0.0.1

protected-mode no

port 6379

tcp-backlog 511

#设置密码为123456,可注释掉
requirepass 123456

timeout 0

tcp-keepalive 300

daemonize no

supervised no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

databases 30

always-show-logo yes

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir ./

replica-serve-stale-data yes

replica-read-only yes

repl-diskless-sync no

repl-disable-tcp-nodelay no

replica-priority 100

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

appendonly yes

appendfilename "appendonly.aof"

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

lua-time-limit 5000

slowlog-max-len 128

notify-keyspace-events ""

hash-max-ziplist-entries 512
hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096
stream-node-max-entries 100

activerehashing yes

hz 10

dynamic-hz yes

aof-rewrite-incremental-fsync yes

rdb-save-incremental-fsync yes

* 注意:daemonize no是关闭守护线程,如果开启的话容器会启动不起来 

根据个人需求进行配置 

3.3 执行以下命令启动容器

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

参数说明:
-d   后台运行
-p 6379:6379  端口映射,<宿主机端口>:<容器端口>
--name redis   容器名称,可以自定义
-v /usr/docker-redis/conf/redis.conf:/etc/redis/redis.conf  宿主机/usr/docker-redis/conf/redis.conf文件与容器的/etc/redis/redis.conf文件挂载
-v /usr/docker-redis/data:/data  也是挂载,该目录是redis数据持久化文件储存的位置
redis    镜像名称
redis-server /etc/redis/redis.conf   以上面redis.conf文件写的配置启动redis

启动redis容器之后,执行docker ps查看是否启动成功
如果没有启动成功可以执行命令docker logs <容器名称或id>查看日志;如果日志没有内容可能是配置中开启了守护线程的原因,关闭即可

启动成功后,执行docker exec -it redis redis-cli命令进入容器
如果设置了密码,执行auth 123456(123456配置中的密码,没有配置密码的直接跳过这步)

docker部署jar包,docker,docker,java,容器,redis,mysql,jar 到这里redis就安装完成了

4. docker部署java jar

4.1 将jar上传到需要构建镜像的目录

4.2 在当前目录下创建Dockerfile编写Dockerfile (最好命名Dockerfile,否则构建需要指定文件名)

#基础镜像使用jdk1.8

FROM openjdk:8-jdk-alpine
 
#作者
MAINTAINER pan
 
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
 
# 将jar包添加到容器中并更名
ADD ruoyi-admin.jar app.jar
 
# 运行jar包
RUN bash -c 'touch /app.jar'
 
# 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
 
#ENTRYPOINT ["nohup","java","-jar","/data/app/ruoyi-admin.jar","&"]
 
#暴露8080端口
EXPOSE 8080

 4.3 构建镜像 (需要在Dockerfile同级目录下构建,执行次命令)

docker build -t app:1.0 .    # 注意末尾的点不能去掉

4.4 构建成功后查看当前的镜像, 构建过程中如果没有拉取过openjdk:8-jdk-alpine,需要等待下载

docker images

4.5 启动后端项目镜像

 docker run -d --name app-container -p 8080:8080 app:1.0

 4.6 查看容器是否启动成功

docker ps , 如果成功过则代表后端部署完成

docker部署jar包,docker,docker,java,容器,redis,mysql,jar

可以访问进一步验证

docker部署jar包,docker,docker,java,容器,redis,mysql,jar

后端部署完成

4.7 如果容器没有启动成功, 请看这一步

查看容器的日志

docker logs -f -t --tail 1000 [容器ID]

 通过日志确定问题,将报错进行复制,进行百度搜索,自行解决 文章来源地址https://www.toymoban.com/news/detail-752609.html

到了这里,关于Docker DockerFile部署java jar项目包,以及Mysql,Redis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker部署一个jar项目

    通过docker镜像, docker可以在服务器上运行包含项目所需运行环境的docker容器, 在线仓库里有很多各个软件公司官方发布的镜像, 或者第三方的镜像. 如果我们需要使用docker把我们的应用程序打包成镜像, 别的机器上只要安装了docker, 就可以直接运行镜像, 而不需要再安装应用程序

    2024年02月14日
    浏览(37)
  • Docker部署(5)——使用docker run命令部署运行jar项目

           对于一些简单的单体项目,可以使用 docker run 命令可以直接在命令行中运行容器,无需事先构建镜像。这相较于之前使用的 dockerfile 文件来运行部署项目相当于是另外一种简单的部署方法,关于之前使用dockerfile 文件来运行部署这种方法,具体可以参考下面这篇文章

    2024年02月10日
    浏览(49)
  • Docker部署Springboot应用【mysql部署+jar部署+Nginx部署】

    【项目达到目标】 1.基本准备 2、mysql部署 3、jar部署 4、Nginx部署 一、基本准备 石工拿的就是之前放置在我们服务器上的应用进行部署,主要就是mysql和jar还有Vue的部署。 目前已经有的是jar、已经打包好的vue   二、mysql部署 docker run -d --name mysql     --restart=always     -p 3

    2024年02月14日
    浏览(37)
  • docker 容器操作、应用部署、mysql,redis,nginx、迁移与备份、Dockerfile

    mysql部署 redis nginx 常用和不常用的命令 dockerfile构建一个django项目 docker私有仓库 镜像传到官方仓库 镜像分层 私有仓库搭建 新建flask项目app.py 编写Dockerfile 用于构建flask项目的镜像 编写dockercompose的yml文件dockercompose.yml dockercompose启动 项目目录结构 luffy_api/Dockerfile 构建uwsgi+dj

    2023年04月13日
    浏览(54)
  • 【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)

    镜像结构 Dockerfile 语法 构建 Java 项目 ① 之前使用的镜像都是 DockerHub 官方提供的 ② 开发者需要将自己的微服务制作为镜像 镜像 是由 应用程序 及其需要的 系统函数库 、 环境 、 配置 、 依赖 打包而成。 📝 镜像是 分层结构 ,每一层称为一个 Layer 1️⃣ BaseImage 层:包含基

    2024年02月03日
    浏览(44)
  • (三)docker:Dockerfile构建容器运行jar包

    目录结构以及准备的文件 2.Dockerfile内容 3.构建镜像 4.查看生成镜像 5.创建并运行容器 6.查看创建的容器 7.启动画面确认

    2024年02月06日
    浏览(43)
  • 【jenkins】idea+jenkins+docker+dockerfile+compose流水线部署java应用

    目录 整体架构 环境准备 安装docker以及docker-compose jenkins安裝 maven安装 portainer面板安装 sonarqube安装  在项目中增加dockerfile和compose.yml脚本  Dockerfile脚本内容 compose.yml脚本内容 jenkins安装必要插件 jenkins增加流水线任务 增加pipeline任务job  增加pipeline脚本 WXWork Notification Plugin 

    2024年02月16日
    浏览(63)
  • windows部署python项目(以Flask为例)到docker,通过脚本一键生成dockerfile并构建镜像启动容器

    这里使用 pipreqs 进行依赖库的识别。使用 pipreqs 可以自动检索到当前项目下的所有组件及其版本,并生成 requirements.txt 文件。相比直接用pip freeze 命令,避免将整个python环境的依赖包写入。 在项目的当前目录中执行 pipreqs ./ --encoding=utf8 --force 这里使用的是一个基于flask项目,

    2023年04月08日
    浏览(55)
  • jar包部署到linux虚拟机的docker中之后连不上mysql

    跟着黑马学习docker的时候,将java项目部署到了docker中,运行访问报错,反馈连不上mysql。 概述: 在虚拟中中,我进入项目容器的内部,尝试ping mysql,发现ping不通, 然后查看其ip,发现不在同一个网段中,故基本可以锁定问题原因就是没有将项目跟mysql容器部署到同一个网络

    2024年01月21日
    浏览(36)
  • Docker:使用dockerFile创建镜像(war包和jar包)

    1、使用war包打镜像 (1)在war的当前路径下,新建一个文件——Dockerfile (2)编辑Dockerfile文件    vim Dockerfile Dockerfile文件内容: FROM java:8                # 选择项目中要求的版本 MAINTAINER ylb             # 作者 WORKDIR /穿件文件夹的路径    # 选择项目中要求的

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包