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