Docker与DevOps实战训练:从容器管理到全链路项目部署

Docker 资源限制实战:CPU 与内存限制及验证

1. Docker 限制容器资源的技术基础是什么?

Docker 限制容器资源的技术基础主要是 Linux 内核提供的两大机制:控制组(cgroups) 和 命名空间(namespaces)。命名空间负责隔离,控制组负责对运行的容器进行资源限制这两者协同工作,共同实现了资源的隔离与限制。

练习创建 Ubuntu 容器,限制 CPU 1 核、内存 512MB,用docker stats验证。

首先下载Ubuntu镜像

检查一下

然后使用指令创建符合要求的主机

docker run -d --name limited-test --cpus="1.0" -m 512m ubuntu:20.04 sleep infinity

-d:后台运行容器

--name limited-test:给容器命名为 "limited-test"

--cpus="1.0":限制容器最多使用 1 个 CPU 核心

-m 512m:限制容器内存使用为 512MB

ubuntu:20.04:使用 Ubuntu 20.04 镜像

sleep infinity:让容器持续运行(否则会立即退出)

查看是否符合要求

显示符合要求,实验通过

堡垒机 JumpServer 容器化部署与用户权限管理

2. Docker-compose 部署 JumpServer 的核心优势是什么?

一键化部署配置简单,可以直接解决服务依赖和启动顺序管理,降低手动配置出错的概率。统一的配置管理,所有环境变量和配置都集中在 docker-compose.yml中,易于管理和修改。易于备份和迁移。

练习用 Docker-compose 部署 JumpServer,创建普通用户并分配资产权限。

下载官方提供的compose文件

下载官方的变量文件

写一个可以提取密钥并修改变量文件的脚本

配置变量文件

配置docker-compose文件

然后输入docker-compose up -d 启动

通过浏览器来访问

初始账户密码是

用户:admin

密码:ChangeMe

然后会自动让你更改密码

然后再次登录,会有一个条款认证,同意即可

先创建用户组

创建普通用户

在右侧的用户列表,点击创建

创建并加入组

创建并加组成功

接下来进行分配资产的操作

先创建资产

然后进行分配

分配成功

登录eddy用户

可以看到可以链接的资产,表明分配成功

Git 核心概念实践:暂存区、提交与分支操作

3.Git "暂存区" 的核心作用是什么?初始化仓库,完成文件创建、提交、分支切换操作。

Git 的数据存储从物理上分为当前项目目录和当前项目目录下的隐藏子目录.git,分别称为工作区和版本库,Git 版本库逻辑上又分为暂存区和本地仓库

也称为索引区,缓存区,用于存储在工作区中对代码进行修改后的文件所保存的地方,只有放入此区的文件才能被git进行管理,使用 git add添加,对应为<项目目录>/.git/index文件,暂存区主要用于临时保存文件少量变更,类似于邮件中的草稿箱,当变更累积到一定阶段,希望生成里程碑式的结果时,会使用commit,将暂存区的变更一次性的批量提交到本地仓库。

实践

创建并进入相关工作目录

初始化项目

配置用户及其邮箱

添加暂存区并提交数据

查看现有分支

创建

切换

私有镜像仓库强化:Harbor HTTPS 证书配置与验证

4.生成自签证书,配置 Harbor HTTPS 并验证连接。

微服务基石:基于 Docker-compose 的 Nacos 与 Gateway 服务注册验证

5.用 Docker-compose 启动 Nacos 和 Gateway 服务,验证注册成功。

创建项目目录结构

创建docker-compose.yml文件

创建nacos/init.d/custom.properties文件

创建gateway/pom.xml文件

创建gateway/src/main/resources/application.yml

创建Gateway主类 (gateway/src/main/java/com/example/GatewayApplication.java)

创建gateway/Dockerfile文件

docker-compose up -d启动

浏览器访问

启动成功!

一站式 DevOps 平台搭建:Docker 部署 GitLab 及权限管理

6.Docker 安装 Gitlab,创建用户和项目并分配权限。

创建GitLab数据目录

创建/srv/gitlab/docker-compose.yml文件

启动

查看

等到其healthy就启动好了,然后获取密码

浏览器访问

创建新用户

点击admin

点击左侧Users

点击

填写信息

然后点击create user

创建成功

接下来创建项目

登录后点击 "+" 按钮 → "New project"

选择 "Create blank project"

填写项目信息:

Project name: 项目名称(如:my-project)

Project slug: 项目URL标识

Visibility Level: 选择可见性级别(Private/Internal/Public)

点击 "Create project"

通过Web界面分配权限

进入项目页面

点击左侧菜单 "Project information" → "Members"

点击 "Invite members"

输入用户名或邮箱

选择权限级别:

Guest: 只读访问

Reporter: 可以查看和创建issue

Developer: 可以推送代码、创建分支

Maintainer: 可以管理项目设置

Owner: 完全控制

然后点击 "Invite"

效果如图

全栈项目实战:RuoYi-Vue 前后端分离项目容器化部署与跨域配置

  1. JAVA 项目 RuoYi-Vue 前后端架构部署,部署前后端服务,配置跨域并成功登录。

首先分配一下

在每台主机先安装必要工具

apt update

apt install -y curl wget vim git

配置所有主机的hosts文件,添加以下内容

10.0.0.100 www.wang.org

10.0.0.101 ui.wang.org

10.0.0.102 api.wang.org

10.0.0.103 mysql.wang.org redis.wang.org

在10.0.0.103上部署MySQL和Redis

apt install mysql-server -y

mysql_secure_installation

对MySQL进行配置

安装apt install redis-server -y

修改配置

重启redis

配置防火墙

在10.0.0.102上部署RuoYi后端

安装Java和Maven

下载和配置RuoYi后端

创建项目目录

下载RuoYi源码

修改数据库连接配置

vim ruoyi-admin/src/main/resources/application-druid.yml

vim ruoyi-admin/src/main/resources/application.yml

构建和启动后端

构建项目

mvn clean package -Dmaven.test.skip=true

启动后端服务

cd ruoyi-admin/target

nohup java -jar ruoyi-admin.jar > ruoyi.log 2>&1 &

检查服务是否启动

ps aux | grep java

netstat -tlnp | grep 8080

在10.0.0.101上部署RuoYi前端

安装Node.js和npm

检查

下载和配置RuoYi前端

创建项目目录

git clone https://github.com/yangzongzhuan/RuoYi-Vue.git

npm install

修改配置vim .env.production

构建前端项目

npm run build:prod

ls -la dist/

安装和配置nginx

对100主机进行安装nginx和配置

启用配置

初始化数据

重启后端服务

停止现有服务

pkill -f ruoyi-admin.jar

重新启动

cd /opt/ruoyi/RuoYi-Vue/ruoyi-admin/target

nohup java -jar ruoyi-admin.jar > ruoyi.log 2>&1 &

打开浏览器访问,成功登录,搭建成功

相关推荐
hwj运维之路34 分钟前
超详细ubuntu22.04部署k8s1.28高可用(二)【结合ingress实现业务高可用】
运维·云原生·容器·kubernetes
骂我的人都死了1 小时前
DevOps架构部署
运维·ubuntu·docker·k8s·github·devops·python3.11
AL3171 小时前
模拟实现NetDevOps全生命周期自动化网络运维
运维·docker·centos·ensp·netmiko
懂营养的程序员2 小时前
DevOps 是如何诞生的?从“左右互搏”到“左右开弓”的故事
运维·devops
不念霉运2 小时前
中国DevOps平台选型指南:云原生时代的技术决策方法论
运维·云原生·devops
测试人社区—03922 小时前
UI测试在DevOps流水线中的卡点设计:质量保障的智能防线
运维·驱动开发·测试工具·ui·ar·vr·devops
Alaaaaaaan2 小时前
[DevOps]使用github-action工具部署docker容器(实现提交代码一键推送部署到服务器)
服务器·前端·docker·容器·github
嘉为蓝鲸2 小时前
嘉为蓝鲸DevOps缺陷管理协同中枢:破解 “单测多研” 质量困局,打造高效协同新范式
devops·需求管理·敏捷协同·cteam·敏捷协同平台
70asunflower2 小时前
Docker exec 命令完全解析
linux·ubuntu·docker
玉梅小洋4 小时前
Docker 镜像在节点间的高效拷贝的方案
运维·docker·容器