1. 程式人生 > >docker 搭建jenkins, 宿主機掛載路徑uid,gid均正確卻還報Permission denied,請考慮是否是selinux緣故

docker 搭建jenkins, 宿主機掛載路徑uid,gid均正確卻還報Permission denied,請考慮是否是selinux緣故

1)建立jenkins容器:

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins

(note:docker中jenkins的uid,gid預設都是1000,因此宿主機的路徑必須也要設定成相同的許可權)

2)檢查容器狀態:

docker ps -a

3)如果還是exit(1),docker logs <container id>提示permission denied的情況,請檢查宿主機是否開啟selinux:

宿主機切換jenkins使用者,id命令檢視到:

bash-4.2$ id
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023



而docker環境下id命令結果沒有上面標紅:

[[email protected] jenkins_home]# docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "id"
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins)

宿主機下執行/usr/sbin/sestatus -v命令檢視selinux狀態:

[[email protected] jenkins_home]# /usr/sbin/sestatus -v
SELinux status:                 enabled

那麼就可以判定selinux是開啟的

4)那麼處理方法有兩種:

a.關閉selinux(網上搜一搜方法)

b.不關閉selinux的情況下,修改宿主機jenkins掛載目錄的許可權:

在宿主機執行ls -Z可以檢視selinux資訊,

[[email protected] jenkins_home]# ls -Za
drwxr-xr-x. jenkins jenkins system_u:object_r:var_t:s0       .
drwxr-xr-x. root    root    system_u:object_r:var_t:s0       ..

那麼同樣在docker環境下檢視selinux資訊,

[[email protected] jenkins_home]# docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "cd /var/jenkins_home;ls -Zal"
total 20
drwxr-xr-x.  2 jenkins jenkins system_u:object_r:svirt_sandbox_file_t:s0           4096 Dec  8 07:57 .
drwxr-xr-x. 12 root    root    system_u:object_r:svirt_sandbox_file_t:s0:c365,c598 4096 Nov  8 21:55 ..

比較第三列確有差異。

接下來手動修改/var/jenkins_home目錄的selinux許可權即可:

[[email protected] jenkins_home]# chcon -R -t svirt_sandbox_file_t .
[[email protected] jenkins_home]# ls -aZl
total 84
drwxr-xr-x. 13 system_u:object_r:svirt_sandbox_file_t:s0 jenkins jenkins 4096 Dec  8 15:21 .
drwxr-xr-x. 21 system_u:object_r:var_t:s0       root    root    4096 Dec  7 14:28 ..

5)重啟jenkins

docker restart <container id>

或者刪除舊的容器,新建:

docker rm <container id>

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins

相關推薦

docker 搭建jenkins 宿主掛載路徑uid,gid正確Permission denied考慮是否是selinux緣故

1)建立jenkins容器: docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins (note:docker中jenki

centos7數據庫連接使用127.0.0.1permission denied使用localhostNo such file or directory

臨時 pro target lamp環境 processes sele mount sdn -i 安裝lamp環境後,測試數據庫連接。 當host使用127.0.0.1時,報錯:(HY000/2002): Permission denied。 把host換成localhos

Esxi6.0-U1 宿主掛載EMC存儲

emc esxi 存儲 時間:2016-7-4事件:esxi6.0主機掛載存儲報錯解決辦法:原來這是vSphere 6的一個已知bug,解決方法是重啟管理代理,方法有兩種。一是去ESXi主機控制臺上按F2,以root登陸,然後選擇Restart Management Agents。二是通過SSH登

virtualBox NAT模式設置虛擬可上網宿主可訪問虛擬的方法

設置 PV TP alt mage === box href 想要 環境描述: 宿主機:windows Server 2008 64bit,IPV4地址,有網絡。 宿主機上的主要軟件環境: virtualBox 5.0.24 virtualBox中安裝了

VirtualBox網絡環境配置宿主與虛擬互聯同時虛擬也可以使用互聯網

linux image mark 虛擬網卡 pre sco 編輯器 連接 使用 最近在折騰虛擬機,在VirtualBox 上安裝centOS 7 ,安裝過程再次不說互聯網上一大堆,咱們這裏只說虛擬機網絡配置問題。 配置網卡1 在高級裏設置去全部允許 網卡2 高級裏同樣

基於docker搭建jenkins+maven程式碼構建部署平臺

由於專案開發,經常需要在本地搭一些環境進行開發或測試,大家知道搭環境、裝軟體、裝中介軟體是件非常麻煩的事情,有些軟體的安裝可能需要依賴其它環境的安裝,如安裝rabbitmq首先需要Erlang語言環境,一整套安裝下來不僅浪費時間而且還各種問題出現,嚴重影響

Docker+Jenkins持續整合環境(1)使用Docker搭建Jenkins+Docker持續整合環境

來源:https://www.cnblogs.com/xiaoqi/p/docker-jenkins-cicd.html 本文介紹如何通過Jenkins的docker映象從零開始構建一個基於docker映象的持續整合環境,包含自動化構建、釋出到倉庫\並部署上線。 0. 前置條件 伺服器安

virtualBox NAT模式設定虛擬機器可上網宿主可訪問虛擬機器的方法

環境描述: 宿主機:windows Server 2008 64bit,IPV4地址,有網路。 宿主機上的主要軟體環境: virtualBox 5.0.24 virtualBox中安裝了CentOS 7.2版本。 由於在virtualBox的網路模式中選擇了

基於consul的Docker-overlay跨多宿主容器網路

環境限制必須安裝key-value儲存服務,如consul宿主機已經安裝docker engine宿主機的hostname必須不同核心大於3.16環境準備及角色分配兩臺ubuntu的server主機名ip核心啟動docker容器名稱docker engine版本consul服

Linux 下 Docker 埠對映到宿主後 外部無法訪問對應宿主機埠

問題描述 原因 解決問題 問題描述   前段時間使用 Docker 裝了 GitLab,SSH 配置都已經配置完畢,容器埠和宿主機埠也對映完畢。Firewall 和 SELinux 也已經關閉。   1、在宿主機上訪問對應的埠使用

十、Docker網路以及跨宿主通訊

講在前面: 1.目前實現的是單機部署,如何建立映象,管理映象;如何建立容器,管理容器;如何快速建立docker虛擬主機machine,如何快速部署多元件專案compose以及如何跨宿主機建立叢集swarm。 2.docker單機通訊是docker0橋接eth

docker搭建jenkins

進入 基本 搭建 安裝 點擊 我們 權限 bsp ins 這裏是在linux環境下安裝docker之後,在doucer內安裝jenkins --------------------docker 安裝 jenkins-----------------------------

CentOS7.4中Docker以rw方式掛載volumePermission denied問題

一、問題背景 今天在CentOS7.4.1708上實踐Docker掛載volume,一切按照正常流程進行操作,無論是建立目錄、建立檔案、還是檢視、編輯主機上建立好的檔案,都報"Permission denied",具體如下: [[email protected]

MySQL密碼正確無法本地登錄ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

oot 問題 進入 quit mysql數據庫 host 對比 strong In MySQL密碼正確卻無法本地登錄 報錯如下: ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pas

Permission denied解決方法

Permission denied: 出現的原因的是:沒有許可權進行讀、寫、建立檔案、刪除檔案等操作。 解決方法:輸入命令 sudo chmod -R 777  /工作目錄, 例如:sudo chmode -R 777 /home/HDD,此時就可以在該路徑下進行一系列的

Linux解決問題篇——ftp上傳檔案(使用put)時permission denied下載檔案(使用get)時failed to open file

使用ftp連線本地伺服器時,在上傳put時出現問題,幾番折騰,最終解決。 我的操作流程:1、要上傳的檔案存在/tmp中,名稱為testfile,這個檔案我是使用dd建立的:dd if=/dev/zero of=/tmp/testfile bs=1M count=200,這

dockerdocker容器和宿主之間檔案互傳互相拷貝

原文地址:https://www.cnblogs.com/areyouready/p/8973495.html     【注意:命令中符號均為英文符號】 1、從容器裡面拷檔案到宿主機      答:在宿主機裡面執行以下命令    

利用docker-compose實現elk+redice的但宿主環境搭建

第一步 環境準備---工作目錄準備 1)C:\Users\xu\Desktop\elkcompose\compose\elk_stack 2)C:\Users\xu\Desktop\elkcompose\elasticsearch\config 3)C:\Users\xu\

使用Docker搭建開發環境包括(nginx,redis,mysql,gitlab,nexus3,activemq,jenkins

使用Docker搭建開發環境 自從玩了Docker,深深的被Docker迷住,做了這麼多年軟體,都沒想到軟體會發展到這種階段,使用容器隔離技術,將各個服務程序隔離。 記錄一下自己為新成立的部門使用Docker搭建開發環境的過程,這裡只是簡粗暴的記錄下執行命令

如何讓docker容器和宿主在一個網段並組成區域網

假設我們有 A , B , C 3臺機器 A: 192.168.1.10 B: 192.168.1.11 C: 192.16