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

Docker配置部署java服务

1、创建新用户

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

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

bash 复制代码
sudo useradd -m 新用户名

这里,-m 选项会为新用户在 /home 目录下创建一个新的家目录,而 新用户名 就是你想要创建的新用户的用户名。

接下来,你可能会希望给新用户设置一个密码,你可以使用 passwd 命令:

bash 复制代码
sudo passwd 新用户名

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

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

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

bash 复制代码
sudo adduser 新用户名

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

1.3用户授权

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

bash 复制代码
sudo vim /etc/sudoers

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

bash 复制代码
root    ALL=(ALL)       ALL

在后面加上以下内容

bash 复制代码
用户名 ALL=(ALL)       NOPASSWD:ALL

1.3用户组授权

用户授权了管理员之后可能还有些权限功能不足的地方,一下以docker举例

例:在执行docker命令的时候依旧权限不足

所有查看用户组

bash 复制代码
cat /etc/group

找到docker所属的用户组

把已有的用户添加到docker用户组

bash 复制代码
usermod -G {groupname} {username}

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

2、创建文件

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

2.1、创建文件夹

bash 复制代码
mkdir 文件夹名

2.2、创建文件

bash 复制代码
touch 文件名.文件类型

3、nginx

3.1 docker运行 nginx

3.1.1、拉取镜像
bash 复制代码
 docker pull nginx:latest

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

3.1.2、容器运行
bash 复制代码
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中的配置文件复制到本机上

bash 复制代码
# 将容器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文件编辑

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

bash 复制代码
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

运行命令

bash 复制代码
docker-compose up -d
**附加

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

bash 复制代码
docker exec -it nginx-test bash

*查看容器中nginx配置文件

bash 复制代码
 cat /etc/nginx/nginx.conf

4、redis

4.1 docker运行redis

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

4.2 docker-compose运行 mysql

4.2.1 运行环境挂载文件配置

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

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

容器中mysql文件这样的

bash 复制代码
├── conf.d
├── my.cnf  
└── my.cnf.fallback

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

bash 复制代码
├── conf.d
├── conf
│   └── my.cnf 
│   └── my.cnf.fallback

根据个人习惯调整

4.2.2 docker-compose.yml文件编辑

bash 复制代码
version: '3'
services:
  mysql:
    restart: always
    privileged: true
    image: mysql:8.0
    container_name: lrmysql
    volumes:
      - ./data:/var/lib/mysql
      - ./conf.d:/etc/mysql/conf.d
      - ./conf/my.cnf:/etc/mysql/my.cnf
      - ./logs:/var/log/mysql
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
    environment:
      MYSQL_ROOT_PASSWORD: "***"
      MYSQL_USER: "**"
      MYSQL_PASSWORD: "**"
      MYSQL_INITDB_SKIP_TZINFO: "Asia/Shanghai"
    ports:
      - 20241:3306
    network_mode: "bridge"
 

运行命令

bash 复制代码
docker-compose up -d
相关推荐
FQNmxDG4S1 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
青梅橘子皮2 小时前
Linux---基本指令
linux·运维·服务器
REDcker2 小时前
Linux信号机制详解 POSIX语义与内核要点 sigaction与备用栈实践
linux·运维·php
虹科网络安全2 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje3 小时前
Java语法进阶
java·开发语言·jvm
绘梨衣5473 小时前
Docker+FastAPI+MySQL 项目部署报错汇总
mysql·docker·fastapi
rKWP8gKv73 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫3 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287923 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本3 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka