leetcode刷題-59螺旋矩陣2
linux目錄檔案
絕對路徑和相對路徑
絕對路徑
由根目錄/寫起,例如:/use/shaere/doc
絕對路徑
不由/寫起,例如cd ../home
處理目錄常用命令
/ 根目錄
ls 列出目錄
ls -a 列出所有目錄(包含隱藏目錄)
ls -l 列出所有目錄屬性和許可權等資料
ls -al列出所有目錄(包含屬性和隱藏目錄)
cd 切換目錄(絕對路徑和相對路徑)
cd .. 返回上一級
cd /回到根目錄
cd 或者 cd ~ 回到家目錄(剛進伺服器時的目錄)
pwd顯示當前目錄
pwd 顯示當前目錄
pwd -P 顯示具體目錄路徑(如是連線,要顯示真實地址,可使用-P引數)
mkdir(建立新目錄)
mkdir -p 建立多層目錄
mkdir -m 711 test 建立rwx--x--x許可權的目錄
rmdir(刪除空目錄)
rmdir -p test1/test2/test3 yi\依次刪除掉
cp(複製檔案或者目錄)
cp /root/aa.txt/home複製root目錄下的aa.txt1檔案到home目錄下
cp -i/root/aa.txt/home加上-i引數,增加覆蓋詢問,y覆蓋,n不覆蓋
選項與引數:
-
-a:相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用)
-
-p:連同檔案的屬性一起復制過去,而非使用預設屬性(備份常用);
-
-d:若來源檔為連結檔的屬性(link file),則複製連結檔屬性而非檔案本身;
-
-r:遞迴持續複製,用於目錄的複製行為;(常用)
-
-f:為強制(force)的意思,若目標檔案已經存在且無法開啟,則移除後再嘗試一次;
-
-i:若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
-
-l:進行硬式連結(hard link)的連結檔建立,而非複製檔案本身。
-
-s:複製成為符號連結檔 (symbolic link),亦即『捷徑』檔案;
-
-u:若 destination 比 source 舊才升級 destination !
rm(移除檔案或者目錄)
rm -i 主動詢問是否刪除,避免刪除錯誤的檔案
rm -rf /勿用,刪庫跑路
選項與引數:
-
-f :就是 force 的意思,忽略不存在的檔案,不會出現警告資訊;
-
-i :互動模式,在刪除前會詢問使用者是否動作
-
-r :遞迴刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!
mv(移動檔案或目錄,修改名稱)
mv aa.txt test 將某目錄中的aa.txt檔案移動到test目錄下
-
-f :force 強制的意思,如果目標檔案已經存在,不會詢問而直接覆蓋;
-
-i :若目標檔案 (destination) 已經存在時,就會詢問是否覆蓋!
-
-u :若目標檔案已經存在,且 source 比較新,才會升級 (update)
基本屬性
第一個屬性
-
當為[ d ]則是目錄
-
當為[ - ]則是檔案;
-
若是[ l ]則表示為連結文件 ( link file );
-
若是[ b ]則表示為裝置檔案裡面的可供儲存的介面裝置 ( 可隨機存取裝置 );
-
若是[ c ]則表示為裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠 ( 一次性讀取裝置 )。
第0位確定檔案型別,第1-3位確定屬主(該檔案的所有者)擁有該檔案的許可權。第4-6位確定屬組(所有者的同組使用者)擁有該檔案的許可權,第7-9位確定其他使用者擁有該檔案的許可權。
接下來的字元中,以三個為一組,且均為『rwx』 的三個引數的組合。
其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute),-表示沒有許可權。
要注意的是,這三個許可權的位置不會改變,如果沒有許可權,就會出現減號[ - ]而已。
更改檔案屬組屬主屬性
chgrp:更改檔案屬組
chgrp [-R] 屬組名 檔名
chown:更改檔案屬主,也可以同時更改檔案屬組
chown [–R] 屬主名 檔名
chown [-R] 屬主名:屬組名 檔名
chmod:更改檔案9個屬性
chmod [-R] xyz 檔案或目錄
chmod 777 檔案或目錄(可讀可寫可操作)
Linux檔案屬性有兩種設定方法,一種是數字,一種是符號。
Linux檔案的基本許可權就有九個,分別是owner/group/others三種身份各有自己的read/write/execute許可權。
先複習一下剛剛上面提到的資料:檔案的許可權字元為:『-rwxrwxrwx』, 這九個許可權是三個三個一組的!其中,我們可以使用數字來代表各個許可權,各許可權的分數對照表如下:
r:4 w:2 x:1
每種身份(owner/group/others)各自的三個許可權(r/w/x)分數是需要累加的,例如當權限為:[-rwxrwx---] 分數則是:
-
owner = rwx = 4+2+1 = 7
-
group = rwx = 4+2+1 = 7
-
others= --- = 0+0+0 = 0
chmod 770 filename
檔案內容檢視
cat 由第一行開始顯示檔案內容
tac 從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
nl 顯示的時候,順道輸出行號!
more 一頁一頁的顯示檔案內容(空格翻頁,回車下一行,:f行號)
less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!(空格翻頁,上下鍵翻動頁面,q退出),less中的/字串,查詢檔案中的所有這個字串,向上查詢用?要查詢字串,n向上尋找,N向下尋找
head 只看頭幾行,通過-n顯示行數
tail 只看尾巴幾行
網路配置檔案
cd /etc/sysconfig/network-scripts ( CentOS7)
ifconfig 檢視網路配置
連結
Linux 連結分兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。
情況下,ln 命令產生硬連結。
硬連線
硬連線指通過索引節點來進行連線。在 Linux 的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Index)。在 Linux 中,多個檔名指向同一索引節點是存在的。比如:A 是 B 的硬連結(A 和 B 都是檔名),則 A 的目錄項中的 inode 節點號與 B 的目錄項中的 inode 節點號相同,即一個 inode 節點對應兩個不同的檔名,兩個檔名指向同一個檔案,A 和 B 對檔案系統來說是完全平等的。刪除其中任何一個都不會影響另外一個的訪問。
硬連線的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連線。只刪除一個連線並不影響索引節點本身和其它的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。
軟連線
另外一種連線稱之為符號連線(Symbolic Link),也叫軟連線。軟連結檔案有類似於 Windows 的快捷方式。它實際上是一個特殊的檔案。在符號連線中,檔案實際上是一個文字檔案,其中包含的有另一檔案的位置資訊。比如:A 是 B 的軟連結(A 和 B 都是檔名),A 的目錄項中的 inode 節點號與 B 的目錄項中的 inode 節點號不相同,A 和 B 指向的是兩個不同的 inode,繼而指向兩塊不同的資料塊。但是 A 的資料塊中存放的只是 B 的路徑名(可以根據這個找到 B 的目錄項)。A 和 B 之間是“主從”關係,如果 B 被刪除了,A 仍然存在(因為兩個是不同的檔案),但指向的是一個無效的連結。
測試:
[root@kuangshen /]# cd /home
[root@kuangshen home]# touch f1 # 建立一個測試檔案f1
[root@kuangshen home]# ls
f1
[root@kuangshen home]# ln f1 f2 # 建立f1的一個硬連線檔案f2
[root@kuangshen home]# ln -s f1 f3 # 建立f1的一個符號連線檔案f3
[root@kuangshen home]# ls -li # -i引數顯示檔案的inode節點資訊
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f1
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f2
397248 lrwxrwxrwx 1 root root 2 Mar 13 00:50 f3 -> f1
從上面的結果中可以看出,硬連線檔案 f2 與原檔案 f1 的 inode 節點相同,均為 397247,然而符號連線檔案的 inode 節點不同。
# echo 字串輸出 >> f1 輸出到 f1檔案
[root@kuangshen home]# echo "I am f1 file" >>f1
[root@kuangshen home]# cat f1
I am f1 file
[root@kuangshen home]# cat f2
I am f1 file
[root@kuangshen home]# cat f3
I am f1 file
[root@kuangshen home]# rm -f f1
[root@kuangshen home]# cat f2
I am f1 file
[root@kuangshen home]# cat f3
cat: f3: No such file or directory
通過上面的測試可以看出:當刪除原始檔案 f1 後,硬連線 f2 不受影響,但是符號連線 f1 檔案無效;
依此您可以做一些相關的測試,可以得到以下全部結論:
刪除符號連線f3,對f1,f2無影響;
刪除硬連線f2,對f1,f3也無影響;
刪除原檔案f1,對硬連線f2沒有影響,導致符號連線f3失效;
同時刪除原檔案f1,硬連線f2,整個檔案會真正的被刪除。
vim編輯器
vim基本命令
vim三種 模式命令 模式編輯模式 底線命令模式
vim aa.txt 建立檔案進入vim(命令模式),aa.txt如果存在就編輯,不存在就建立
i(編輯模式)ESC (退出編輯模式)
:(底線命令模式)
q退出程式 w儲存檔案 :wq 儲存並退出
cat檢視檔案
x刪除游標所在的字元
vim詳細命令
第一部分:一般模式可用的游標移動、複製貼上、搜尋替換等
移動游標的方法 | |
---|---|
h 或 向左箭頭鍵(←) | 游標向左移動一個字元 |
j 或 向下箭頭鍵(↓) | 游標向下移動一個字元 |
k 或 向上箭頭鍵(↑) | 游標向上移動一個字元 |
l 或 向右箭頭鍵(→) | 游標向右移動一個字元 |
[Ctrl] + [f] | 螢幕『向下』移動一頁,相當於 [Page Down]按鍵 (常用) |
[Ctrl] + [b] | 螢幕『向上』移動一頁,相當於 [Page Up] 按鍵 (常用) |
[Ctrl] + [d] | 螢幕『向下』移動半頁 |
[Ctrl] + [u] | 螢幕『向上』移動半頁 |
+ | 游標移動到非空格符的下一行 |
- | 游標移動到非空格符的上一行 |
n< space> | 那個 n 表示『數字』,例如 20 。按下數字後再按空格鍵,游標會向右移動這一行的 n 個字元。 |
0 或功能鍵[Home] | 這是數字『 0 』:移動到這一行的最前面字元處 (常用) |
$ 或功能鍵[End] | 移動到這一行的最後面字元處(常用) |
H | 游標移動到這個螢幕的最上方那一行的第一個字元 |
M | 游標移動到這個螢幕的中央那一行的第一個字元 |
L | 游標移動到這個螢幕的最下方那一行的第一個字元 |
G | 移動到這個檔案的最後一行(常用) |
nG | n 為數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu) |
gg | 移動到這個檔案的第一行,相當於 1G 啊!(常用) |
n< Enter> | n 為數字。游標向下移動 n 行(常用) |
搜尋替換 | |
---|---|
/word | 向光標之下尋找一個名稱為 word 的字串。例如要在檔案內搜尋 vbird 這個字串,就輸入 /vbird 即可!(常用) |
?word | 向光標之上尋找一個字串名稱為 word 的字串。 |
n | 這個 n 是英文按鍵。代表重複前一個搜尋的動作。舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字串,則按下 n 後,會向下繼續搜尋下一個名稱為 vbird 的字串。如果是執行 ?vbird 的話,那麼按下 n 則會向上繼續搜尋名稱為 vbird 的字串! |
N | 這個 N 是英文按鍵。與 n 剛好相反,為『反向』進行前一個搜尋動作。例如 /vbird 後,按下 N 則表示『向上』搜尋 vbird 。 |
刪除、複製與貼上 | |
---|---|
x, X | 在一行字當中,x 為向後刪除一個字元 (相當於 [del] 按鍵), X 為向前刪除一個字元(相當於 [backspace] 亦即是退格鍵) (常用) |
nx | n 為數字,連續向後刪除 n 個字元。舉例來說,我要連續刪除 10 個字元, 『10x』。 |
dd | 刪除遊標所在的那一整行(常用) |
ndd | n 為數字。刪除游標所在的向下 n 行,例如 20dd 則是刪除 20 行 (常用) |
d1G | 刪除游標所在到第一行的所有資料 |
dG | 刪除游標所在到最後一行的所有資料 |
d$ | 刪除遊標所在處,到該行的最後一個字元 |
d0 | 那個是數字的 0 ,刪除遊標所在處,到該行的最前面一個字元 |
yy | 複製遊標所在的那一行(常用) |
nyy | n 為數字。複製游標所在的向下 n 行,例如 20yy 則是複製 20 行(常用) |
y1G | 複製遊標所在行到第一行的所有資料 |
yG | 複製遊標所在行到最後一行的所有資料 |
y0 | 複製游標所在的那個字元到該行行首的所有資料 |
y$ | 複製游標所在的那個字元到該行行尾的所有資料 |
p, P | p 為將已複製的資料在游標下一行貼上,P 則為貼在遊標上一行!舉例來說,我目前游標在第 20 行,且已經複製了 10 行資料。則按下 p 後, 那 10 行資料會貼在原本的 20 行之後,亦即由 21 行開始貼。但如果是按下 P 呢?那麼原本的第 20 行會被推到變成 30 行。(常用) |
J | 將游標所在行與下一行的資料結合成同一行 |
c | 重複刪除多個數據,例如向下刪除 10 行,[ 10cj ] |
u | 復原前一個動作。(常用) |
[Ctrl]+r | 重做上一個動作。(常用) |
第二部分:一般模式切換到編輯模式的可用的按鈕說明
進入輸入或取代的編輯模式 | |
---|---|
i, I | 進入輸入模式(Insert mode):i 為『從目前游標所在處輸入』, I 為『在目前所在行的第一個非空格符處開始輸入』。(常用) |
a, A | 進入輸入模式(Insert mode):a 為『從目前游標所在的下一個字元處開始輸入』, A 為『從游標所在行的最後一個字元處開始輸入』。(常用) |
o, O | 進入輸入模式(Insert mode):這是英文字母 o 的大小寫。o 為『在目前游標所在的下一行處輸入新的一行』;O 為在目前游標所在處的上一行輸入新的一行!(常用) |
r, R | 進入取代模式(Replace mode):r 只會取代游標所在的那一個字元一次;R會一直取代游標所在的文字,直到按下 ESC 為止;(常用) |
[Esc] | 退出編輯模式,回到一般模式中(常用) |
第三部分:一般模式切換到指令行模式的可用的按鈕說明
指令行的儲存、離開等指令 | |
---|---|
:w | 將編輯的資料寫入硬碟檔案中(常用) |
:w! | 若檔案屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案許可權有關啊! |
:q | 離開 vi (常用) |
:q! | 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。 |
注意一下啊,那個驚歎號 (!) 在 vi 當中,常常具有『強制』的意思~ | |
:wq | 儲存後離開,若為 :wq! 則為強制儲存後離開 (常用) |
ZZ | 這是大寫的 Z 喔!若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開! |
:w [filename] | 將編輯的資料儲存成另一個檔案(類似另存新檔) |
:r [filename] | 在編輯的資料中,讀入另一個檔案的資料。亦即將 『filename』 這個檔案內容加到遊標所在行後面 |
:n1,n2 w [filename] | 將 n1 到 n2 的內容儲存成 filename 這個檔案。 |
:! command | 暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如 『:! ls /home』即可在 vi 當中看 /home 底下以 ls 輸出的檔案資訊! |
:set nu | 顯示行號,設定之後,會在每一行的字首顯示該行的行號 |
:set nonu | 與 set nu 相反,為取消行號! |
使用者組管理
/etc/group
組的增刪改就是對/etc/group檔案的更新
groupadd建立使用者組
-g 指定使用者組id
groupmod
-g 520 修改指定使用者組id
group -n 修改使用者組名稱
groupdel刪除使用者組
切換使用者組
$ newgrp root
/etc/passwd
使用者名稱:口令(密碼):使用者標識號:組標識號:註釋性描述:主目錄:登入Shell
/etc/shadow
把加密後的口令存放到裡面,保證安全性!
賬號管理
useradd -m新增使用者
-
-c comment 指定一段註釋性描述。
-
-d 目錄 指定使用者主目錄,如果此目錄不存在,則同時使用-m選項,可以建立主目錄。
-
-g 使用者組 指定使用者所屬的使用者組。
-
-G 使用者組,使用者組 指定使用者所屬的附加組。
-
-m 使用者目錄如不存在則自動建立。
-
-s Shell檔案 指定使用者的登入Shell。
-
-u 使用者號 指定使用者的使用者號,如果同時有-o選項,則可以重複使用其他使用者的標識號。
userdel -r刪除使用者
usermod修改使用者
引數和useradd一樣
切換使用者
exit 回到root使用者
hostname 檢視或者修改主機名,修改完重新連線就行
使用者口令的管理(黑客原理)
使用者管理的一項重要內容是使用者口令的管理。使用者賬號剛建立時沒有口令,但是被系統鎖定,無法使用,必須為其指定口令後才可以使用,即使是指定空口令。
指定和修改使用者口令的Shell命令是passwd。超級使用者可以為自己和其他使用者指定口令,普通使用者只能用它修改自己的口令。
命令的格式為:
passwd 選項 使用者名稱
可使用的選項:
-
-l 鎖定口令,即禁用賬號。
-
-u 口令解鎖。
-
-d 使賬號無口令。
-
-f 強迫使用者下次登入時修改口令。
如果預設使用者名稱,則修改當前使用者的口令。
例如,假設當前使用者是kuangshen,則下面的命令修改該使用者自己的口令:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超級使用者,可以用下列形式指定任何使用者的口令:
# passwd kuangshen
New password:*******
Re-enter new password:*******
普通使用者修改自己的口令時,passwd命令會先詢問原口令,驗證後再要求使用者輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給使用者;而超級使用者為使用者指定口令時,就不需要知道原口令。
為了系統安全起見,使用者應該選擇比較複雜的口令,例如最好使用8位長的口令,口令中包含有大寫、小寫字母和數字,並且應該與姓名、生日等不相同。
為使用者指定空口令時,執行下列形式的命令:
# passwd -d kuangshen
此命令將使用者 kuangshen的口令刪除,這樣使用者 kuangshen下一次登入時,系統就不再允許該使用者登入了。
passwd 命令還可以用 -l(lock) 選項鎖定某一使用者,使其不能登入,例如:
# passwd -l kuangshen
磁碟管理
df,du
df 列出檔案系統的整體磁碟使用量
df -h 按照M或者G檢視容量
du 檢查單個目錄使用量
du -a 檢查單個目錄使用量包含子目錄
du -sm /*檢查根目錄下每個目錄所佔用的容量
掛載解除安裝
mount掛載
將外部裝置yang掛載到mnt目錄下
umount解除安裝
引數
-f :強制卸除!可用在類似網路檔案系統 (NFS) 無法讀取到的情況下;
-n :不升級 /etc/mtab 情況下卸除。
程序管理
ps -aux|grep 檢視所有程序
|管道符
ps -aux|grep 名稱 檢視指定名稱程序(重點)
ps -aux檢視所有程序
ps -a檢視當前程序
ps -u以使用者資訊檢視程序
ps -x顯示後臺程序引數
ps -ef 檢視父程序
ps -ef |grep 名稱 檢視指定父程序資訊
pstree -pu樹形顯示
檢視程序清晰易懂,推薦使用
-p顯示父id
-x顯示使用者組
kill -9 結束程序
kill -9 程序id 結束程序
例如java死迴圈
jdk安裝(rpm安裝)
1、rpm下載地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、如果有安裝openjdk 則解除安裝
[root@kuangshen ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
# 檢查
[root@kuangshen ~]# rpm -qa|grep jdk
jdk1.8.0_121-1.8.0_121-fcs.x86_64
# 解除安裝 -e --nodeps 強制刪除
[root@kuangshen ~]# rpm -e --nodeps jdk1.8.0_121-1.8.0_121-fcs.x86_64
[root@kuangshen ~]# java -version
-bash: /usr/bin/java: No such file or directory # OK
3、安裝JDK
# 安裝java rpm
[root@kuangshen kuangshen]# rpm -ivh jdk-8u221-linux-x64.rpm
# 安裝完成後配置環境變數 檔案:/etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
# 儲存退出
# 讓新增的環境變數生效!
source /etc/profile
# 測試 java -version
[root@kuangshen java]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
Tomcat安裝(解壓縮安裝)
1、安裝好了Java環境後我們可以測試下Tomcat!準備好Tomcat的安裝包!
2、將檔案移動到/usr/tomcat/下,並解壓!
[root@kuangshen kuangshen]# mv apache-tomcat-9.0.22.tar.gz /usr
[root@kuangshen kuangshen]# cd /usr
[root@kuangshen usr]# ls
apache-tomcat-9.0.22.tar.gz
[root@kuangshen usr]# tar -zxvf apache-tomcat-9.0.22.tar.gz # 解壓
3、執行Tomcat,進入bin目錄,和我們以前在Windows下看的都是一樣的
# 執行:startup.sh -->啟動tomcat
# 執行:shutdown.sh -->關閉tomcat
./startup.sh
./shutdown.sh
4、確保Linux的防火牆埠是開啟的,如果是阿里雲,需要保證阿里雲的安全組策略是開放的!
# 檢視firewall服務狀態
systemctl status firewalld
# 開啟、重啟、關閉、firewalld.service服務
# 開啟
service firewalld start
# 重啟
service firewalld restart
# 關閉
service firewalld stop
# 檢視防火牆規則
firewall-cmd --list-all # 檢視全部資訊
firewall-cmd --list-ports # 只看埠資訊
# 開啟埠
開埠命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重啟防火牆:systemctl restart firewalld.service
命令含義:
--zone #作用域
--add-port=80/tcp #新增埠,格式為:埠/通訊協議
--permanent #永久生效,沒有此引數重啟後失效
安裝Docker(yum安裝)
基於 CentOS 7 安裝
-
官網安裝參考手冊:https://docs.docker.com/install/linux/docker-ce/centos/
-
確定你是CentOS7及以上版本
[root@192 Desktop]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) -
yum安裝gcc相關(需要確保 虛擬機器可以上外網 )
yum -y install gcc
yum -y install gcc-c++ -
解除安裝舊版本
yum -y remove docker docker-common docker-selinux docker-engine
# 官網版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine -
安裝需要的軟體包
yum install -y yum-utils device-mapper-persistent-data lvm2
-
設定stable映象倉庫
# 錯誤
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 報錯
[Errno 14] curl#35 - TCP connection reset by peer
[Errno 12] curl#35 - Timeout
# 正確推薦使用國內的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
更新yum軟體包索引
yum makecache fast
-
安裝Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
-
啟動docker
systemctl start docker
-
測試
docker version
docker run hello-world
docker images
寶塔面板安裝