前提
(1)宿主機(jī)安裝好了Docker。
(2)宿主機(jī)拉取Jenkins的最新鏡像。
場(chǎng)景
使用Jenkins將打包好的鏡像推送到遠(yuǎn)程鏡像倉(cāng)庫(kù)時(shí),運(yùn)行docker login命令的時(shí)候,控制臺(tái)報(bào)錯(cuò):docker command not found。
原因
Jenkins容器內(nèi)部并沒有安裝Docker,但是我不想在內(nèi)部再安裝一個(gè)Docker,而是想直接使用使用宿主機(jī)內(nèi)部的Docker。
思路
將宿主機(jī)的Docker引擎掛載到Jenkins容器上,即Jenkins容器調(diào)用宿主機(jī)的Docker。
掛載內(nèi)容
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker
方法
方法一(vim操作,需要細(xì)心)
修改配置文件,可參考該文章(2條消息) Docker修改容器掛載目錄的三種方式_拉比比比的博客-CSDN博客_docker修改容器掛載
方法二(個(gè)人推薦)
關(guān)閉原jenkins容器(如果之前開過(guò)的話),新開一個(gè)容器,但是新增docker掛載內(nèi)容。
示例:我想創(chuàng)建一個(gè)名字為jenkins的容器,暴露端口為8888,jenkins_home在宿主機(jī)上的目錄是/server/jenkins/home。
創(chuàng)建容器的命令如下:
docker run --name jenkins -d -p 8888:8080 -p 50000:50000 --restart=always -v /server/jenkins/home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:latest
?如果啟動(dòng)失敗,且原因是permission denied,原因是宿主機(jī)目錄和jenkins容器的用戶不是一個(gè),使用如下目錄授權(quán),目錄根據(jù)自己設(shè)置的宿主機(jī)目錄自行修改:
chown -R 1000:1000 /server/jenkins/home
?啟動(dòng)成功
?輸入如下命令測(cè)試jenkins容器內(nèi)部是否能使用Docker,容器ID根據(jù)實(shí)際情況自行修改
docker exec -it 242 /bin/bash
?再輸入docker info,如圖所示即為安裝成功
如果出現(xiàn)了permission denied,情況同上,輸入如下命令對(duì)權(quán)限不夠的目錄進(jìn)行授權(quán)?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-653261.html
chown -R 1000:1000 /var/run/docker.sock
問(wèn)題解決。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-653261.html
到了這里,關(guān)于Jenkins(Docker版)中使用宿主機(jī)的Docker的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!