【问题标题】:Run Docker Jenkins container with bind volume throws log file access error使用绑定卷运行 Docker Jenkins 容器会引发日志文件访问错误
【发布时间】:2017-07-20 15:47:43
【问题描述】:

我正在尝试在容器中运行 jenkins。 我正在拉动并尝试从 docker hub 官方 jenkins 运行这个容器。

我在 /root 中的亚马逊 aws ec2 机器中以 root 用户身份执行此操作

这是我所拥有的:

root@ip-172-31-27-169:~# pwd
/root

root@ip-172-31-27-169:~# whoami

root

root@ip-172-31-27-169:~# ls -al 

total 32

drwx------  4 root root 4096 Jul 20 15:39 .

drwxr-xr-x 24 root root 4096 Jul 20 06:59 ..

-rw-------  1 root root 1934 Jul 20 09:00 .bash_history

-rw-r--r--  1 root root 3106 Oct 22  2015 .bashrc

drwxr-xr-x  2 root root 4096 Jul 20 15:25 jenkins_home

-rw-r--r--  1 root root  148 Aug 17  2015 .profile

drwx------  2 root root 4096 Jul 20 04:52 .ssh

-rw-------  1 root root 2994 Jul 20 15:36 .viminfo

root@ip-172-31-27-169:~# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES

cdde4f2e9d55        jenkins             "/bin/tini -- /usr..."   About a minute ago   Exited (1) About a minute ago                       gifted_swirles

64a6f038e1bc        jenkins             "/bin/tini -- /usr..."   2 minutes ago        Exited (1) About a minute ago                       compassionate_brown

55ae36a27756        jenkins             "/bin/tini -- /usr..."   6 minutes ago        Exited (1) 6 minutes ago                            xenodochial_fermat

c6c48ef6b917        jenkins             "/bin/tini -- /usr..."   6 minutes ago        Exited (1) 6 minutes ago                            kind_hoover


root@ip-172-31-27-169:~# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

jenkins             latest              f426a52bafa9        12 days ago         810 MB

root@ip-172-31-27-169:~# docker run -p 8080:8080 -p 50000:50000 -v /root/jenkins_home:/var/jenkins_home jenkins

touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied

Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

root@ip-172-31-27-169:~# 

我正在尝试将容器的 /var/jenkins_home 卷挂载到 /root/jenkins_home 路径中。这是为了保存 jenkins 数据,以防容器因某种原因死亡或停止。

我怎样才能使这个命令成功?

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

谢谢

【问题讨论】:

    标签: linux docker jenkins volume mount


    【解决方案1】:

    如果 ec2 虚拟机是 redhat linux,它可能启用了 selinux,您需要禁用它或为 /root/jenkins_home 文件夹提供正确的 selinux 属性。 如果 ec2 vm 是 ubuntu 机器,它可以启用 apparmor。同样的事情也适用于这个(禁用或授予文件夹适当的权限)。

    here 所述,问题似乎是权限问题。 您可以按照here 的说明将文件夹的权限更改为 uid 1000。 使用以下命令:

    chown -R 1000 /root/jenkins_home
    

    然后重新运行您的 docker 映像。

    【讨论】:

    • EC2 是 Ubuntu Linux 16.04 LTS
    猜你喜欢
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    相关资源
    最近更新 更多