linux 上Docker-compose配置、部署java服务

2024-08-27 08:12

本文主要是介绍linux 上Docker-compose配置、部署java服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Docker配置部署java服务

    • 1、创建新用户
      • 1.1、使用 useradd 命令创建新用户
      • 1.2、使用 adduser 命令创建新用户
      • 1.3用户授权
      • 1.3用户组授权
    • 2、创建文件
      • 2.1、创建文件夹
      • 2.2、创建文件
    • 3、nginx
      • 3.1 docker运行 nginx
        • 3.1.1、拉取镜像
        • 3.1.2、容器运行
      • 3.2 docker-compose运行 nginx
      • 3.2.1 运行环境挂载文件配置
      • 3.2.2 docker-compose.yml文件编辑
        • **附加
    • 4、redis
      • 4.1 docker运行redis
        • 4.1.1、拉取镜像
        • 4.1.2、容器运行
      • 4.2 docker-compose运行 mysql
      • 4.2.1 运行环境挂载文件配置
      • 4.2.2 docker-compose.yml文件编辑

1、创建新用户

1.1、使用 useradd 命令创建新用户

在 Linux 系统中,我们可以使用 useradd 命令来创建新用户。打开你的终端,键入下面的命令:

sudo useradd -m 新用户名

这里,-m 选项会为新用户在 /home 目录下创建一个新的家目录,而 新用户名 就是你想要创建的新用户的用户名。
接下来,你可能会希望给新用户设置一个密码,你可以使用 passwd 命令:

sudo passwd 新用户名

然后,根据提示输入新密码两次。

1.2、使用 adduser 命令创建新用户

在某些基于 Debian 的 Linux 发行版中,你可能会找到一个叫做 adduser 的命令。它实际上是 useradd 的一个友好版本,更方便你进行交互式操作。

sudo adduser 新用户名

执行这个命令后,系统会自动引导你完成创建新用户的过程,包括设置密码、填写用户全名、房间号码、工作电话、家庭电话和其他信息(这些额外信息是可选的,如果不需要,可以直接按回车跳过)。

1.3用户授权

为了操作顺利需要给用户授权管理员

sudo vim /etc/sudoers

编辑sudoers文件,找到一下内容,

root    ALL=(ALL)       ALL

在后面加上以下内容

用户名 ALL=(ALL)       NOPASSWD:ALL

1.3用户组授权

用户授权了管理员之后可能还有些权限功能不足的地方,一下以docker举例
例:在执行docker命令的时候依旧权限不足

所有查看用户组

cat /etc/group

找到docker所属的用户组
把已有的用户添加到docker用户组

usermod -G {groupname} {username}

添加成功之后就可以使用docker命令了

2、创建文件

创建部署所需相关文件夹和文件

2.1、创建文件夹

mkdir 文件夹名

2.2、创建文件

touch 文件名.文件类型

3、nginx

3.1 docker运行 nginx

3.1.1、拉取镜像
 docker pull nginx:latest

异常:error pulling image configuration: download failed ****** 点击处理

3.1.2、容器运行
docker run --name nginx-test -p 20240:80 -d nginx
  • –name nginx-test:容器名称。
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行。

3.2 docker-compose运行 nginx

3.2.1 运行环境挂载文件配置

将正在运行的nginx中的配置文件复制到本机上

# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
# 将容器中的日志文件夹复制到宿主机
docker cp nginx:/var/log/nginx /home/nginx/logs/

3.2.2 docker-compose.yml文件编辑

注意: 挂载点文件路径,和上一步配置的要对应上

version: "3"
services:web:#定义主机名container_name: lrnginx#使用的镜像image: nginx:latest#容器的映射端口ports:- 20240:80#定义挂载点         volumes:- ./html:/usr/share/nginx/html- ./conf/nginx.conf:/etc/nginx/nginx.conf- ./conf.d:/etc/nginx/conf.d- ./logs:/var/log/nginx#docker 重启后,容器自启动restart: always

运行命令

docker-compose up -d
**附加

*进入容器内部查看nginx配置文件

docker exec -it nginx-test bash

*查看容器中nginx配置文件

 cat /etc/nginx/nginx.conf

4、redis

4.1 docker运行redis

4.1.1、拉取镜像
 docker pull mysql:8.0
4.1.2、容器运行
docker run --name mysql-test -p 20241:3306 -d mysql:8.0

4.2 docker-compose运行 mysql

4.2.1 运行环境挂载文件配置

将正在运行的mysql中的配置文件复制到本机上

# 将容器mysql 文件复制到宿主机
docker cp mysql-test:/etc/mysql /home/lirong/mysql/

容器中mysql文件这样的

├── conf.d
├── my.cnf  
└── my.cnf.fallback

将文件复制过来调整一下,调整以后文件夹是这样的

├── conf.d
├── conf
│   └── my.cnf 
│   └── my.cnf.fallback

根据个人习惯调整

4.2.2 docker-compose.yml文件编辑

version: '3'
services:mysql:restart: alwaysprivileged: trueimage: mysql:8.0container_name: lrmysqlvolumes:- ./data:/var/lib/mysql- ./conf.d:/etc/mysql/conf.d- ./conf/my.cnf:/etc/mysql/my.cnf- ./logs:/var/log/mysqlcommand:--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=trueenvironment:MYSQL_ROOT_PASSWORD: "***"MYSQL_USER: "**"MYSQL_PASSWORD: "**"MYSQL_INITDB_SKIP_TZINFO: "Asia/Shanghai"ports:- 20241:3306network_mode: "bridge"

运行命令

docker-compose up -d

这篇关于linux 上Docker-compose配置、部署java服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111114

相关文章

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2