我正在考虑使用Docker在持续集成(CI)服务器上构建我的依赖项,这样我就不必在代理本身上安装所有运行时和库.为了实现这一点,我需要将容器内部构建的构建工件复制回主机.
那可能吗?
我有一个Docker容器,我只是通过在Ubuntu上安装Docker并创建:
sudo docker run -i -t ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)
我立即开始安装Java和其他一些工具,花一些时间用它来停止容器
exit
Run Code Online (Sandbox Code Playgroud)
然后我想添加一个卷,并意识到这并不像我想象的那么简单.如果我使用sudo docker -v /somedir run ...那么我最终得到一个新的容器,所以我已经安装了Java并且做了我之前已经完成的工作,只是为了到达一个装有卷的容器.
有关从主机安装文件夹的所有文档似乎都暗示在创建容器时可以安装卷.因此,我必须避免从头开始重新配置新容器的唯一选择是将现有容器提交到存储库,并在安装卷时将其用作新容器的基础.
这确实是向现有容器添加卷的唯一方法吗?
我正在尝试为我的LAMP项目设置Dockerfile,但是在启动MySQL时我遇到了一些问题.我的Dockerfile上有以下行:
VOLUME ["/etc/mysql", "/var/lib/mysql"]
ADD dump.sql /tmp/dump.sql
RUN /usr/bin/mysqld_safe & sleep 5s
RUN mysql -u root -e "CREATE DATABASE mydb"
RUN mysql -u root mydb < /tmp/dump.sql
Run Code Online (Sandbox Code Playgroud)
但我一直收到这个错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
Run Code Online (Sandbox Code Playgroud)
有关如何在Dockerfile构建期间设置数据库创建和转储导入的任何想法?
当我尝试将文件从一个文件夹复制到现有容器文件夹时,我错过了什么:
我想将build(host)文件夹中的文件复制到我的容器中的html:
docker cp ./src/build b081dbbb679b:/usr/share/nginx/html
Run Code Online (Sandbox Code Playgroud)
要清楚; 我需要从主机复制到容器.
但它复制整个构建文件夹并将其复制到..html/build
我只需要将build文件夹中的文件(和子文件夹)复制到..html中.
我错过了什么或者我是否必须逐个复制每个文件?
Docker文档说可以将单个文件挂载到Docker容器中:
-v标志还可用于从主机安装单个文件 - 而不仅仅是目录.
$ docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash这将使您进入新容器中的bash shell,您将获得主机的bash历史记录,当您退出容器时,主机将具有在容器中键入的命令的历史记录.
当我尝试这个时,文件安装为目录:
tom@u ~/project $ docker run --rm -it -v file.json:/file.json test
total 80K
drwxr-xr-x 9 root root 4.0K Dec 7 12:58 .
drwxr-xr-x 63 root root 4.0K Dec 7 12:58 ..
drwxr-xr-x 2 root root 4.0K Dec 4 16:10 file.json
Run Code Online (Sandbox Code Playgroud)
我的Dockerfile看起来像这样:
FROM ubuntu:14.04
MAINTAINER Tom
CMD ["ls", "-lah", "/test"]
Run Code Online (Sandbox Code Playgroud)
Docker版本是1.9.1,构建a34a1d5.
这是一个文档问题,在我身边的误解,还是还有其他事情发生?
类似于将文件从主机复制到Docker容器,但docker cp似乎不适用于多个文件
$ docker cp data/a.txt sandbox_web_1:/usr/src/app/data/
Run Code Online (Sandbox Code Playgroud)
工作正常,但是
$ docker cp data/*txt sandbox_web_1:/usr/src/app/data/
docker: "cp" requires 2 arguments.
See 'docker cp --help'.
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Copy files/folders between a container and the local filesystem
Use '-' as the source to read a tar archive from stdin
and extract it to a directory destination in a container.
Use '-' as the destination to stream a tar archive of a …Run Code Online (Sandbox Code Playgroud) 我必须将数据文件从用户本地文件C:/ users/saad/bdd导入到docker容器(cassandra),我没有找到如何继续使用docker命令.我在Windows 7上工作.
非常感谢您的帮助
我已经创建了一个项目的 docker 映像(非常大的项目,需要时间来编译),但我忘记在其中添加一个文件。
我与构建无关,它只是一个测试文件。
是否可以将此文件添加到我的图像中而不重建所有内容?
谢谢
我在远程计算机上有一个正在运行的容器。我通过 ssh 连接到机器。现在我想从容器中下载某个文件。有人可以给我一些如何实现这一目标的提示吗?谢谢。
我有一个运行良好的 docker 容器。它会在目录中生成一些文件/Project/userfiles.txt。我需要这些文件用于某些测试目的。但是当这个容器停止时,一切都被删除了。所以我需要将此文件从容器复制到主机。
我在生成文件的容器中运行了一个 python 应用程序。我想要一些命令或任何方式,userfiles.txt当容器停止时,我可以在最后将其发送到主机。
为此,我可以使用docker cp命令并尝试过,但由于docker not found未安装 docker,它给了我一个错误。
如何从容器到主机共享文件?
docker ×10
containers ×2
copy ×2
dockerfile ×1
file ×1
file-copying ×1
linux ×1
local ×1
mysql ×1
ssh ×1