主頁 > 作業系統 > docker

docker

2022-08-06 07:39:40 作業系統

docker


目錄
  • docker
    • docker的發展史
    • docker安裝
    • docker加速
    • docker的基本用法
    • 儲存驅動

docker的發展史


容器技術的興起源于 PaaS 技術的普及;
Docker 公司發布的 Docker 專案具有里程碑式的意義;
Docker 專案通過“容器鏡像”,解決了應用打包這個根本性難題,

容器本身沒有價值,有價值的是“容器編排”,

Docker 解決 Paas 應用打包困難的問題
2013~2014 年,以 Cloud Foundry 為代表的 PaaS 專案,逐漸完成了教育用戶和開拓市場的艱巨任務,也正是在這個將概念逐漸落地的程序中,應用“打包”困難這個問題,成了整個后端技術圈子的一塊心病,

出現這個問題的根本原因是,一旦用上了 PaaS,用戶就必須為每種語言、每種框架,甚至每個版本的應用維護一個打好的包,這個打包程序,沒有任何章法可循,更麻煩的是,明明在本地運行得好好的應用,卻需要做很多修改和配置作業才能在 PaaS 里運行起來,而這些修改和配置,并沒有什么經驗可以借鑒,基本上得靠不斷試錯,直到你摸清楚了本地應用和遠端 PaaS 匹配的“脾氣”才能夠搞定,

Docker 專案的出現,則為這個根本性的問題提供了一個近乎完美的解決方案,這正是 Docker 專案剛剛開源不久,就能夠帶領一家原本默默無聞的 PaaS 創業公司脫穎而出,然后迅速占領了所有云計算領域頭條的技術原因,
Docker 專案給 PaaS 世界帶來的“降維打擊”,其實是提供了一種非常便利的打包機制,這種機制直接打包了應用運行所需要的整個作業系統,從而保證了本地環境和云端環境的高度一致,避免了用戶通過“試錯”來匹配兩種不同運行環境之間差異的痛苦程序,

Docker 與開發者緊密結合并迅速崛起

  1. Docker 鏡像通過技術手段解決了 PaaS 的根本性問題;
  2. Docker 容器同開發者之間有著與生俱來的密切關系;
  3. PaaS 概念已經深入人心的完美貧訓,

相比于其他正在企業級市場里廝殺得頭破血流的經典 PaaS 專案們,Docker 專案的推廣策略從一開始就呈現出一副“憨態可掬”的親人姿態,把每一位后端技術人員(而不是他們的老板)作為主要的傳播物件,
簡潔的 UI,有趣的 demo,“1 分鐘部署一個 WordPress 網站”“3 分鐘部署一個 Nginx 集群”,這種同開發者之間與生俱來的親近關系,使 Docker 專案迅速成為了全世界 Meetup 上最受歡迎的一顆新星,

Docker 一家獨大企圖進一步商業化
實際上,Docker 專案一日千里的發展勢頭,一直伴隨著公司管理層和股東們的陣陣擔憂,他們心里明白,雖然 Docker 專案備受追捧,但用戶們最終要部署的,還是他們的網站、服務、資料庫,甚至是云計算業務,
Docker 專案希望提供更多平臺層能力,發布了 Docker Swarm、Fig(后來的 Compose)專案,向 Paas 進化,
Docker 也和 CoreOS 公司、RedHat 等產生利益沖突,同時拒絕了微軟的天價收購,為后來 Kubernetes 專案的誕生埋下了伏筆,
Kubernetes 推出,容器技術塵埃落定
Docker 公司在 Docker 開源專案的發展上,始終保持著絕對的權威和發言權,并在多個場合用實際行動挑戰到了其他玩家(比如,CoreOS、RedHat,甚至谷歌和微軟)的切身利益,
于是,2015 年 6 月 22 日,由 Docker 公司牽頭,CoreOS、Google、RedHat 等公司共同宣布,Docker 公司將 Libcontainer 捐出,并改名為 RunC 專案,交由一個完全中立的基金會管理,然后以 RunC 為依據,大家共同制定一套容器和鏡像的標準和規范,
這套標準和規范,就是 OCI( Open Container Initiative ),OCI 的提出,意在將容器運行時和鏡像的實作從 Docker 專案中完全剝離出來,這樣做,一方面可以改善 Docker 公司在容器技術上一家獨大的現狀,另一方面也為其他玩家不依賴于 Docker 專案構建各自的平臺層能力提供了可能,
所以這次,Google、RedHat 等開源基礎設施領域玩家們,共同牽頭發起了一個名為 CNCF(Cloud Native Computing Foundation)的基金會,這個基金會的目的其實很容易理解:它希望,以 Kubernetes 專案為基礎,建立一個由開源基礎設施領域廠商主導的、按照獨立基金會方式運營的平臺級社區,來對抗以 Docker 公司為核心的容器商業生態,

而為了打造出這樣一個圍繞 Kubernetes 專案的“護城河”,CNCF 社區就需要至少確保兩件事情:

  1. Kubernetes 專案必須能夠在容器編排領域取得足夠大的競爭優勢;
  2. CNCF 社區必須以 Kubernetes 專案為核心,覆寫足夠多的場景,

2017 年 10 月,Docker 公司出人意料地宣布,將在自己的主打產品 Docker 企業版中內置 Kubernetes 專案,這標志著持續了近兩年之久的“編排之爭”至此落下帷幕,
2018 年 1 月 30 日,RedHat 宣布斥資 2.5 億美元收購 CoreOS,
2018 年 3 月 28 日,這一切紛爭的始作俑者,Docker 公司的 CTO Solomon Hykes 宣布辭職,曾經紛紛擾擾的容器技術圈子,到此塵埃落定,

docker安裝

[root@lnh ~]# cd /etc/yum.repos.d/
[root@lnh yum.repos.d]# ls
CentOS-Base.repo
[root@lnh yum.repos.d]# curl -o docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1919  100  1919    0     0   1954      0 --:--:-- --:--:-- --:--:--  1952
[root@lnh yum.repos.d]# sed -i 's@https://download.docker.com@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' docker-ce.repo
[root@lnh yum.repos.d]# dnf -y install docker-ce

docker加速

docker-ce的組態檔是/etc/docker/daemon.json,此檔案默認不存在,需要我們手動創建并進行配置,而docker的加速就是通過配置此檔案來實作的,

docker的加速有多種方式:
docker cn
中國科技大學加速器
阿里云加速器(需要通過阿里云開發者平臺注冊帳號,免費使用個人私有的加速器)

[root@lnh yum.repos.d]# systemctl start docker
[root@lnh yum.repos.d]# cat > /etc/docker/daemon.json <<EOF
> {
>     "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
> }
> EOF
//配置docker加速器
[root@lnh yum.repos.d]# systemctl restart docker
[root@lnh yum.repos.d]# docker version 
//查看docker版本
[root@lnh yum.repos.d]# docker info
//顯示docker整個系統的資訊

docker的基本用法

docker常用操作:

命令 功能
docker search Search the Docker Hub for images
(在Docker Hub中搜索鏡像)
docker pull Pull an image or a repository from a registry
(從注冊表中提取鏡像或存盤庫)
docker images List images
(列出鏡像)
docker create Create a new conntainer
(創建一個新的容器)
docker start Start one or more stopped containers
(啟動一個或多個停止的容器)
docker run Run a command in a new container
(在新容器中運行命令)
docker attach Attach to a runninng container
(進入容器使用的命令,連接到正在運行的容器,只能在前端查看,不能退出)
docker ps List containers
(容器串列,查看容器狀態)
docker logs Fetch the logs of a container
(獲取容器的日志)
docker restart Restart a container
(重新啟動容器)
docker stop Stop one or more running containers
(停止一個或多個正在運行的容器)
docker kill Kill one or more running containers
(殺死一個或多個正在運行的容器)
docker rm Remove onne or more containers
(移除一個或多個容器)
docker exec Run a command in a running container
(進入容器使用的命令,在正在運行的容器中運行命令,查看一些精簡資訊,用exit退出)
docker info Display system-wide information
(顯示整個系統的資訊)
docker inspect Return low-level information on Docker objects
(查看docker容器的詳細資訊)
[root@lnh ~]# docker search httpd  //搜索httpd鏡像
NAME                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
httpd                                The Apache HTTP Server Project                  4107      [OK]       
centos/httpd-24-centos7              Platform for running Apache httpd 2.4 or bui…   44                   
centos/httpd                                                                         35                   [OK]
clearlinux/httpd                     httpd HyperText Transfer Protocol (HTTP) ser…   2                    
hypoport/httpd-cgi                   httpd-cgi                                       2                    [OK]
solsson/httpd-openidc                mod_auth_openidc on official httpd image, ve…   2                    [OK]
dockerpinata/httpd                                                                   1                    
nnasaki/httpd-ssi                    SSI enabled Apache 2.4 on Alpine Linux          1                    
lead4good/httpd-fpm                  httpd server which connects via fcgi proxy h…   1                    [OK]
inanimate/httpd-ssl                  A play container with httpd, ssl enabled, an…   1                    [OK]
publici/httpd                        httpd:latest                                    1                    [OK]
dariko/httpd-rproxy-ldap             Apache httpd reverse proxy with LDAP authent…   1                    [OK]
manageiq/httpd                       Container with httpd, built on CentOS for Ma…   1                    [OK]
centos/httpd-24-centos8                                                              1                    
manasip/httpd                                                                        0                    
amd64/httpd                          The Apache HTTP Server Project                  0                    
patrickha/httpd-err                                                                  0                    
manageiq/httpd_configmap_generator   Httpd Configmap Generator                       0                    [OK]
httpdss/archerysec                   ArcherySec repository                           0                    [OK]
paketobuildpacks/httpd                                                               0                    
httpdocker/kubia                                                                     0                    
sandeep1988/httpd-new                httpd-new                                       0                    
e2eteam/httpd                                                                        0                    
19022021/httpd-connection_test       This httpd image will test the connectivity …   0                    
sherazahmedvaival/httpd-php-fpm74                                                    0                    
[root@lnh ~]# docker pull httpd   //拉取httpd這個鏡像
Using default tag: latest
latest: Pulling from library/httpd
a2abf6c4d29d: Pull complete 
dcc4698797c8: Pull complete 
41c22baa66ec: Pull complete 
67283bbdd4a0: Pull complete 
d982c879c57e: Pull complete 
Digest: sha256:0954cc1af252d824860b2c5dc0a10720af2b7a3d3435581ca788dff8480c7b32
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest
[root@lnh ~]# docker images //列出鏡像
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
httpd        latest    dabbfbe0c57b   7 months ago   144MB
[root@lnh ~]# docker run -d --name web -p 80:80 httpd
aedcd51e3aa65f7794392ae56a8cf45e2a2a673205b071be65678bb836b2d3f8
[root@lnh ~]# curl 192.168.222.250
<html><body><h1>It works!</h1></body></html>
//可以直接創建web的這個網站并進行訪問
[root@lnh ~]# docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                               NAMES
aedcd51e3aa6   httpd     "httpd-foreground"   25 minutes ago   Up 25 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   web
//查看容器的運行狀態
[root@lnh ~]# docker stop web 
web
[root@lnh ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
//停止這個容器
[root@lnh ~]# docker start web 
web
[root@lnh ~]# docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS         PORTS                               NAMES
aedcd51e3aa6   httpd     "httpd-foreground"   27 minutes ago   Up 2 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web
//開啟這個容器
[root@lnh ~]# docker container ls  //=docker ps查看容器狀態
CONTAINER ID   IMAGE     COMMAND              CREATED             STATUS         PORTS                               NAMES
aedcd51e3aa6   httpd     "httpd-foreground"   About an hour ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web
[root@lnh ~]# docker container ls -a //=docker ps -ac查看所有容器
CONTAINER ID   IMAGE     COMMAND              CREATED             STATUS          PORTS                               NAMES
aedcd51e3aa6   httpd     "httpd-foreground"   About an hour ago   Up 21 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web
[root@lnh ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND              CREATED             STATUS              PORTS                               NAMES
aedcd51e3aa6   httpd     "httpd-foreground"   About an hour ago   Up About a minute   0.0.0.0:80->80/tcp, :::80->80/tcp   web
//查看所有容器
[root@lnh ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@lnh ~]# docker create centos
d8a5984db239b4c1a5dcf09832e589c4635d57104e92d50eeb56f3fb0f8e36cb
//先拉取centos的鏡像然后創建centos這個容器
[root@lnh ~]# docker run centos
[root@lnh ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND              CREATED             STATUS                      PORTS     NAMES
f150d5fb3908   centos    "/bin/bash"          46 seconds ago      Exited (0) 45 seconds ago             vigilant_mccarthy
aedcd51e3aa6   httpd     "httpd-foreground"   About an hour ago   Exited (0) 2 minutes ago              web
//運行這個容器并隨機生成了一個容器名
[root@lnh ~]# docker logs web //查看容器的日志
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Fri Aug 05 08:04:45.386772 2022] [mpm_event:notice] [pid 1:tid 140366643633472] AH00489: Apache/2.4.52 (Unix) configured -- resuming normal operations
[Fri Aug 05 08:04:45.387166 2022] [core:notice] [pid 1:tid 140366643633472] AH00094: Command line: 'httpd -D FOREGROUND'
[root@lnh ~]# docker restart web 
web
//重新啟動容器
[root@lnh ~]# docker container ls -aq
aca3c6e793d3
[root@lnh ~]# docker ps -qa
aca3c6e793d3
//查看所有容器的id號
[root@lnh ~]# docker rm web 
web
[root@lnh ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
//移除這個容器
[root@lnh ~]# docker rm -f web 
web
[root@lnh ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
//強制性洗掉正在運行的容器
[root@lnh ~]# docker info  //查看容器的整個系統資訊
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 2
 Server Version: 20.10.17
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc version: v1.1.2-0-ga916309
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.18.0-257.el8.x86_64
 Operating System: CentOS Stream 8
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 1.903GiB
 Name: lnh
 ID: 47FW:2O3H:ASVG:7NA6:KDUB:I6AU:F7FL:7CFO:AKAV:7GPZ:L6DX:PYZD
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://docker.mirrors.ustc.edu.cn/
 Live Restore Enabled: false
[root@lnh ~]# docker inspect web 
[
    {
        "Id": "aca3c6e793d3cb5b2952696b8d4052d12443699d92a1a6296b9f42c2a7cad936",
        "Created": "2022-08-05T08:04:44.636318904Z",
        "Path": "httpd-foreground",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 18312,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-08-05T08:07:05.044372433Z",
            "FinishedAt": "2022-08-05T08:07:04.127897804Z"
        },
......
//查看容器的詳細資訊

docker event state

儲存驅動

docker提供了多種存盤驅動來實作不同的方式存盤鏡像,下面是常用的幾種存盤驅動:
AUFS 聯合檔案系統
OverlayFS
Devicemapper
Btrfs 下一代的copy-on-write檔案系統
VFS 虛擬檔案系統
AUFS
AUFS(AnotherUnionFS)是一種Union FS,是檔案級的存盤驅動,AUFS是一個能透明覆寫一個或多個現有檔案系統的層狀檔案系統,把多層合并成檔案系統的單層表示,簡單來說就是支持將不同目錄掛載到同一個虛擬檔案系統下的檔案系統,這種檔案系統可以一層一層地疊加修改檔案,無論底下有多少層都是只讀的,只有最上層的檔案系統是可寫的,當需要修改一個檔案時,AUFS創建該檔案的一個副本,使用CoW(寫時復制)將檔案從只讀層復制到可寫層進行修改,結果也保存在可寫層,在Docker中,底下的只讀層就是image,可寫層就是Container,

AUFS檔案系統據說有3W行代碼,而ext4檔案系統卻只有4000-5000行左右代碼,這些代碼是要被整合進內核的,后來AUFS申請要被合并進內核代碼的時候,linuz覺得它這代碼太過臃腫,于是拒絕了,因此AUFS這個檔案系統一直以來就不是linux內核中自有的檔案系統,想用AUFS這個檔案系統的話,必須自己向內核打補丁并去編譯使用它,但redhat系列的作業系統一向以穩定著稱,不會干這種出格的事,所以在redhat系列作業系統中使用AUFS并無可能,而ubuntu上的docker默認使用的就是AUFS,
OverlayFS
Overlay是Linux內核3.18后支持的,也是一種Union FS,和AUFS的多層不同的是Overlay只有兩層:一個upper檔案系統和一個lower檔案系統,分別代表Docker的鏡像層和容器層,當需要修改一個檔案時,使用CoW將檔案從只讀的lower復制到可寫的upper進行修改,結果也保存在upper層,在Docker中,底下的只讀層就是image,可寫層就是Container,目前最新的OverlayFS為Overlay2,

AUFS和Overlay都是聯合檔案系統,但AUFS有多層,而Overlay只有兩層,所以在做寫時復制操作時,如果檔案比較大且存在比較低的層,則AUSF會慢一些,而且Overlay并入了linux kernel mainline,AUFS沒有,目前AUFS已基本被淘汰,
DeviceMapper
Device mapper是Linux內核2.6.9后支持的,提供的一種從邏輯設備到物理設備的映射框架機制,在該機制下,用戶可以很方便的根據自己的需要制定實作存盤資源的管理策略,AUFS和OverlayFS都是檔案級存盤,而Device mapper是塊級存盤,所有的操作都是直接對塊進行操作,而不是檔案,Device mapper驅動會先在塊設備上創建一個資源池,然后在資源池上創建一個帶有檔案系統的基本設備,所有鏡像都是這個基本設備的快照,而容器則是鏡像的快照,所以在容器里看到檔案系統是資源池上基本設備的檔案系統的快照,并沒有為容器分配空間,當要寫入一個新檔案時,在容器的鏡像內為其分配新的塊并寫入資料,這個叫用時分配,當要修改已有檔案時,再使用CoW為容器快照分配塊空間,將要修改的資料復制到在容器快照中新的塊里再進行修改,

OverlayFS是檔案級存盤,Device mapper是塊級存盤,當檔案特別大而修改的內容很小,Overlay不管修改的內容大小都會復制整個檔案,對大檔案進行修改顯然要比小檔案要消耗更多的時間,而塊級無論是大檔案還是小檔案都只復制需要修改的塊,并不是整個檔案,在這種場景下,顯然device mapper要快一些,因為塊級的是直接訪問邏輯盤,適合IO密集的場景,而對于程式內部復雜,大并發但少IO的場景,Overlay的性能相對要強一些,

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

標籤:其他

上一篇:Linux—文本內容管理和檔案查找

下一篇:docker

標籤雲
其他(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)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more