嗨嗨哈哈,已經很久沒有坐下來胡編亂造一點筆記了,平時云服務器搞慣了,一個命令就安裝好了docker了的,但這次生不逢時的新機房就沒那么幸運了,有多不逢時超乎想象,不僅僅服務器沒有外網,就連周圍方圓一公里手機網路都沒有,要查一個資料只能步行公里開外去搜尋網路,
不打無準備之戰:我就是一名菜鳥,加上這樣的環境,豈不是雪上加霜,為了能夠順利的完成部署作業,我也是拼了,哈哈哈哈,網上找了很多關于離線docker的安裝資料,各種花式玩法真是百家爭鳴,搜索珍藏了1 mole的資料,忐忑的去現場實施了,
看到服務器配置的第一眼,哇靠,這配置真奢侈啊,妥妥的土豪,你沒看錯,這只是冰山一角,就問你一句話,奢不奢侈,

初出茅廬,手忙腳亂:懷著忐忑的心開始第一次docker離線安裝之旅,第一次安裝穩穩的宣布失敗,根據錯誤飛奔到公里開外去找度大娘,找完度大娘又滿懷憧憬的去修復,修復舊的問題又有新的問題,這樣周而復始了N個回合,docker還是頑固的起不起來,該下班了,來日再戰,
重整旗鼓,來日再戰:自己電腦安裝一個centos8虛擬機環境,持續搜索,嘗試多次,測驗成功了,整理好思路,飽飽睡一覺,來日再戰,
依葫畫瓢,一戰成功:第二天回到機房,找了一臺新服務器,按照昨晚的成功經驗,一戰成功,同樣的方法繼續搞昨天未成功的服務器,還是宣告失敗,成功的回不去了,還好我有一個習慣,新環境按照,我都喜歡操作一步記錄一步,找到昨天的安裝筆記,一步一操作回撤,最后成功回爐再造,
哈哈哈,唧唧歪歪的說了半天,還沒有進入到今天的主題,嘿嘿,你們是不是為我的啰里啰唆感到著急,嗯嗯,好下面我把成功安裝的筆記整理一下發出來,供有需要的你做一個參考,
1. 下載docker離線安裝包
Docker離線版安裝包下載很簡單,直接根據下面的地址選擇自己合適的版本下載即可:
https://download.docker.com/linux/static/stable/x86_64/
但是在具體版本選擇的時候給點建議:不要選擇太低的版本,低版本無論是性能還是其他都比理想,版本太新也不知道穩定性是否有問題,哈哈哈,是不是覺得我太保守啦,嗯嗯嗯,我的出發點就是穩定是第一要義,我建議選擇19以上版本,以上純屬個人狹隘觀點,如有冒犯多多包涵,
我習慣了一直用的是docker-19.03.6.tgz,這次也就選擇它了,
2. 安裝docker
2.1安裝包上傳
將上一步驟準備好的docker安裝包上傳到離線服務器,我習慣上傳到目錄:/home/installpack,具體目錄木有什么要求,根據自己愛好來操作,

2.2安裝包解壓
首先需要進入到安裝包,并執行解壓,當然你用決定路徑,進入安裝包就多此一舉了哈,我不嫌麻煩,老老實實一步一步來,分別執行以下命令
cd /home/installpack tar xzvf docker-19.03.6.tgz
執行完畢以后,你會看到一個docker檔案夾,那就大功告成,這一步我相信大家想錯都難噢,不會給你錯的機會,

2.3安裝
安裝也很簡單了,只需執行以下兩個命令即可:
cp docker/* /usr/bin/ dockerd &
這一步也許你就沒那么幸運了,如果是第一次安裝,我想你還是會一如既往的順,只要不報錯,說明你就成功了,
2.4測驗
測驗是否成功安裝,也就一句話的事,執行以下命令即可:
docker info
顯示如下界面,那就真的恭喜您,第一步安裝成功,黎明就在眼前了,
當然你也不需要太關心這一些內容是說明意思,或者很簡單的看安裝成功沒得,只要沒有紅色的字出現就是萬事大吉,
如果錯了,也不要慌,下面還有呢

2.5報錯回撤
無論是安裝程序中報錯還是測驗結果報錯,那都是錯,如果錯了請按照以下步驟來完成回撤,
首先想一想,是否還在網上找了其他大師的教程操作,如果找了,那么你首先要想一想做了哪一些操作,并全部還原回去,尤其是修改了某一些組態檔,是不是想起老師常說的好記性不如爛筆頭是很有道理的啦,
接下來就做本次安裝檔案洗掉即可,分別執行以下命令:
rm -rf /var/run/docker rm -rf /var/lib/docker rm -rf /var/run/docker.pid rm -rf /var/run/docker.sock 停止docker相關的行程 ps -aux | grep docker kill掉查詢出來的全部行程 解除docker相關行程占用埠 netstat -nplt | grep docker
完成以上操作后,又執行一遍安裝+測驗的命令即可,如果重復執行多次不爽,那我建議你可以拿出問題修復殺手锏了:重啟服務器
3. 設定docker為系統服務
3.1創建配置containerd服務
在etc目錄下創建containerd檔案夾,并在containerd檔案夾下創建containerd.service檔案,相關命令如下:
mkdir /etc/containerd touch /usr/lib/systemd/system/containerd.service vi /usr/lib/systemd/system/containerd.service
其中containerd.service檔案的內容填寫如下內容(先不關心里面配置的什么,先跑起來才是王道,后面有時間在慢慢研究):
[Unit] Description=containerd container runtime Documentation=https://containerd.io After=network.target [Service] ExecStartPre=/sbin/modprobe overlay ExecStart=/usr/bin/containerd Delegate=yes KillMode=process LimitNOFILE=1048576 # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNPROC=infinity LimitCORE=infinity [Install] WantedBy=multi-user.target
啟動containerd服務,命令如下:
# 重新加載配置資訊 systemctl daemon-reload #設定containerd.service為開機啟動 systemctl enable containerd.service #啟動containerd服務 systemctl start containerd.service #查看containerd服務啟動狀態 systemctl status containerd.service
依次執行以上命令,最后看到綠色的【active (running)】,那恭喜您containerd服務配置啟動成功,如果服務啟動失敗,還是終極殺手锏來解決:先嘗試重啟docker,如還是不行在嘗試重啟服務器,反正我是沒有重啟

3.2創建配置docker.socket服務
在/usr/lib/systemd/system檔案夾創建docker.socket檔案,命令如下:
groupadd docker touch /usr/lib/systemd/system/docker.socket vi /usr/lib/systemd/system/docker. socket
其中docker.socket檔案的內容填寫如下內容(先不關心里面配置的什么,先跑起來才是王道,后面有時間在慢慢研究):
[Unit] Description=Docker Socket for the API PartOf=docker.service [Socket] ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root # 如果出現錯誤:chown socket at step GROUP: No such process, 可以修改下面的 SocketGroup=root 或創建 docker 用戶組(命令 groupadd docker) SocketGroup=docker [Install] WantedBy=sockets.target
啟動containerd服務,查看是否正常,命令如下:
# 重新加載配置資訊 systemctl daemon-reload #設定containerd.service為開機啟動 systemctl enable containerd.service #啟動containerd服務 systemctl start containerd.service #查看containerd服務啟動狀態 systemctl status containerd.service
依次執行以上命令,最后看到綠色的【active (running)】,那恭喜您containerd服務配置啟動成功,如果服務啟動失敗,還是終極殺手锏來解決:先嘗試重啟docker,如還是不行在嘗試重啟服務器,反正我是沒有重啟

3.3創建配置docker.service服務
在/usr/lib/systemd/system檔案夾創建docker.service檔案,命令如下:
touch /usr/lib/systemd/system/docker.service vi /usr/lib/systemd/system/docker.service
其中docker.service檔案的內容填寫如下內容(先不關心里面配置的什么,先跑起來是王道,后面有時間在慢慢研究):
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com BindsTo=containerd.service After=network-online.target firewalld.service containerd.service Wants=network-online.target Requires=docker.socket [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecReload=/bin/kill -s HUP $MAINPID TimeoutSec=0 RestartSec=2 Restart=always # Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229. # Both the old, and new location are accepted by systemd 229 and up, so using the old location # to make them work for either version of systemd. StartLimitBurst=3 # Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230. # Both the old, and new name are accepted by systemd 230 and up, so using the old name to make # this option work for either version of systemd. StartLimitInterval=60s # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Comment TasksMax if your systemd version does not support it. # Only systemd 226 and above support this option. TasksMax=infinity # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process [Install] WantedBy=multi-user.target
啟動docker.service服務,命令如下:
#解除 systemctl unmask docker.service systemctl unmask docker.socket # 重新加載配置資訊 systemctl daemon-reload #設定docker為開機啟動 systemctl enable docker #啟動docker服務 systemctl start docker #查看docker服務啟動狀態 systemctl status docker
依次執行以上命令,最后看到綠色的【active (running)】,那恭喜您docekr.service服務配置啟動成功,如果服務啟動失敗,還是終極殺手锏來解決:先嘗試重啟docker,如還是不行在嘗試重啟服務器,反正我是重啟服務器才成功的,

當看到docker正常啟動的那一刻,這次環境搭建之旅忐忑的心才算落地,實話,
4. 安裝總結
走到這一步,恭喜您離線版docker搭建完成,簡單回顧一下本次安裝體會:
戒急戒躁:不要急于求成,跟著檔案一個蘿卜一個坑的走好
善于筆記:好記性不如爛筆頭,記錄自己的每一步操作,便于事后的回撤和總結
本次整理沒有其他目的,就是一個環境部署筆記總結,正好如果您也在找,也許可以幫助到你一點什么呢,豈不是一件快事,
好了,本次記錄就在此see good by,后面有時間在將docker中的相關鏡像遷移也做一個整理分享,
END
為了更高的交流,歡迎大家關注我的公眾號,掃描下面二維碼即可關注,謝謝:

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/396021.html
標籤:其他
