• 华为云云耀云服务器L实例评测|Docker部署及应用


    前言

    本次给大家首先介绍下如何通过工单的方式解决云服务受到攻击,并带大家通过云耀云服务器L实例进行Docker的部署及应用。

    往期回顾:
    1.华为云云耀云服务器L实例评测|Ubuntu云服务器申请使用
    2.华为云云耀云服务器L实例评测|Ubuntu系统MySQL 8.1.0 Innovation压测

    📣 1.前言概述

    在上期对文章中,带大家进行Ubuntu系统MySQL 8.1.0,并通过专业工具进行压力测试,我们一起看看性能。整体来看达到了预期的压侧效果。
    同时对云服务器性能监控做了详细的描述,本次给大家首先介绍下如何通过工单的方式解决云服务受到攻击,并带大家通过云耀云服务器L实例进行Docker的部署及应用。

    在这里插入图片描述

    📣 2.服务器攻击

    ✨ 2.1 问题描述

    购买云服务器后,安装了PG数据库后,由于密码设置的过于简单,而且端口也使用的默认的端口,故别恶意攻击,在华为云官网收到了如下的信息
    问题描述: 华为云发现您的资源涉及对外攻击行为,该情况已对华为云的服务产生严重影响,违反了国家法律法规及《华为云用户协议》的相关规定。华为云即将对您的异常IP资源进行冻结,并请您采取相关安全防护措施。下午为恶意攻击,异常的信息。

    在这里插入图片描述

    ✨ 2.2 处理方法

    1)进入控制台,点开工单
    2)新建工单,按照如下图选择相应的信息录入,等待客户消息即可
    3)收到客服的反馈后,确实服务很周到,第一时间定位到问题并处理,超级赞!
    本次恶意攻击的原因是:
    
    您好,对于您咨询的,如沟通针对您的问题这边已经进行了排查,
    【造成问题的原因】:疑似postgressql弱口令导致
    【解决办法】:客户已删除木马文件并重启主机,已解封ip,为了后续业务安全,方便的话最好是备份重装一下,因为被入侵的主机已经不可信任了,不能排除是不是有其他后门。客户明文暴露您的密码,不利于信息安全,建议工单结束后修改密码,后期linux主机加固建议:
    
    1、设置所有OS系统口令(包括管理员和普通用户)、数据库账号口令、应用(WEB)系统管理账号口令为强口令,密码12位以上;将主机登录方式改为秘钥登录彻底规避风险:
     强口令设置要求参照:https://bbs.huaweicloud.com/blogs/87a98385ec6411e79fc57ca23e93a89f
     秘钥登录设置参照:https://bbs.huaweicloud.com/blogs/eff0e5af7d7f11e7b8317ca23e93a891
    2、严格控制系统管理员账户的使用范围,为应用和中间件配置各自的权限和并严格控制使用范围。
     禁止不必要的端口直接暴露在公网,设置防火墙规则或配置安全组策略来禁止端口开放情况;非公共开放的业务端口(如SSH),建议设置只允许特定的IP进行连接;安全组配置示例链接如下:https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0081124350.html
    3、启动安全组白名单策略,根据业务需求对外开放端口,对于特殊业务端口,建议设置固定的来源IP(如:远程登录)或使用VPN、堡垒机建立自己的运维通道。
    4.建议定期做好数据备份(虚拟机内部备份,异地备份,云上云下备份等),避免被加密勒索;
    5.定期检查系统和软件中的安全漏洞,及时打上补丁
    如您的问题已经解决请您点击工单右上角 “关闭工单” 结束本次服务;如果您仍需帮助,请您驳回并留言,我们将继续为您解答。如您在此单授权中,提供了登录密码等机密信息,为了您的资源安全,请您在关单后尽快修改,感谢您的支持与理解,祝您生活愉快!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

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

    📣 3.Docker简介

    可以简单认为,容器是一个超级轻量级的虚拟机(主机),容器和容器之间的进程是相互隔离的。
    使用容器给我们带来的好处:
    A.供节点,可以当做一台主机来使用,就像使用物理机一样的来使用docker容器
    B.可以在一台虚拟机上(192.168.12.12)安装配置2个Mysql实例,它们的端口都是3306端口。
    C.可以把我们的应用程序进行打包。软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来,开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
    Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

    在这里插入图片描述

    📣 4.安装Docker

    首先要确定自己的操作系统版本,通过以下命令
    root@hcss-ecs-7c99:~# lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 22.04.1 LTS
    Release: 22.04
    Codename: jammy
    本次我们用的是Ubuntu系统,则按照以下方法进行安装进行,本次安装的是dcoker-ce

    ✨ 4.1 卸载旧版docker

    如果你的云服务器之前已经安装了docker,则按照以下命令卸载原有的docker
    root@hcss-ecs-7c99:~# apt-get remove docker docker-engine docker.io containerd runc

    ✨ 4.2 安装依赖包

    ##获取最新的软件包
    root@hcss-ecs-7c99:~# sudo apt-get update
    Hit:1 http://repo.huaweicloud.com/ubuntu jammy InRelease
    Get:2 http://repo.huaweicloud.com/ubuntu jammy-updates InRelease [119 kB]
    Get:3 http://repo.huaweicloud.com/ubuntu jammy-backports InRelease [109 kB]
    Get:4 http://repo.huaweicloud.com/ubuntu jammy-security InRelease [110 kB]
    Get:5 http://repo.huaweicloud.com/ubuntu jammy-updates/main amd64 Packages [1,014 kB]
    Fetched 1,352 kB in 0s (3,769 kB/s)
    Reading package lists… Done
    ##安装依赖包
    root@hcss-ecs-7c99:~# sudo apt-get install ca-certificates curl gnupg lsb-release

    ✨ 4.3 安装GPG证书

    root@hcss-ecs-7c99:~# curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

    ✨ 4.4 配置仓库

    add-apt-repository “deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable”

    在这里插入图片描述

    ✨ 4.5 正式安装Docker

    apt-get install docker-ce docker-ce-cli containerd.io
    
    root@hcss-ecs-7c99:~# sudo docker version
    Client: Docker Engine - Community
     Version:           24.0.6
     API version:       1.43
     Go version:        go1.20.7
     Git commit:        ed223bc
     Built:             Mon Sep  4 12:31:44 2023
     OS/Arch:           linux/amd64
     Context:           default
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    
    
    默认情况下 Docker的存放位置为:/var/lib/docker
    root@hcss-ecs-7c99:~# ll /var/lib/docker
    total 44
    drwx--x--- 10 root root 4096 Oct  2 10:52 ./
    drwxr-xr-x 53 root root 4096 Oct  2 09:43 ../
    drwx--x---  2 root root 4096 Oct  2 09:43 containers/
    -rw-------  1 root root   36 Oct  2 09:43 engine-id
    drwx------  3 root root 4096 Oct  2 09:43 image/
    drwxr-x---  3 root root 4096 Oct  2 09:43 network/
    drwx--x---  3 root root 4096 Oct  2 10:52 overlay2/
    drwx------  4 root root 4096 Oct  2 09:43 plugins/
    drwx------  2 root root 4096 Oct  2 10:52 runtimes/
    drwx------  2 root root 4096 Oct  2 10:52 tmp/
    drwx-----x  2 root root 4096 Oct  2 10:52 volumes/
    
    
    安装必要的一些系统工具
    apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在这里插入图片描述

    ✨ 4.6 配置用户组

    默认情况下,只有root用户和docker组的用户才能运行Docker命令。
    我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。
    命令如下:sudo usermod -aG docker $USER

    ✨ 4.7 运行docker

    1.启动过程有如下报错,解决办法如下
    root@hcss-ecs-7c99:~# systemctl start docker
    Job for docker.service failed because the control process exited with error code.
    See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
    
    root@hcss-ecs-7c99:~# systemctl status docker.service
    × docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
         Active: failed (Result: exit-code) since Mon 2023-10-02 10:52:21 CST; 26s ago
    TriggeredBy: × docker.socket
           Docs: https://docs.docker.com
        Process: 80797 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
       Main PID: 80797 (code=exited, status=1/FAILURE)
            CPU: 104ms
    
    Oct 02 10:52:19 hcss-ecs-7c99 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
    Oct 02 10:52:19 hcss-ecs-7c99 systemd[1]: docker.service: Failed with result 'exit-code'.
    Oct 02 10:52:19 hcss-ecs-7c99 systemd[1]: Failed to start Docker Application Container Engine.
    Oct 02 10:52:21 hcss-ecs-7c99 systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
    Oct 02 10:52:21 hcss-ecs-7c99 systemd[1]: Stopped Docker Application Container Engine.
    Oct 02 10:52:21 hcss-ecs-7c99 systemd[1]: docker.service: Start request repeated too quickly.
    Oct 02 10:52:21 hcss-ecs-7c99 systemd[1]: docker.service: Failed with result 'exit-code'.
    Oct 02 10:52:21 hcss-ecs-7c99 systemd[1]: Failed to start Docker Application Container Engine.
    
    --解决办法如下:
    进入 /etc/docker
    查看有没有daemon.json文件,如果没有就自己新建一个:
    # 添加 docker 配置 /etc/docker/daemon.json
    {
     "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    
    通过以下方法重名命后,重启服务器即可
    mv /etc/docker/daemon.json daemon.conf
    
    root@hcss-ecs-7c99:~# systemctl start docker
    root@hcss-ecs-7c99:~# systemctl status docker
    root@hcss-ecs-7c99:~# systemctl enable docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    在这里插入图片描述

    ✨ 4.8 验证docker

    root@hcss-ecs-7c99:~# docker run hello-world
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    719385e32844: Pull complete 
    Digest: sha256:4f53e2564790c8e7856ec08e384732aa38dc43c52f02952483e3f003afbf23db
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
     https://hub.docker.com/
    
    For more examples and ideas, visit:
     https://docs.docker.com/get-started/
     
     
    root@hcss-ecs-7c99:~# docker images
    REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
    hello-world   latest    9c7a54a9a43c   5 months ago   13.3kB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    装为docker后,顺便看了下华为云服务器的监控,一切都好
    在这里插入图片描述

    📣 5.使用docker

    ##拥有自己的云服务器Centos7.8
    
    1)拉取镜像
    docker pull daocloud.io/library/centos:centos7.8.2003
    
    root@hcss-ecs-7c99:~# docker images
    REPOSITORY                   TAG              IMAGE ID       CREATED        SIZE
    hello-world                  latest           9c7a54a9a43c   5 months ago   13.3kB
    daocloud.io/library/centos   centos7.8.2003   afb6fca791e0   3 years ago    203MB
    
    2)创建容器
    docker run -d --name centos7.8 -h centos7.8 \
    -p 220:22 -p 3387:3389 \
    --privileged=true \
    daocloud.io/library/centos:centos7.8.2003 /usr/sbin/init
    
    3)进入容器
    root@hcss-ecs-7c99:~# docker exec -it centos7.8 bash
    [root@centos7 /]# cat /etc/redhat-release 
    CentOS Linux release 7.8.2003 (Core)
    [root@centos7 /]# uname -r
    5.15.0-60-generic
    [root@centos7 /]# uname -a
    Linux centos7.8 5.15.0-60-generic #66-Ubuntu SMP Fri Jan 20 14:29:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
    
    非常开心,已经拥有自己的一台服务器了,后期可以做一些应用部署
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    Dynamic-DataSource多数据源配置mybatis/mybatis-plus
    一个简单的HTML 个人网页
    2023-9-12 01背包问题
    诞生在 KFC 的《开源之迷》:作者如何在嘈杂而开放的环境中进行创作
    spring boot 自定义druid数据源,如何注入配置
    一篇博客搞定移动端布局
    Angular升级时,如何升级kendo-angular-ui到兼容版本?
    分布式编程工具Akka Streams、Kafka Streams和Spark Streaming大PK
    MCS:离散随机变量——几何分布
    Flannel host-gw 和 vxlan
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/133487921