第15周作业

1.总结Dockerfile的指令和Docker的网络模式

1.1总结Dockerfile的指令

1、FROM:指定基础镜像

  • 用途:指定基础镜像。所有 Dockerfile 必须以 FROM 指令开始,用来定义后续指令的基础镜像

  • 格式

    • FROM [--platform=<platform>] <image>[:<tag>] [AS <name>]
    • FROM [--platform=<platform>] <image>[@<digest>] [AS <name>]

    --platform 指定镜像的平台,如:linux/amd64, linux/arm64, or windows/amd64
    tagdigest 是可选项,如果不指定,默认为 latest

  • 说明:这是每个 Dockerfile 的第一个非注释指令,用于指定新镜像的基础。可以是官方提供的基础镜像(如 alpine, ubuntu),也可以是自定义的镜像。
    标签(:latest)默认为最新版本,但最好明确指定一个具体的版本号以确保稳定性和可重复性。
    默认情况下,docker build 会在 docker 主机上查找指定的镜像文件,在其不存在时,则会从 Docker Hub Registry 上拉取所需的镜像文件,如果找不到指定的镜像文件,docker build 会返回一个错误信息


2、LABEL:指定镜像元数据

  • 用途:为镜像添加元数据,如作者信息或镜像描述等
  • 格式
    • LABEL key="value"
    • LABEL <key>=<value> [key2=value2...]
    • 多标签写法:
      • 一行格式:
        LABEL multi.label1="value1" multi.label2="value2" other="value3"
      • 多行格式:
        LABEL multi.label1="value1" \
        multi.label2="value2" \
        other="value3"
  • 说明:给镜像或其层添加描述性的标签,方便管理和查找。例如版本信息、作者等。一个镜像可以有多个label ,还可以写在一行中,即多标签写法,可以减少镜像的大小。旧版本的 Dockerfile 使用 MAINTAINER 来指定维护者信息,现在已经被废弃。推荐使用 LABEL 来代替

3、RUN:执行命令

  • 用途:在构建镜像阶段,执行FROM指定镜像所支持的Shell命令。通常用于安装软件包或配置环境

  • 格式

    • Shell 格式: RUN <command>
    • Exec 格式: RUN ["executable","param1","param2"]
  • 说明:RUN可以写多个,每一个RUN指令都会建立一个镜像层,应尽可能合并成一条指令减少镜像层数量,如将多个shell 命令通过 && 连接起来成为一条指令。 每个RUN 都是独立运行的,和前一个RUN 无关。这不仅减少了镜像大小,也加快了构建速度

      shell 格式中,<command>通常是一个shell 命令,且以“/bin/sh -c" 来运行它,	
      这意味着此进程在容器中的PID不为1,不能接收Unix信号,因此,当使用
      docker stop <container>命令停止容器时,此进程接收不到 SIGTERM 信号。
      
      Exec格式中的参数是一个JSON格式的数组,其中,<executable> 为要运行的
      命令,后面的<paramN>为传递给命令的选项或参数;然而此种格式指定的命令
      不会以”/bin/sh -c" 来发起,
      因此常见的shell操作如变量替换以及通配符(?,*等)替换将不会进行;不
      过,如果要运行的命令依赖于shell特性的话,可以将其替换为类似下面的格式
    
      RUN ["/bin/bash","-c","<executable>","<param1>"]
    

4、ENV:设置环境变量

  • 用途:设置环境变量

  • 格式

    • ENV <key>=<value> [key2=value2...]
    • ENV <key1>=<value1> <key2>=<value2> \
      <key3>=<value3> ...
      此格式可以支持多个key赋值,定义多个变量建议使用,减少镜像层
      如果中包含空格,可以以反斜线\进行转义,也可以通过对加引号进行标识;
      另外反斜线\也可用于续行
  • 说明:环境变量可以在后续的 RUN 指令中使用,也可能在容器启动后通过 docker inspect 查看或通过docker run --env 设置/修改。这对于传递配置参数非常有用。


5、COPY:复制文件

  • 用途:将本地文件/目录复制到镜像中,不支持 URL 或自动解压
  • 格式
    COPY [--chown=<user>:<group>] <src>... <dest>
    COPY [--chown=<user>:<group>] ["<src>", ... "<dest>"] #路径中有空白字符时,建议使用此格式
  • 说明:COPY是一个简单直接的方式
    • 只做简单的复制操作而不处理压缩文件或下载链接
    • 可以是多个,可以使用通配符,通配符规则满足Go的filepath.Match规则
    • 必须是build上下文件中的路径(为Dockerfile所在目录的相对路径),不能是其父目录中的文件
    • 如果是目录,则其内部文件或子目录会被递归复制,但目录本身不会被复制
    • 如果指定了多个,或其中使用了通配符,则必须是一个目录,且必须以 / 结尾
    • 可以是绝对路径或是WORKDIR指定的相对路径
    • 使用COPY指令,源文件的各种元数据都会保留。比如读、写、执行权限、文件变更时间等
    • 如果事先不存在,它将会被自动创建,这包括其父目录路径,即递归创建目录

6、ADD:复制和解包文件

  • 用途:从本地文件系统或远程 URL 复制文件/目录到镜像中,并且支持自动解压 tar 文件(但不包括其他类型的压缩文件)。
  • 格式
    ADD [--chown=<user>:<group>] <src>... <dest>
    ADD [--chown=<user>:<group>] ["<src>", ... "<dest>"]
  • 说明:尽管 ADD 支持更多功能,但在大多数情况下推荐使用 COPY,因为它更直观并且行为更加一致
    • 可以是Dockerfile 所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压)
    • 可以是绝对路径或者是 WORKDIR指定的相对路径
    • 如果是目录,只复制目录中的内容,而非目录本身
    • 如果是一个URL,下载后的文件权限自动设置为600
    • 如果为URL且不以 / 结尾,则指定的文件将被下载并直接被创建,如果以 / 结尾,则文件名URL指定的文件将被直接下载并保存为 /<filename>
    • 如果是一个本地文件系统上的打包文件,如: gz,bz2,xz,它将被解包,其行为类似于"tar -x" 指令,但是通过URL获取到的tar 文件将不会自动展开
    • 如果有多个,或其间接或直接使用了通配符,则必须是一个以 / 结尾的目录路径;如果不以 / 结尾,则其被视作一个普通文件,

7、CMD:容器启动命令

  • 用途:容器启动命令,提供默认执行的命令。这些命令可以被 docker run 后面参数覆盖
  • 格式
    • Shell 格式:CMD command param1 param2
      提供给需要交互的应用:此种形式支持环境变量

    • Exec 格式:CMD ["executable","param1","param2"]
      推荐方式,第一个参数必须是命令的全路径,此种形式不支持环境变量

    • 参数格式:CMD ["param1","param2"]
      作为 ENTRYPOINT 命令的默认参数

  • 说明:当没有提供其他参数时,docker run会使用此命令启动容器。如果指定了其他命令,则会覆盖这里的设置的内容。建议使用数组形式来避免解析问题

8、ENTRYPOINT:入口点

  • 用途:配置容器启动时执行的命令,与CMD 不同的是它不会被 docker run 提供的参数覆盖,而是将这些参数作为传给 ENTRYPOINT 的参数
  • 格式
    • Shell 格式: ENTRYPOINT command param1 param2
    • Exec 格式:ENTRYPOINT ["executable", "param1", "param2"]
  • 说明:ENTRYPOINT 和 CMD 可以配合使用,其中 CMD 可以为 ENTRYPOINT 提供可变参数,而不需要变动的部分可以写在 ENTRYPOINT 里面。

9、ARG:构建参数

  • 用途:在构建阶段指定变量,和ENV 不同的是,容器运行时并不存在ARG定义的环境变量
  • 格式
    • ARG <name> [=<default value>]
  • 说明:如果和 ENV 同名,ENV 覆盖 ARG 变量,ARG 指令放在第一个 FROM 之前声明变量。ARG 提供了一种灵活的方法来定制化镜像构建过程,比如根据不同环境调整某些配置选项。

10、VOLUME:匿名卷

  • 用途:创建挂载点或声明卷,允许数据持久化存储
  • 格式
    • VOLUME ["<容器内路径1>","<容器内路径2>"...]
  • 说明:VOLUME 使得容器内外的数据交换变得容易,特别适合数据库或其他需要保存状态的应用程序。如果容器内不存在指定的路径,在创建容器时会自动 创建;如果存在指定的路径,将会把目录的内容复制到宿主机的实际目录。宿主机目录为/var/lib/docker/volulmes/<volume_id>/_data

11、EXPOSE:暴露端口

  • 用途:指定服务端的容器对外暴露(监听)的端口号,以实现容器与外部通信
  • 格式
    • EXPOSE <port>[<port>/tcp|udp] ... #默认是tcp协议
  • 说明:EXPOSE 主要是为了文档化的目的,仅仅是声明容器打算使用什么端口,不会真正暴露端口,即不会自动在宿主机进行端口映射。 启动容器时需要通过 -P 或 -p ,Dcoker 主机才会真正分配一个端口转发到指定暴露的端口才可使用。
    即使 Dockerfile 没有EXPOSE 端口指令,也可以通过docker run -p 临时暴露容器内程序真正监听的端口。

12、WORKDIR:指定工作目录

  • 用途:设置工作目录,即后续的 RUN、CMD、ENTRYPOINT 指令的工作起点。
  • 格式
    • WORKDIR /path/to/workdir
  • 说明:WORKDIR 确保所有相对路径的操作都在同一上下文件中进行,提高了脚本的一致性和可读性。如该目录不存在,WORKDIR会自行创建。

13、ONBUILD:子镜像引用父镜像的指令

  • 用途:用来配置当构建镜像的子镜像时,会自动触发执行的指令,但在当前镜像构建时,并不会执行,即延迟到子镜像构建时才执行
  • 格式
    • ONBUILD [INSTRUCTION]
  • 说明:有助于自动化复杂的多阶段构建流程。ONBUILD 不能自我嵌套,且不会触发FROM指令。使用 ONBUILD 指令的镜像,推荐在标签中注明,如 ruby:1.9-onbuild

14、USER:指定当前用户

  • 用途:切换接下来的命令将以该用户的身份执行,
  • 格式
    • USER <user>[:<group>]
    • USER <UID>[:<GID>]
  • 说明:通过 USER 指定非 root 用户来提升安全性,避免不必要的权限过高带来的风险。这个用户必须是事先建立好的,否则无法切换

15、HEALTHCHECK:健康检查

  • 用途:查检容器的健康性
  • 格式
    • HEALTHCHECK [选项] CMD <命令>
      设置检查容器健康状况的命令,如果命令执行失败,则返回1,即 unhealthy
    • HEALTHCHECK NONE
      如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令。
  • 范例:
    HEALTHCHECK --interval=5s --timeout=3s CMD curl -fs http://localhost/
  • 说明
    • 支持的选项:
      --interval=<间隔> #两次健康检查的间隔,默认为30秒
      --timeout=<时长> #健康检查命令运行超时时间,如果超过这个时间,本次健康检查视为失败,默认为30秒
      --retries=<次数> #当连续失败指定次数后,则将容器状态视为 unhealthy,默认3次
      --start-period=<FDURATION> #容器启动后多久进行健康性检查,default: 0s

    • 检查结果返回值:

        0		#success the container is healthy and ready for use
        1		#unhealthy the container is not working correctly
        2		#reserved do not use this exit code
      

1.2 总结Docker的网络模式

Docker 的网络支持5种网络模式

  • Bridge
  • Host
  • Container
  • None
  • Custom

1) Bridge 网络模式

本模式是docker的默认模式,此模式创建的容器会为每一个容器分配自己的网络 IP 等信息,并将容器连接到一个虚拟网桥与外界通信。
通过SNAT访问外网;使用DNAT 可以让容器被外部主机访问;此模式也称为NAT模式
Bridge 网络模式的宿主机需要启动 ip_forward功能

Bridge网络模式的特点:

  • 网络资源隔离:不同宿主机的容器无法直接通信,各自使用独立网络
  • 无需手动配置:容器默认自动获取172.17.0.0/16 的 IP 地址,此地址可修改
  • 可访问外网:利用宿主机的物理网卡,SNAT连接外网
  • 外部主机无法直接访问容器:可能通过配置 DNAT 接受外网的访问
  • 性能较低:因为可通过NAT,网络转换带来更多的损耗
  • 端口管理繁琐:每个容器必须手动指定唯一的端口,容器产生端口冲突。
  • 配置灵活性:可以创建自定义的 bridge 网络,提供更精细的控制,如静态 IP 分配 等。

2)Host 模式

Host 网络模式特点:

  • 使用参数 --network host 指定
  • 共享宿主机网络
  • 各容器网络无隔离
  • 网络性能无损耗
  • 网络故障排除相对简单
  • 容易产生端口冲突
  • 网络资源无法分别统计
  • 不支持端口映射
  • 不可移植:这种模式在不同操作系统上有不同的行为,特别是在 Windows 和 Mac 上,它不是真正意义上的“host”模式

3)Container 模式

Container 模式特点

  • 使用参数 --network container:名称或ID指定
  • 与宿主机网络空间隔离
  • 容器间共享网络空间,直接使用对方的网络
  • 第一个容器的网络可能是brigde,或none,或者host,而第二个容器模式依赖于第一个容器,它们共享网络
  • 如果第一个容器停止,将导致无法创建第二个容器
  • 第二个容器可以直接使用 127.0.0.1 访问第一个容器
  • 适合频繁的容器间的网络通信
  • 默认不支持端口映射,较少使用

4)None 模式

none 模式特点

  • 使用参数 --network none 指定
  • 默认无网络功能 ,无法和外部通信
  • 无法实现端口映射
  • 适用于测试环境
  • 极少使用

5)自定义网络模式

  • 自定义网络,使用自定义的网段地址,网关等信息
  • 实现不同集群应用的独立网络管理,而互不影响
  • 在同一个网络内,可以直接使用容器名相互访问

2.搭建harbor私有仓库并且上传镜像到私有仓库

2.1 环境准备:4台主机,2台harbor服务器,1台docker 测试机,1台haproxy

10.0.0.200 harbor01
10.0.0.201 harbor02
10.0.0.202 client01
10.0.0.203 haproxy

2.2 安装第1台 Harbor服务器 10.0.0.200

1、安装docker和docker-compose
2、下载harbor 的离线安装包,解压到/apps/harbor 下
下载地址: https://github.com/vmware/harbor/releases
wget
https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz
mkdir /apps
tar xvf harbor-offline-installer-v2.10.0.tgz -C /apps/
3、编辑 harbor 配置文件,
[root@u200: /apps/harbor]# mv harbor.yml.tmpl harbor.yml
vim harbor.yml

hostname = 10.0.0.200
harbor_admin_password = 123456
#修改管理密码; 如果不使用https要注释掉相关行,
使用https需要提前生成证书并配置路径;数据卷建议修改成性能更好的独立存储。
#https:
# port: 443
# certificate: /your/certificate/path
# private_key: /your/private/key/path

4、运行 harbor 安装脚本
#先安装python
apt -y install python3

#安装docker harbor
/apps/harbor/install.sh
5、实现开机自动启动 harbor

旧版 Harbor 开机不会自动启动,可以创建 service 文件实现
[root@harbor ~]#vim /lib/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker-compose -f /apps/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /apps/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target

6、登录 harbor 主机网站

  • 登录网页进行管理,新建项目,新建用户等。
    在这里插入图片描述
    用户名:dev
    密码:Magedu@01
    在这里插入图片描述
    给 baseimages 项目添加用户“dev” ,并设置为项目管理员
    在这里插入图片描述

2.3 命令行登录 Harbor

#方法1:修改docker.service,允许不安全的连接
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
--insecure-registry 10.0.0.200 --insecure-registry 10.0.0.201

[root@u200: ~]#systemctl daemon-reload
[root@u200: ~]#systemctl restart docker


[root@u202: ~]# docker login 10.0.0.200
Username: dev
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

2.4 拉取网络镜像到本地,给本地镜像打标签并上传到 Harbor1

#先从网络上拉一个镜像(通过渡渡鸟链接)
[root@u202: ~]# docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.26.1-alpine

#给镜像打标签
[root@u202: ~]# docker tag swr.cn-nortswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.26.1-alpine 10.0.0.200/baseimages/nginx:1.26.1-alpine

#上传镜像到私有仓库 (10.0.0.200)
[root@u202: ~]# docker push 10.0.0.200/baseimages/nginx:1.26.1-alpine
  • 访问Web页面验证:
    在这里插入图片描述

2.6 实现高可用双向复制。需要配置两台以上 harbor服务器,

2.6.1 安装第2台 harbor服务器,10.0.0.201 方法同上

2.6.2 在第2台 harbor 上新建项目(与第1台上项目同名)

在这里插入图片描述

2.6.3 在第2台harbor 上,仓库管理中新建目标实现第2台到第1台的单向复制

  • 先在源 harbor 主机上新建目标
  • 目标名即项目名 baseimages
  • 目标URL: http://10.0.0.200 (指向对方 harbor服务器)
  • 访问ID:admin
  • 访问密码:123456
  • 需要使用管理用户,因为开发者用户,无法实现镜像的删除同步

在这里插入图片描述

在这里插入图片描述

2.6.4 在第2台harbor 上新建复制规则,实现到第1台的单向复制

在这里插入图片描述

2.6.5 在harbor 1上重复以上两步,实现双向同步

2.6.6 测试上传镜像到10.0.0.201,查看web管理页面,10.0.0.200上也同步到了镜像在这里插入图片描述

2.7 使用反向代理实现负载均衡。

#安装nignx
apt update && apt install nginx

#配置反向代理
[root@haproxy: ~]# vim /etc/nginx/conf.d/harbor.hui.cn.conf
upstream harbor {
        ip_hash;
        server 10.0.0.200:80;
        server 10.0.0.201:80;
}

server {
        listen 80;
        server_name harbor.hui.cn;
        client_max_body_size 10g;
        location / {
                proxy_pass http://harbor;
        }
}

#客户端配置解析
10.0.0.203 harbor.hui.cn

WEB登录访问 harbor.hui.cn 验证
在这里插入图片描述


3.总结JumpServer的安装和使用

3.1 安装要求

JumpServer 环境要求:

  • 硬件配置:2个CPU核心,4G内存,50G硬盘(最低)
  • 操作系统:Linux发行版 x86_64
  • Python =3.6x
  • MySQL Server >= 5.6 或者 Mariadb Server >= 5.5.56 数据库编码要求 utf8,新版要求5.7 以上
  • Redis:新版要求 6.0以上

3.2 安装方法:

  • 手动部署:按组件逐个实现
  • 极速部署:allinone
  • 容器部署:基于docker 和 docker-compose 实现
  • 分布式部署:适用大型环境

3.3 基于Docker 部署

使用外置 MySQL 数据库和 Redis
基于容器,安装完毕后可以通过以下方式访问

  • 浏览器访问:http://<容器所在服务器IP>
  • 默认管理员账户:admin/admin
  • SSH 访问:ssh -p 2222 <容器所在服务器IP>
  • XShell 等工具请添加 connection 连接,默认 ssh 端口 2222

3.3.1 安装Docker 环境

apt update && apt install docker.io
docker version

3.3.2 安装 MySQL 服务

#安装mysql-server
apt update && apt install mysql-server

#编辑配置文件,允许远程连接
vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

#创建数据库和用户
create database jumpserver default charset 'utf8';
create user 'jumpserver'@'%' identified with mysql_native_password by '123456';
grant all on jumpserver.* to 'jumpserver'@'%';
flush privileges;

3.3.3 安装 Redis 服务

#安装redis
apt update && apt install redis

#编辑配置文件,允许远程连接,设置密码
vim /etc/redis/redis.conf
bind 0.0.0.0
requirepass 123456

3.3.4 基于自定义网络利用Docker部署 JumpServer

#生成相关key
[root@u201: ~]# cat /dev/urandom |tr -dc '[:alnum:]' |head -c50
d4JevE7GBomHSeJKe7k1ZfZIUBkwxrJEK74BD68eDF8JDn5wis
[root@u201: ~]# cat /dev/urandom |tr -dc '[:alnum:]' |head -c30
ptiVu4WSXq8iH9SnBIvyGlQUKKO2AR

#创建自定义网络
[root@u201: ~]# docker network create jumpserver-net

#启动JumpServer容器
docker run --name jms_all -d \
-p 80:80 \
-p 2222:2222 \
-p 30000-30100:30000-30100 \
-e SECRET_KEY=I0WjAT4ZIi9n9HWCYwQ7kpJqtoqR9z468wM2Wg3Xp9bDEWg3Xk \
-e BOOTSTRAP_TOKEN=Dnpo0jGAtLUxyCCOPZ064zYqhLbnCb \
-e LOG_LEVEL=ERROR \
-e DB_HOST=10.0.0.201 \
-e DB_PORT=3306 \
-e DB_USER=jumpserver \
-e DB_PASSWORD=123456 \
-e DB_NAME=jumpserver \
-e REDIS_HOST=10.0.0.201 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD='123456' \
--privileged=true \
-v /opt/jumpserver/core/data:/opt/jumpserver/data \
-v /opt/jumpserver/koko/data:/opt/koko/data \
-v /opt/jumpserver/lion/data:/opt/lion/data \
-v /opt/jumpserver/magnus/data:/opt/magnus/data \
-v /opt/jumpserver/kael/data:/opt/kael/data \
-v /opt/jumpserver/chen/data:/opt/chen/data \
-v /opt/jumpserver/web/log:/var/log/nginx \
--network jumpserver-net \
--restart always \
jumpserver/jms_all:v3.10.0

3.4 JumpServer的使用

3.4.1 登录并初始化配置

浏览器访问
在这里插入图片描述
首次登录,需要修改admin 用户的密码
在这里插入图片描述
ssh 登录
[root@u201: ~]# ssh -p2222 admin@127.0.0.1

在这里插入图片描述

  • 配置邮件

在这里插入图片描述
在这里插入图片描述

3.4.2 创建 JumpServer 用户和组

  • 创建用户

  • 在这里插入图片描述

  • 创建组并将用户加入组中
    创建 development 组在这里插入图片描述将用户 dev添加到新建的development组,test 用户添加到test组在这里插入图片描述

  • 使用新用户登录在这里插入图片描述
    完善个人信息在这里插入图片描述

  • 禁用和启用用户
    禁用用户在这里插入图片描述
    启用用户
    在这里插入图片描述

  • 启用用户多因子认证功能

    • 开启MFA
    • 用户列表-指定用户-更新在这里插入图片描述
    • MFA级别——启用在这里插入图片描述
  • 创建系统审计员在这里插入图片描述

  • 使用审计用户登录在这里插入图片描述

3.4.3 创建资产并关联特权用户

  • 通过账号模板创建系统用户中特权用户(管理用户)
    在这里插入图片描述

  • 创建资产(主机)并关联特权用户在这里插入图片描述

  • 继续添加资产,使用模版添加特权用户在这里插入图片描述

  • 创建节点实现资产分类在这里插入图片描述

3.4.5 授权用户使用资产

  • 通过账号模板创建系统普通用户(系统用户中普通用户)在这里插入图片描述

  • 创建资产授权规则并在后端主机自动创建普通用户在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 测试登录访问后端服务器在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 测试上传和下载文件
    上传文件在这里插入图片描述在这里插入图片描述在这里插入图片描述
    下载文件在这里插入图片描述

  • ssh 连接 JumpServer

  • 在这里插入图片描述

3.4.6 数据库授权

  • 在后端服务器安装mysql并创建数据库和用户
#安装mysql
[root@u202: ~]# apt update && apt -y install mysql-server
[root@u202: ~]# sed -i '/127.0.0.1/s/^/#/' /etc/mysql/mysql.conf.d/mysqld.cnf
[root@u202: ~]# systemctl restart mysql

#创建数据库和用户
mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)

mysql> create user wordpress@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on wordpress.* to wordpress@'%';
Query OK, 0 rows affected (0.00 sec)

  • 创建数据库的系统用户 (账号模板创建用户)
    在这里插入图片描述

  • 创建数据库应用(资产)
    在这里插入图片描述在这里插入图片描述

  • 创建数据库授权规则(用户组–资产–用户 进行关联)
    在这里插入图片描述

  • 测试数据库连接
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 用 ssh 连接MySQL资产在这里插入图片描述在这里插入图片描述

3.4.7 会话管理

  • 查看在线会话在这里插入图片描述

  • 查看历史会话在这里插入图片描述

  • 查看回放在这里插入图片描述

  • 查看历史命令在这里插入图片描述

3.4.8 命令过滤器

  • 创建命令过滤器

  • 创建命令组在这里插入图片描述

  • 创建命令过滤规则在这里插入图片描述

  • 测试
    在这里插入图片描述

3.4.9 资产的批量导出和导入

  • 资产的批量导出
  • 批量导入资产
  • 在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值