網絡安全 Day30-運維安全項目-容器架構上

容器架構上

  • 1. 什么是==容器==
  • 2. 容器 vs 虛擬機(化) :star::star:
  • 3. Docker極速上手指南
    • 1)使用rpm包安裝docker
    • 2) docker下載鏡像加速的配置
    • 3) 載入鏡像大禮包(老師資料包中有)
  • 4. Docker使用案例
    • 1) 案例01::star::star::star::star::star:啟動nginx:1.24鏡像并通過宿主機8848端口訪問
    • 2) 案例02: :star:docker run背后原理
    • 3) 案例03::star::star::star::star::star:查看容器
    • 4)案例04::star::star::star::star::star:刪除容器
    • 5) 案例05:啟動數據庫容器
    • 6) 案例06: :star::star::star::star::star:進入運行中的容器
    • 7) 案例07: 容器的自啟動
    • 8)案例08:查看鏡像
    • 9) 案例09:拉取鏡像
    • 10)案例10:刪除鏡像
    • 11)案例11:啟動系統鏡像
    • 12) 小結
  • 5. Docker初步自定義鏡像
    • 1)啟動ngx容器
    • 2) 連接到容器中
    • 3)進行測試
    • 4)保存鏡像
    • 5)根據新的鏡像創建容器并測試

1. 什么是容器

  • 容器是隔離的環境中運行的一個進程,如果進程結束,容器就會停止.
  • 細致:容器的隔離環境,擁有自己的ip地址,系統文件,主機名,進程管理,相當于一個mini的操作系統.

2. 容器 vs 虛擬機(化) ????

虛擬機(虛擬化)容器
優點1. 使用簡單
2. 也有成熟管理工具,vmware esxi,KVM,Openstack
3. 可以隨意定制.
4. 啟動虛擬機要經歷完整的Linux啟動流程
1. 快速部署(擴容,彈性伸縮)
2. 大部分環境都有現成鏡像
3. 讓我們不再關注系統基礎設施,把關注點放在配置,升級,優化
4. 不依賴硬件
5. 啟動容器秒級.
6. 相當于一個進程
缺點1. 需要硬件支持虛擬化技術(VT-X)
2. 資源利用率不高
3. 同一臺虛擬跑多個服務,可能有沖突
4. 占用資源較多.
5. 不滿足目前升級,快速擴容,快速部署,回滾不方便.
1. 使用較為復雜
2. 共享linux系統內核,推薦使用較新linux內核.

3. Docker極速上手指南

Linux內核: 3.10以上. 如果舊的內核需要升級內核才能使用.

  • 安裝docker環境,docker-ce(開源) docker-ee(企業版)
docker環境ip配置
oldboy-docker10.0.0.62/172.16.1.622c4G(至少1c2G)

1)使用rpm包安裝docker

  1. 解壓oldboyedu_docker_24_rpms.tar.gz(老師資料包中):tar xf oldboyedu_docker_24_rpms.tar.gz

  2. 進入目錄并安裝rpm包

    cd docker_24_rpms/
    yum localinstall -y *.rpm 
    
  3. 檢查是否安裝成功

    rpm -qa |grep docker 
    docker-compose-plugin-2.19.1-1.el7.x86_64
    docker-ce-cli-24.0.4-1.el7.x86_64
    docker-buildx-plugin-0.11.1-1.el7.x86_64
    docker-ce-rootless-extras-24.0.4-1.el7.x86_64
    docker-ce-24.0.4-1.el7.x86_64
    
  • 【后面工作中可以用】配置docker源(用于安裝docker)
#1.安裝相關依賴.
sudo  yum install -y yum-utils#2.下載官方的docker yum源文件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo#3.替換yum源地址
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo#4.安裝docker-ce
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin#5.啟動
systemctl enable --now  docker  #6.檢查
docker version 檢查 

2) docker下載鏡像加速的配置

我們使用docker的時候需要下載很多docker的鏡像.為了加速下載,需要配置docker加速.

  • docker下載鏡像加速

    阿里云,騰訊云有加速用的地址.

  • 阿里云為例,說明如何獲取加速用的地址

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

  1. 創建目錄:sudo mkdir -p /etc/docker
  2. 修改配置docker下載鏡像的加速地址(/etc/docker/daemon.json docker服務端的配置文件.)
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {"registry-mirrors": ["https://bjjtv7cs.mirror.aliyuncs.com"]
    }
    EOF
    
  3. 開機自啟動與重啟
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    sudo systemctl enable  docker
    

3) 載入鏡像大禮包(老師資料包中有)

#解壓大禮包的oldboyedu_useful_docker_images_v2.tar.gz
tar xf oldboyedu_useful_docker_images_v2.tar.gz#批量導入
cd oldboyedu_useful_docker_images/
for n in `ls` ;
do docker load  -i $n
done 

4. Docker使用案例

1) 案例01:??????????啟動nginx:1.24鏡像并通過宿主機8848端口訪問

  • 使用本地已有的鏡像(nginx:1.24),如果沒有則從遠程下載。
  • 運行鏡像(進程,容器)
  • 設置訪問的端口8848(宿主機)訪問容器中的80端口。
  • 瀏覽器訪問10.0.0.62:8848 訪問容器的80端口。
docker run -d  -p 8848:80  --name nginx_v1   nginx:1.24 
6f34a5df3a4049423c18ca606bbd3ae05caca4b111804d7aee598c842bd3056dss -lntup|grep 8848 
tcp    LISTEN     0      128       *:8848                  *:*                   users:(("docker-proxy",pid=3680,fd=4))
tcp    LISTEN     0      128    [::]:8848               [::]:*                   users:(("docker-proxy",pid=3686,fd=4))
  • 瀏覽器訪問:http://10.0.0.62:8848

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-jTv7AeMH-1691892607336)(assets/image-20230811085033860.png)]

  • 命令與參數
    命令作用
    docker run運行容器
    -d后臺運行
    – name指定名字,容器名字不能沖突。如果不指定就會隨機分配名字
    - p端口映射 宿主機端口,指定用容器和宿主機的端口進行關聯

2) 案例02: ??docker run背后原理

在這里插入圖片描述

3) 案例03:??????????查看容器

docker ps    #只顯示運行中的容器。docker ps -a #查看所有狀態的容器關閉,退出,。。。。
  • 啟動mysql:8.0-debian
#1 啟動mysql 8.0容器 
docker run -d --name mysql_8.0  -p 13306:3306  mysql:8.0-debian 
7d2dc00806dd9ea73638c8ff49a333c408a50c0eab2435b424f5763a102f73ae#2 查看運行中容器,發現沒有mysql-8.0容器 docker ps |grep mysql #3. 查看所有狀態的容器 發現mysql-8.0是exit退出狀態。
docker ps -a 

4)案例04:??????????刪除容器

docker rm    容器名字或id  #刪除已經關閉,退出,非運行容器。
docker rm -f  #強制刪除,刪除運行中的容器。docker rm -f mysql_8.0

5) 案例05:啟動數據庫容器

  • 數據庫容器需要額外的參數(變量)。
  • 需要通過-e參數設置MYSQL_ROOT_PASSWORD
#1. 啟動數據庫容器
docker run  -d -p 13306:3306   --name mysql_8.0_v2   -e  MYSQL_ROOT_PASSWORD=1    mysql:8.0-debian #2. 檢查容器狀態 
docker ps |grep mysql #3. 如果沒有則通過ps -a 查看
docker ps -a |grep mysql 

6) 案例06: ??????????進入運行中的容器

  • 溫馨提示:進入到運行中的容器。
#連接進入mysql容器 
docker exec  -it  mysql_8.0_v2 /bin/bash#連接進入nginx容器
docker exec  -it  nginx_v1 /bin/bash
可以修改首頁文件然后訪問測試。

連接后可以執行:du -sh /cat /etc/os-release查看一些容器信息。

  • 小結:
    • 核心掌握如何進入運行中的容器。
    • exec
    • -it 交互模式分配終端(命令行)
    • /bin/bash進不去可以改為/bin/sh

7) 案例07: 容器的自啟動

重啟docker服務后容器都是退出狀態(關閉)
通過docker start 一個一個啟動容器。
docker start nginx_v3 docker run 的時候加上--restart=always,設置容器什么時候自動運行。
docker run -d -p 8850:80 --restart=always   --name nginx_v4   nginx:1.24
通過systemctl restart docker 測試

8)案例08:查看鏡像

docker images  === docker image ls

9) 案例09:拉取鏡像

  • 從鏡像倉庫中下載鏡像。

docker pull nginx:alpinedocker images |grep nginx 
nginx        1.24          b6c621311b44   5 weeks ago     142MB
nginx        1.24-alpine   55ba84d7d539   8 weeks ago     41.1MB
nginx        alpine        cc44224bfe20   19 months ago   23.5MB
nginx        latest        605c77e624dd   19 months ago   141MB

10)案例10:刪除鏡像

docker rmi openjdk:10

注意要把名字和后邊的數字連起來

11)案例11:啟動系統鏡像

#1.
docker run  -itd  --name centos_7_v1   centos:7 
#2.
docker ps |grep centos 

加上-it即可。

12) 小結

docker鏡像操作指令
查看docker images
下載docker pull
刪除docker rmi(如果鏡像有對應的容器,則無法刪除。
Docker容器操作指令參數
啟動容器docker run-d -p –name --restart -e -itd
查看容器docker ps-a
刪除容器docker rm-f
進入容器docker exec-it xxx /bin/bash或/bin/sh

5. Docker初步自定義鏡像

目標:我們找到的鏡像無法直接瞞足我們的需求。

解決:自定義鏡像。

  • 任務目標:nginx鏡像包含bird代碼,小鳥飛飛代碼,選擇nginx:1.24。bird.zip

1)啟動ngx容器

#1.啟動
docker run -d  -p 8080:80  --name bird_v1    nginx:1.24#2.檢查
docker ps |grep bird 

2) 連接到容器中

  • 窗口1:鏈接到容器中
    docker exec  -it  bird_v1 /bin/bash
    
  • 窗口2
    1. 發送bird目錄下面的代碼到容器中的站的目錄 /usr/share/nginx/html/
      unzip bird.zip 
      cd bird/
      
  1. 上傳,把宿主機中的文件上傳到容器中:docker cp . bird_v1:/usr/share/nginx/html/
    #上傳:docker cp 宿主機目錄或文件 容器名:容器路徑 ※※※※※
    #下載:docker cp 容器名:容器路徑 宿主機目錄或文件

3)進行測試

  • http://10.0.0.62:8080/
  • 測試成功表示:
    • nginx服務是ok.
    • nginx+代碼也是ok.

4)保存鏡像

  • 把已經的容器保存成鏡像。
  1. 把容器保存成鏡像
    1. 語法:docker commit 容器名字 分類:名字版本
    2. 保存:docker commit bird_v1 oldboydiy:lidao_bird_v1
  2. 檢查是否有鏡像:docker images |grep lidao

5)根據新的鏡像創建容器并測試

docker run -d -p 8081:80    --name diy_bird_v1   oldboydiy:lidao_bird_v1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40377.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《內網穿透》無需公網IP,公網SSH遠程訪問家中的樹莓派

文章目錄 前言 如何通過 SSH 連接到樹莓派步驟1. 在 Raspberry Pi 上啟用 SSH步驟2. 查找樹莓派的 IP 地址步驟3. SSH 到你的樹莓派步驟 4. 在任何地點訪問家中的樹莓派4.1 安裝 Cpolar內網穿透4.2 cpolar進行token認證4.3 配置cpolar服務開機自啟動4.4 查看映射到公網的隧道地…

【JavaEE基礎學習打卡02】是時候了解Java EE了!

目錄 前言一、為什么要學習Java EE二、Java EE規范介紹1.什么是規范&#xff1f;2.什么是Java EE規范&#xff1f;3.Java EE版本 三、Java EE應用程序模型1.模型前置說明2.模型具體說明 總結 前言 &#x1f4dc; 本系列教程適用于 Java Web 初學者、愛好者&#xff0c;小白白。…

java接口導出csv

1、背景介紹 項目中需要導出數據質檢結果&#xff0c;本來使用Excel&#xff0c;但是質檢結果數據行數過多&#xff0c;導致用hutool報錯&#xff0c;因此轉為導出csv格式數據。 2、參考文檔 https://blog.csdn.net/ityqing/article/details/127879556 工程環境&#xff1a;…

Redis-分布式鎖!

分布式鎖&#xff0c;顧名思義&#xff0c;分布式鎖就是分布式場景下的鎖&#xff0c;比如多臺不同機器上的進程&#xff0c;去競爭同一項資源&#xff0c;就是分布式鎖。 分布式鎖特性 互斥性:鎖的目的是獲取資源的使用權&#xff0c;所以只讓一個競爭者持有鎖&#xff0c;這…

PyTorch: clamp函數與梯度的關系

本文主要以下探究這一點&#xff1a;梯度反向傳播過程中&#xff0c;測試強行修改后的預測結果是否還會傳遞loss&#xff1f; clamp應用場景&#xff1a;在深度學習計算損失函數的過程中&#xff0c;會有這樣一個問題&#xff0c;如果Label是1.0&#xff0c;而預測結果是0.0&a…

【算法】排序+雙指針——leetcode三數之和、四數之和

三數之和 &#xff08;1&#xff09;排序雙指針 算法思路&#xff1a; 和之前的兩數之和類似&#xff0c;我們對暴力枚舉進行了一些優化&#xff0c;利用了排序雙指針的思路&#xff1a; 我們先排序&#xff0c;然后固定?個數 a &#xff0c;接著我們就可以在這個數后面的區間…

Mybatis Plus Interceptor

Mybatis Plus Interceptor 1 獲取表名2 獲取SQL 1 獲取表名 Component public class MybatisInterceptor implements Interceptor {private static final List<String> EXCLUDE_TABLE new ArrayList<>();static {EXCLUDE_TABLE.add("test");}private s…

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法

基于深度學習的運動目標檢測&#xff08;一&#xff09; 1.YOLO算法檢測流程2.YOLO算法網絡架構3.網絡訓練模型3.1 訓練策略3.2 代價函數的設定 2012年&#xff0c;隨著深度學習技術的不斷突破&#xff0c;開始興起基于深度學習的目標檢測算法的研究浪潮。 2014年&#xff0c;…

電腦突然黑屏的解決辦法

記錄一次電腦使用問題 問題描述 基本情況&#xff1a;雷神游戲筆記本 windows10操作系統 64位 使用時間 4年 日期&#xff1a;2023年8月11日 當時 電腦充著電 打開了兩個瀏覽器&#xff1a;edge[頁面加載5個左右]&#xff0c;火狐[頁面加載1個左右] 兩個文件夾 一個百度網盤…

Davinci 報表工具 0.3.0-rc release 文本框模糊查詢不生效問題

背景: 在使用過程中發現davinci 的控制器配置中, 取值配置的對應關系設置 包含 或 不包含時 不生效, 不能實現模糊匹配效果, 只能精確查詢; 問題分析: 通過跟蹤接口及相應代碼, 發現在sql 拼接時沒有對 like 和 not like 類型的值兩側添加百分號, 導致模糊查詢失敗 調用過程…

CentOS系統環境搭建(七)——Centos7安裝MySQL

centos系統環境搭建專欄&#x1f517;點擊跳轉 坦誠地說&#xff0c;本文中百分之九十的內容都來自于該文章&#x1f517;Linux&#xff1a;CentOS7安裝MySQL8&#xff08;詳&#xff09;&#xff0c;十分佩服大佬文章結構合理&#xff0c;文筆清晰&#xff0c;我曾經在這篇文章…

Kotlin 使用 View Binding

解決的問題&#xff1a; 《第一行代碼——Android》第三版 郭霖 P277 視圖綁定的問題 描述&#xff1a; kotlin-android-extensions 插件已經棄用 butter knife 已經棄用 解決辦法 推薦使用 View Binding 來代替 findViewById 使用方法 1、配置 build.gradle 2、在act…

踩坑---uni-app中@input 事件不生效

在開發的時候遇到這么一種情況&#xff0c;我們希望input輸入框的值是范圍是0-100或者保留兩位小數之類的&#xff0c;當你輸入時處理后的結果卻不生效&#xff0c;但是試過很多辦法發現都實現不了&#xff0c;最后是按照以下方法解決的,問題原因是uni-app會延時,導致輸入的結果…

Go語言的主要優勢

Go語言的主要優勢包括: 1. 簡潔和易學 Go語法簡單明了,沒有太多晦澀難懂的概念,上手容易,適合快速開發。 2. 強大的并發支持 利用goroutine和channel,可以非常方便地編寫高效的并發程序。 3. 執行性能好 Go編譯成機器碼,執行性能接近C/C,比解釋型語言更高效。 4. 內存管…

絕對值函數的可導性

絕對值函數的可導性 聲明&#xff1a;下面截圖來自《考研數學常考題型解題方法技巧歸納》

利用Figlet工具創建酷炫Linux Centos8服務器-登錄歡迎界面-SHELL自動化編譯安裝代碼

因為我們需要生成需要的特定字符,所以需要在當前服務器中安裝Figlet,默認沒有安裝包的,其實如果我們也只要在一臺環境中安裝,然后需要什么字符只要復制到需要的服務器中,并不需要所有都安裝。同樣的,我們也可以利用此生成的字符用到腳本運行的開始起頭部分,用ECHO分行標…

學習筆記十八:污點、容忍度

污點、容忍度 污點、容忍度管理節點污點把k8snode2當成是生產環境專用的&#xff0c;其他node是測試的給k8snode1也打上污點 污點、容忍度 給了節點選則的主動權&#xff0c;我們給節點打一個污點&#xff0c;不容忍的pod就運行不上來&#xff0c;污點就是定義在節點上的鍵值屬…

使用python讀Excel文件并寫入另一個xls模版

效果如下&#xff1a; 原文件內容 轉化后的內容 大致代碼如下&#xff1a; 1. load_it.py #!/usr/bin/env python import re from datetime import datetime from io import BytesIO from pathlib import Path from typing import List, Unionfrom fastapi import HTTPExcep…

睿趣科技:抖音開網店現在做還來得及嗎

隨著社交媒體的迅速發展&#xff0c;抖音作為一款短視頻平臺&#xff0c;已經在年輕人中間取得了巨大的成功。而近年來&#xff0c;越來越多的人開始考慮在抖音上開設網店&#xff0c;以迎合這一潮流。那么&#xff0c;抖音開網店現在還來得及嗎? 首先&#xff0c;要明確的是&…

一篇文章教會你搭建私人kindle圖書館,并內網穿透實現公網訪問

搭建私人kindle圖書館&#xff0c;并內網穿透實現公網訪問 在電子書風靡的時期&#xff0c;大部分人都購買了一本電子書&#xff0c;雖然這本電子書更多的時候是被擱置在儲物架上吃灰&#xff0c;或者成為蓋泡面的神器&#xff0c;但當亞馬遜發布消息將放棄電子書在中國的服務…