1) 把docker相關(guān)的命令和依賴使用-v掛載到容器
docker run -it -d \
--restart=always -u root \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 鏡像名稱
docker run 參數(shù)說明
--restart=always #Docker重啟后該容器也為隨之重啟
-u root
#以root的身份去運(yùn)行鏡像(避免在容器中調(diào)用Docker命令沒有權(quán)限)
#最好使用docker用戶去運(yùn)行
-v /usr/bin/docker:/usr/bin/docker
#將宿主機(jī)的docker命令掛載到容器中
#可以使用which docker命令查看具體位置
#或者把掛載的參數(shù)改為: -v $(which docker):/usr/bin/docker
-v /var/run/docker.sock:/var/run/docker.sock
#容器中的進(jìn)程可以通過它與Docker守護(hù)進(jìn)程進(jìn)行通信
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
#libltdl.so.7是Docker命令執(zhí)行所依賴的函數(shù)庫
#容器中l(wèi)ibrary的默認(rèn)目錄是 /usr/lib/x86_64-linux-gnu/
#把宿主機(jī)的libltdl.so.7 函數(shù)庫掛載到該目錄即可
#可以通過whereis libltdl.so.7命令查看具體位置
#centos7位置/usr/lib64/libltdl.so.7
#ubuntu位置/usr/lib/x86_64-linux-gnu/libltdl.so.7
2) 為當(dāng)前用戶賦予執(zhí)行docker命令的權(quán)限
如果之前為docker創(chuàng)建過用戶,則需要執(zhí)行以下命令,沒有的話直接跳過
#則需要把將當(dāng)前用戶加入docker組
sudo gpasswd -a ${USER} docker
#或者將當(dāng)前用戶直接加到文件中
sudo echo "docker:x:994:${USER}" >> /etc/group
#查看docker用戶組成員
cat /etc/group |grep docker
#重新啟動(dòng)docker服務(wù)
sudo systemctl restart docker
#當(dāng)前用戶退出系統(tǒng)重新登陸