Tag: 文件

如何使用Dockerfile中的私钥访问GIT仓库

我正在尝试在我的Docker容器中添加一个私钥,该私钥可以访问我的私人git存储库。 testing_git文件位于包含Dockerfile的文件夹中。 我试图做一个容器,可以拉动git代码。 这是我的Dockerfile: FROM ubuntu:14.04.1 WORKDIR ~/.ssh RUN apt-get -y install ssh WORKDIR /var/www/html Run apt-get -y install git RUN mkdir ~/.ssh ADD id_rsa /home/id_rsa RUN cat /home/id_rsa && mv /home/id_rsa ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa && eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa && ssh-add -l && ssh-add -L && echo "Host github.com\n\tIdentityFile ~/.ssh/id_rsa" […]

如何在Dockerfile中处理特定的主机名如-h选项

我使用CentOS 7作为docker守护进程主机和centos:6个Docker镜像。 我想安装一些需要可parsing的主机名作为非回送地址的软件。 如果我使用-h选项运行docker映像 docker run -i -t -h myhost centos:6 /bin/bash 然后我可以安装软件,因为/ etc / hosts在容器里自动configuration好了 [root@myhost /]# cat /etc/hosts 172.17.0.7 myhost 127.0.0.1 localhost [root@myhost /]# ping myhost PING myhost (172.17.0.7) 56(84) bytes of data. 64 bytes from myhost (172.17.0.7): icmp_seq=1 ttl=64 time=0.033 ms 但是我不能用同样的方法,如果我从Dockerfile创build一个图像。 我testing使用下面的Dockerfile创build一个图像 FROM centos:6 ENV HOSTNAME myhost RUN ping myhost 在dockerbuild立过程中,分配的主机名不能被parsing为如下的dynamicIP地址: […]

docker容器内的docker

我想在运行的docker容器中安装docker。 docker run -it centos:centos7 我的基本容器使用centos,我可以使用docker execlogin到运行容器。 但是当我尝试使用yum install -y docker它会安装。 但不知何故,我不能用docker -d &来启动docker服务,它给我错误: INFO[0000] Option DefaultNetwork: bridge WARN[0000] Running modprobe bridge nf_nat br_netfilter failed with message: , error: exit status 1 FATA[0000] Error starting daemon: Error initializing network controller: Error initializing bridge driver: Setup IP forwarding failed: open /proc/sys/net/ipv4/ip_forward: read-only file system 有没有一种方法,我可以在docker容器内安装docker或build立图像已经有运行docker? 我已经看过这些例子,但是没有一个适合我。 […]

扩展docker官方postgres图像

我试图扩展官方dockerpostgres图像,以便安装一个自定义的Python模块,所以我可以使用它从一个plpython3存储过程。 这是我的dockerfile FROM postgres:9.5 RUN apt-get update && apt-get install -y postgresql-plpython3-9.5 python3 ADD ./repsug/ /opt/smtnel/repsug/ WORKDIR /opt/smtnel/repsug/ RUN ["python3", "setup.py", "install"] WORKDIR / 我的问题是:我需要添加ENTRYPOINT和CMD命令到我的Dockerfile? 还是他们从基础图像“inheritance”? 官方readme.md中的例子显示了一个Dockerfile,它只改变了语言环境,没有ENTRYPOINT或者CMD。 我也读了自述,我可以通过执行自定义sh和/或sql脚本来扩展图像。 我应该使用此function,而不是创build我的自定义图像? 在这种情况下的问题是我如何确保脚本只在“安装时”运行一次而不是每次都运行? 我的意思是,如果数据库已经被创build和填充,我不想覆盖它。 谢谢,Awer

Docker:将`/ uploads`目录绑定到Amazon S3 Storage

我想从虚拟机迁移我的PHP网站到docker集装箱。 我的网站将所有上传的文件保存到uploads目录。 现在我想将所有文件传输到S3 Storage,并将进一步的上传保存到Amazon S3。 但我不想重写phpfile upload类。 是否有可能在Docker中创build符号链接文件夹或虚拟文件夹,以便将上uploads/**path上的所有写入和读取操作“redirect到”S3 Storage。 Docker支持S3存储驱动程序,但我是新来的docker,不知道如何将文件夹映射到dockerfile中的S3存储。 没有其他的例子,我发现。 感谢您的帮助。 更新:请参阅Taruns的答案 。 如果您也知道,在托pipe环境上的AWS Storage Gateway是唯一的一个很好的解决scheme,请注意或分享您的想法。

我如何作为非root的docker复制?

在构buildDocker镜像时,如何将文件COPY到镜像中,以便生成的文件由除root以外的用户拥有?

我如何将几个图像合并为一个?

我有几个图像(第三方),例如设置一个MySQL,build立一个通用的PHP应用程序环境,build立第三方工具。 我想制作一个Dockerfile / Docker Image,将这两个图像结合起来,然后运行一些命令 imageA — \ imageV — —> sharedImageA..X / imageX —

Dockerfile中的WORKDIR $ HOME似乎不起作用

我有一个Dockerfile,其中包含两个WORKDIR语句(在其他的),如下所示: RUN pwd # reports /root WORKDIR /tmp RUN wget … RUN tar zxvf … RUN cd … && ; ./configure && make && make install RUN sed … RUN sed … RUN rm … RUN rm -fr … WORKDIR $HOME RUN pwd # reports /tmp (instead of /root) 我希望pwd是/root (即/root $HOME ),但是它仍然是/tmp 。 我在这里犯了一个明显的错误吗? […]

运行命令不在Dockerfile中调用

这是我的Dockerfile: # Pull base image (Ubuntu) FROM dockerfile/python # Install socat RUN \ cd /opt && \ wget http://www.dest-unreach.org/socat/download/socat-1.7.2.4.tar.gz && \ tar xvzf socat-1.7.2.4.tar.gz && \ rm -f socat-1.7.2.4.tar.gz && \ cd socat-1.7.2.4 && \ ./configure && \ make && \ make install RUN \ start-stop-daemon –quiet –oknodo –start –pidfile /run/my.pid –background –make-pidfile \ –exec […]

超出Docker磁盘空间

我有这个Docker命令: docker run -d mongo 这将构build并运行在docker容器中运行的mongodb服务器 但是,我收到一个错误: no space left on device 我在MacOS上,并使用更新版本的Docker使用hyper-v而不是VirtualBox(我认为这是正确的)。 这是从mongo容器确切的错误信息: $ docker logs efee16702c5756659d563b98d4ae0f58ecf1f1bba8a54f63443c0ae4b520ab4e about to fork child process, waiting until server is ready for connections. forked process: 21 2017-05-04T20:23:51.412+0000 I CONTROL [main] ***** SERVER RESTARTED ***** 2017-05-04T20:23:51.430+0000 I CONTROL [main] ERROR: Cannot write pid file to /tmp/tmp.Lo035QkbfL: No space left […]