docker使用jenkins修改掛載目錄


第一次用docker創建jenkins的時候,不熟,對命令不太了解。摸索了下,創建了一個jenkins容器,用的以下參數。

docker run -d -p 8080:8080 -p 50000:50000 \
-v jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/localtime:/etc/localtime \
-v /usr/local/maven/apache-maven-3.6.3:/usr/local/maven \
-v /usr/local/gradle/gradle-6.5.1:/usr/local/gradle \
--name jenkins docker.io/jenkins/jenkins

 

后來沒找到/var/jenkins_home目錄在宿主機的掛載目錄,幾經摸索,發現在路徑下面/var/lib/docker/volumes/jenkins/_data目錄下面。

想把它修改到自定義目錄/usr/local/jenkins目錄下面,首先找到配置文件目錄:

/var/lib/docker/containers/[hash_of_the_container]/config.v2.json
/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json

是支持的json格式,可以格式化一下方便查看,兩個文件依次如下修改:

"/var/jenkins_home": {
      "Source": "/usr/local/jenkins",
      "Destination": "/var/jenkins_home",
      "RW": true,
      "Name": "",
      "Driver": "",
      "Type": "bind",
      "Propagation": "rprivate",
      "Spec": {
        "Type": "bind",
        "Source": "/usr/local/jenkins",
        "Target": "/var/jenkins_home"
      },
"Binds": [
    "/usr/local/jenkins:/var/jenkins_home",
    "/var/run/docker.sock:/var/run/docker.sock",
    "/etc/localtime:/etc/localtime",
    "/usr/local/maven/apache-maven-3.6.3:/usr/local/maven",
    "/usr/local/gradle/gradle-6.5.1:/usr/local/gradle"
  ],

容器沒停掉以前是替換重啟不成功的,首先docker stop jenkins,然后docker start jenkins,發現報錯。

Error response from daemon: error evaluating symlinks from mount source "/var/lib/docker/volumes/jenkins/_data": lstat /var/lib/docker/volumes/jenkins: no such file or directory

於是停掉docker服務,systemctl stop docker,再替換文件,再systemctl start docker,docker start jenkins,這時候不報錯了。

這時候發現不報錯了,但docker ps仍然沒有啟動的容器,想到原目錄下面是jenkins/_data目錄是1000用戶屬性,於是修改下當前路徑的用戶屬性。

chown -R 1000 /usr/local/jenkins/

可以正常啟動了,以前的配置還在。

注意:先將jenkins/_data目錄內容,拷貝下來放到/usr/lcoal/jenkins目錄下面的。

以后直接這樣創建了,記錄一下。

docker run -d -p 8080:8080 -p 50000:50000 \
-v /usr/local/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/localtime:/etc/localtime \
-v /usr/local/maven/apache-maven-3.6.3:/usr/local/maven \
-v /usr/local/gradle/gradle-6.5.1:/usr/local/gradle \
--name jenkins docker.io/jenkins/jenkins

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM