主頁 >  其他 > Docker 大勢已去,Podman 即將崛起

Docker 大勢已去,Podman 即將崛起

2021-12-16 10:07:14 其他

Podman

  • Podman
    • 什么是Podman?
    • Podman和Docker的主要區別是什么?
    • Podman的使用與docker有什么區別?
  • Podman 常用命令
    • 容器
    • 鏡像
    • 部署 Podman
    • Podman 加速器
    • 使用 Podman
      • 運行一個容器
      • 列出運行的容器
      • 檢查正在運行的容器
      • 查看一個運行中容器的日志
      • 查看一個運行容器中的行程資源使用情況
      • 停止一個運行中的容器
      • 洗掉一個容器
      • 上傳鏡像
      • 配置別名
    • 用戶操作
      • 安裝slirp4netns和fuse-overlayfs
      • / etc / subuid和/ etc / subgid配置
      • 用戶組態檔
      • 普通用戶是無法看見root用戶的鏡像的
      • 使用卷
      • 在主機上查看
      • 容器里查看

Podman

什么是Podman?

在這里插入圖片描述

Podman 是一個開源的容器運行時專案,可在大多數 Linux 平臺上使用,Podman 提供與 Docker 非常相似的功能,正如前面提到的那樣,它不需要在你的系統上運行任何守護行程,并且它也可以在沒有 root 權限的情況下運行,

Podman 可以管理和運行任何符合 OCI(Open Container Initiative)規范的容器和容器鏡像,Podman 提供了一個與 Docker 兼容的命令列前端來管理 Docker 鏡像,

Podman 官網地址:https://podman.io/

Podman和Docker的主要區別是什么?

  • dockers在實作CRI的時候,它需要一個守護行程,其次需要以root運行,因此這也帶來了安全隱患,
  • podman不需要守護程式,也不需要root用戶運行,從邏輯架構上,比docker更加合理,
  • 在docker的運行體系中,需要多個daemon才能呼叫到OCI的實作RunC,
  • 在容器管理的鏈路中,Docker Engine的實作就是dockerd
  • daemon,它在linux中需要以root運行,dockerd呼叫containerd,containerd呼叫containerd-shim,然后才能呼叫runC,顧名思義shim起的作用也就是“墊片”,避免父行程退出影響容器的運訓
  • podman直接呼叫OCI,runtime(runC),通過common作為容器行程的管理工具,但不需要dockerd這種以root身份運行的守護行程,
  • 在podman體系中,有個稱之為common的守護行程,其運行路徑通常是/usr/libexec/podman/conmon,它是各個容器行程的父行程,每個容器各有一個,common的父則通常是1號行程,podman中的common其實相當于docker體系中的containerd-shim,
    在這里插入圖片描述
    圖中所體現的事情是,podman不需要守護行程,而dorker需要守護行程,在這個圖的示意中,dorcker的containerd-shim與podman的common被歸在Container一層,

Podman的使用與docker有什么區別?

podman的定位也是與docker兼容,因此在使用上面盡量靠近docker,在使用方面,可以分成兩個方面來說,一是系統構建者的角度,二是使用者的角度,
在系統構建者方面,用podman的默認軟體,與docker的區別不大,只是在行程模型、行程關系方面有所區別,如果習慣了docker幾個關聯行程的除錯方法,在podman中則需要適應,可以通過pstree命令查看行程的樹狀結構,總體來看,podman比docker要簡單,由于podman比docker少了一層daemon,因此重啟的機制也就不同了,
在使用者方面,podman與docker的命令基本兼容,都包括容器運行時(run/start/kill/ps/inspect),本地鏡像(images/rmi/build)、鏡像倉庫(login/pull/push)等幾個方面,因此podman的命令列工具與docker類似,比如構建鏡像、啟停容器等,甚至可以通過alias
docker=podman可以進行替換,因此,即便使用了podman,仍然可以使用docker.io作為鏡像倉庫,這也是兼容性最關鍵的部分,

Podman 常用命令

容器

podman run           創建并啟動容器
podman start         啟動容器
podman ps            查看容器
podman stop          終止容器
podman restart       重啟容器
podman attach        進入容器
podman exec          進入容器
podman export        匯出容器
podman import        匯入容器快照
podman rm            洗掉容器
podman logs          查看日志

鏡像

podman search                檢索鏡像
podman pull                  獲取鏡像
podman images                列出鏡像
podman image Is              列出鏡像
podman rmi                   洗掉鏡像
podman image rm              洗掉鏡像
podman save                  匯出鏡像
podman load                  匯入鏡像
podmanfile                   定制鏡像(三個)
	podman build             構建鏡像
    podman run               運行鏡像
    podmanfile               常用指令(四個)
    	COPY                 復制檔案
        ADD                  高級復制
        CMD                  容器啟動命令
        ENV                  環境變數
        EXPOSE               暴露埠

部署 Podman

//安裝podman
[root@localhost ~]# yum -y install podman

Podman 加速器

版本7配置加速器

//倉庫配置
[root@localhost ~]# vim /etc/containers/registries.conf
[registries.search]
#registries = ["registry.access.redhat.com", "registry.redhat.io", "docker.io"]	 #這個是查找,從這三個地方查找

registries = ["docker.io"]		#如果只留一個,則只在一個源里查找
[[docker.io]]
location="j3m2itm3.mirror.aliyuncs.com"

版本8配置加速器

#unqualified-search-registries = ["registry.fedoraproject.org", "registry.access.redhat.com", "registry.centos.org", "docker.io"] 		#直接注釋掉
unqualified-search-registries = ["docker.io"]		#添加一個docker.io
[[registry]]
prefix = "docker.io"
location = "j3m2itm3.mirror.aliyuncs.com" (不用加https://  直接加地址)

使用 Podman

使用 Podman 非常的簡單,Podman 的指令跟 Docker 大多數都是相同的,下面我們來看幾個常用的例子:

運行一個容器

[root@localhost ~]# podman run -d --name httpd docker.io/library/httpd
Trying to pull docker.io/library/httpd...
Getting image source signatures
Copying blob e5ae68f74026 done  
Copying blob d3576f2b6317 done  
Copying blob bc36ee1127ec done  
Copying blob f1aa5f54b226 done  
Copying blob aa379c0cedc2 done  
Copying config ea28e1b82f done  
Writing manifest to image destination
Storing signatures
0492e405b9ecb05e6e6be1fec0ac1a8b6ba3ff949df259b45146037b5f355035

//查看鏡像
[root@localhost ~]# podman images
REPOSITORY                  TAG      IMAGE ID       CREATED       SIZE
docker.io/library/httpd     latest   ea28e1b82f31   11 days ago   148 MB

列出運行的容器

[root@localhost ~]# podman ps
CONTAINER ID  IMAGE                             COMMAND           CREATED             STATUS                 PORTS  NAMES
0492e405b9ec  docker.io/library/httpd:latest    httpd-foreground  About a minute ago  Up About a minute ago         httpd

注意:如果在ps命令中添加-a,Podman 將顯示所有容器,

檢查正在運行的容器

您可以“檢查”正在運行的容器的元資料和有關其自身的詳細資訊,我們甚至可以使用 inspect 子命令查看分配給容器的 IP 地址,由于容器以無根模式運行,因此未分配 IP 地址,并且該值將在檢查的輸出中列為“無”,

[root@localhost ~]# podman inspect -l | grep IPAddress\": 
            "SecondaryIPAddresses": null, 
            "IPAddress": "10.88.0.5",

[root@localhost ~]# curl 10.88.0.5
<html><body><h1>It works!</h1></body></html>

注意: -l 是最新容器的便利引數,您還可以使用容器的 ID 代替 -l,

查看一個運行中容器的日志

選項
	--latest		#最近的
	
[root@localhost ~]# podman logs --latest
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.88.0.5. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.88.0.5. Set the 'ServerName' directive globally to suppress this message
[Mon Dec 13 15:17:53.690844 2021] [mpm_event:notice] [pid 1:tid 140665160166720] AH00489: Apache/2.4.51 (Unix) configured -- resuming normal operations
[Mon Dec 13 15:17:53.690946 2021] [core:notice] [pid 1:tid 140665160166720] AH00094: Command line: 'httpd -D FOREGROUND'
10.88.0.1 - - [13/Dec/2021:15:19:48 +0000] "GET / HTTP/1.1" 200 45
10.88.0.1 - - [13/Dec/2021:15:20:47 +0000] "GET / HTTP/1.1" 200 45

查看一個運行容器中的行程資源使用情況

可以使用top觀察容器中的 nginx pid

語法:
	podman top <container_id>  
	
[root@localhost ~]# podman top httpd
USER       PID   PPID   %CPU    ELAPSED            TTY   TIME   COMMAND
root       1     0      0.000   15m38.599711321s   ?     0s     httpd -DFOREGROUND 
www-data   7     1      0.000   15m38.599783256s   ?     0s     httpd -DFOREGROUND 
www-data   8     1      0.000   15m38.599845342s   ?     0s     httpd -DFOREGROUND 
www-data   9     1      0.000   15m38.599880444s   ?     0s     httpd -DFOREGROUND 

停止一個運行中的容器

[root@localhost ~]# podman stop --latest
2f3edf712621d3a41e03fa8c7f6a5cdba56fbbad43a7a59ede26cc88f31006c4
[root@localhost ~]# podman ps
CONTAINER ID  IMAGE  COMMAND  CREATED  STATUS  PORTS  NAMES

洗掉一個容器

[root@localhost ~]# podman rm --latest
2f3edf712621d3a41e03fa8c7f6a5cdba56fbbad43a7a59ede26cc88f31006c4
[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE  COMMAND  CREATED  STATUS  PORTS  NAMES

以上這些特性基本上都和 Docker 一樣,Podman 除了兼容這些特性外,還支持了一些新的特性,

上傳鏡像

例如,如果我們想在 docker.io 上分享我們新建的 Nginx 容器鏡像,這很容易,首先登錄碼頭:

[root@localhost nginx]# tree 
.
├── Dockerfile
└── files
    └── nginx-1.20.1.tar.gz

[root@localhost nginx]# cat Dockerfile 
FROM docker.io/library/centos

ENV PATH /usr/local/nginx/sbin:$PATH
ADD files/nginx-1.20.1.tar.gz /usr/src
RUN useradd -r -M -s /sbin/nologin nginx && \
    yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make && \
    mkdir -p /var/log/nginx && \
    cd /usr/src/nginx-1.20.1 && \
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-debug \
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_image_filter_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module \
    --http-log-path=/var/log/nginx/access.log \
    --error-log-path=/var/log/nginx/error.log && \
  make && make install

CMD ["nginx","-g","daemon off"]
[root@localhost nginx]# podman build -t nginx .

// 修改鏡像名
 [root@localhost ~]# podman tag docker.io/library/nginx:latest docker.io/1314444/test:latest

// 登錄并上傳鏡像
[root@localhost ~]# podman login docker.io // 需要告訴其要登錄到docker倉庫
[root@localhost ~]# podman login docker.io
Username: 1314444		#賬戶
Password: ********		#密碼
Login Succeeded!

[root@localhost nginx]# podman push docker.io/1314444/test:latest  //上傳鏡像
Getting image source signatures
Copying blob 38c40d6c2c85 done
Copying blob fee76a531659 done
Copying blob c2adabaecedb done
Copying config 7f3589c0b8 done
Writing manifest to image destination
Copying config 7f3589c0b8 done
Writing manifest to image destination
Storing signatures


//請注意,我們將四層推送到我們的注冊表,現在可供其他人共享,快速瀏覽一下:
[root@localhost ~]# podman inspect 1314444/test:nginx
//輸出:
[
    {
        "Id": "7f3589c0b8849a9e1ff52ceb0fcea2390e2731db9d1a7358c2f5fad216a48263",
        "Digest": "sha256:7822b5ba4c2eaabdd0ff3812277cfafa8a25527d1e234be028ed381a43ad5498",
        "RepoTags": [
            "docker.io/1314444/test:nginx",
		......

總而言之,Podman 使查找、運行、構建和共享容器變得容易,

配置別名

如果習慣了使用 Docker 命令,可以直接給 Podman 配置一個別名來實作無縫轉移,你只需要在 .bashrc 下加入以下行內容即可:

[root@localhost ~]# echo "alias docker=podman" >> .bashrc
source .bashrc
[root@localhost ~]# alias
alias cp='cp -i'
alias docker='podman'
.......

用戶操作

在允許沒有root特權的用戶運行Podman之前,管理員必須安裝或構建Podman并完成以下配置
cgroup V2Linux內核功能允許用戶限制普通用戶容器可以使用的資源,如果使用cgroupV2啟用了運行Podman的Linux發行版,則可能需要更改默認的OCI運行時,某些較舊的版本runc不適用于cgroupV2,必須切換到備用OCI運行時crun,

[root@localhost ~]# yum -y install crun     //centos8系統自帶

[root@localhost ~]# vi /usr/share/containers/containers.conf 
    446 # Default OCI runtime
    447 # 
    448 runtime = "crun"      //取消注釋并將runc改為crun

[root@localhost ~]# podman run -d --name web -p 80:80 docker.io/library/nginx
c8664d2e43c872e1e5219f82d41f63048ed3a5ed4fb6259c225a14d6c243677f

[root@localhost ~]# podman inspect web | grep crun
        "OCIRuntime": "crun",
            "crun",

安裝slirp4netns和fuse-overlayfs

在普通用戶環境中使用Podman時,建議使用fuse-overlayfs而不是VFS檔案系統,至少需要版本0.7.6,現在新版本默認就是了,

[root@localhost ~]# yum -y install slirp4netns

[root@localhost ~]# yum -y install fuse-overlayfs
[root@localhost ~]# vi /etc/containers/storage.conf
77 mount_program = "/usr/bin/fuse-overlayfs"     //取消注釋

/ etc / subuid和/ etc / subgid配置

Podman要求運行它的用戶在/ etc / subuid和/ etc / subgid檔案中列出一系列UID,shadow-utils或newuid包提供這些檔案

[root@localhost ~]# yum -y install shadow-utils

可以在/ etc / subuid和/ etc / subgid查看,每個用戶的值必須唯一且沒有任何重疊,

[root@localhost ~]# useradd zz
[root@localhost ~]# cat /etc/subuid
zz:100000:65536
[root@localhost ~]# cat /etc/subgid
zz:100000:65536

// 啟動非特權ping 
[root@localhost ~]# sysctl -w "net.ipv4.ping_group_range=0 200000" //大于100000這個就表示tom可以操作podman
net.ipv4.ping_group_range = 0 200000
  • 這個檔案的格式是 USERNAME:UID:RANGE

    • 中/etc/passwd或輸出中列出的用戶名getpwent,
    • 為用戶分配的初始 UID,
    • 為用戶分配的 UID 范圍的大小,

該usermod程式可用于為用戶分配 UID 和 GID,而不是直接更新檔案,

[root@localhost ~]# usermod --add-subuids 200000-201000 --add-subgids 200000-201000 hh
grep hh /etc/subuid /etc/subgid
/etc/subuid:hh:200000:1001
/etc/subgid:hh:200000:1001

用戶組態檔

三個主要的組態檔是container.confstorage.confregistries.conf,用戶可以根據需要修改這些檔案,
container.conf

// 用戶組態檔
[root@localhost ~]# cat /usr/share/containers/containers.conf
[root@localhost ~]# cat /etc/containers/containers.conf
[root@localhost ~]# cat ~/.config/containers/containers.conf  //優先級最高

如果它們以該順序存在,每個檔案都可以覆寫特定欄位的前一個檔案,

配置storage.conf檔案

1./etc/containers/storage.conf
2.$HOME/.config/containers/storage.conf

在普通用戶中/etc/containers/storage.conf的一些欄位將被忽略

[root@localhost ~]#  vi /etc/containers/storage.conf
[storage]

# Default Storage Driver, Must be set for proper operation.
driver = "overlay"		#此處改為overlay
.......
mount_program = "/usr/bin/fuse-overlayfs"		#取消注釋

[root@localhost ~]# sysctl user.max_user_namespaces=15000  #如果版本為8以下,則需要做以下操作:

在普通用戶中這些欄位默認

graphroot="$HOME/.local/share/containers/storage"
runroot="$XDG_RUNTIME_DIR/containers"

registries.conf
配置按此順序讀入,這些檔案不是默認創建的,可以從/usr/share/containers或復制檔案/etc/containers并進行修改,

1./etc/containers/registries.conf
2./etc/containers/registries.d/*
3.HOME/.config/containers/registries.conf

授權檔案
此檔案里面寫了docker賬號的密碼,以加密方式顯示

[root@localhost ~]# podman login
Username: 1314444
Password: 
Login Succeeded!
[root@localhost ~]# cat /run/user/0/containers/auth.json 
{
        "auths": {
                "registry.fedoraproject.org": {
                        "auth": "MTMxNDQ0NDpIMjAxNy0xOA=="
                }
        }
}

普通用戶是無法看見root用戶的鏡像的

//root用戶
[root@localhost ~]# podman images
REPOSITORY                  TAG      IMAGE ID       CREATED       SIZE
docker.io/library/httpd     latest   ea28e1b82f31   11 days ago   146 MB

//普通用戶
[root@localhost ~]# su - zz
[zz@localhost ~]$ podman images
REPOSITORY  TAG         IMAGE ID    CREATED     SIZE

  • 容器與root用戶一起運行,則root容器中的用戶實際上就是主機上的用戶,
  • UID GID是在/etc/subuid和/etc/subgid等中用戶映射中指定的第一個UID GID,
  • 如果普通用戶的身份從主機目錄掛載到容器中,并在該目錄中以根用戶身份創建檔案,則會看到它實際上是你的用戶在主機上擁有的,

使用卷

[root@localhost ~]# su - zz
[zz@localhost ~]$ pwd
/home/zz
[zz@localhost ~]$ mkdir /home/zz/data

[zz@localhost ~]$ podman run -it -v "$(pwd)"/data:/data docker.io/library/busybox /bin/sh
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
Copying blob 3cb635b06aa2 done  
Copying config ffe9d497c3 done  
Writing manifest to image destination
Storing signatures
/ # ls
bin   data  dev   etc   home  proc  root  run   sys   tmp   usr   var
/ # cd data/
/data # ls
/data # touch 123
/data # ls -l
total 0
-rw-r--r--    1 root     root             0 Dec 13 00:17 123

在主機上查看

[zz@localhost ~]$ ll data/
總用量 0
-rw-r--r-- 1 zz zz 0 1213 00:17 123

//寫入檔案
[zz@localhost ~]$ echo "hell world" >> 123
[zz@localhost ~]$ cat 123
hell world

容器里查看

/data # cat 123
hell world

//我們可以發現在容器里面的檔案的屬主和屬組都屬于root,那么如何才能讓其屬于tom用戶呢?下面告訴你答案
/data # ls -l
total 4
-rw-rw-r--    1 root     root            12 Dec 13 00:20 123

//只要在運行容器的時候加上一個--userns=keep-id即可,
[zz@localhost ~]$ podman run -it --name test -v "$(pwd)"/data:/data --userns=keep-id docker.io/library/busybox /bin/sh
~ $ cd data/
/data $ ls -l
total 4
-rw-r--r--    1 zz       zz              11 Dec 13 00:21 123

使用普通用戶映射容器埠時會報“ permission denied”的錯誤

[zz@localhost ~]$ podman run  -d -p 80:80 httpd
Error: rootlessport cannot expose privileged port 80, you can add 'net.ipv4.ip_unprivileged_port_start=80' to /etc/sysctl.conf (currently 1024), or choose a larger port number (>= 1024): listen tcp 0.0.0.0:80: bind: permission denied

普通用戶可以映射>= 1024的埠

[zz@localhost ~]$ podman run  -d -p 1024:80 httpd
58613a6bdc70d4d4f9f624583f795a62a610596d166f0873bdff8fb26aa15092
[zz@localhost ~]$ ss -anlt
State       Recv-Q      Send-Q           Local Address:Port           Peer Address:Port      Process      
LISTEN      0           128                    0.0.0.0:22                  0.0.0.0:*                      
LISTEN      0           128                          *:1024                      *:*                      
LISTEN      0           128                       [::]:22                     [::]:* 

配置echo ‘net.ipv4.ip_unprivileged_port_start=80’ >> /etc/sysctl.conf后可以映射大于等于80的埠

[root@localhost ~]# echo  'net.ipv4.ip_unprivileged_port_start=80'  >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_unprivileged_port_start = 80

[zz@localhost ~]$ podman run -d -p 80:80 httpd
1215455a0c300d78e7bf6afaefc9873f818c6b0f26affeee4e2bc17954e72d8e
[zz@localhost ~]$ ss -anlt
State       Recv-Q      Send-Q           Local Address:Port           Peer Address:Port      Process      
LISTEN      0           128                    0.0.0.0:22                  0.0.0.0:*                      
LISTEN      0           128                          *:1024                      *:*                      
LISTEN      0           128                          *:80                        *:*                      
LISTEN      0           128                       [::]:22                     [::]:*  

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382159.html

標籤:其他

上一篇:計算機網路實驗-企業級網路構建與配置實作

下一篇:JVM記憶體結構闡述

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more