kishore$ cat Dockerfile
FROM ubuntu:trusty
RUN apt-get update
RUN apt-get -y install git curl vim
CMD ["/bin/bash"]
WORKDIR /test_container
VOLUME ["/test_container"]
kishore$ tree
.
├── Dockerfile
└── main_folder
├── tfile1.txt
├── tfile2.txt
├── tfile3.txt
└── tfile4.txtkishore$ docker build --tag=k3_s3:latest .Uploading context 7.168 kB
Uploading context
Step 0 : FROM ubuntu:trusty
---> 99ec81b80c55
Step 1 : RUN apt-get update
---> Using cache
---> 1c7282005040
Step 2 : RUN apt-get -y install git curl vim
---> Using cache
---> aed48634e300
Step 3 : CMD ["/bin/bash"]
---> Running in d081b576878d
---> 65db8df48595
Step 4 : WORKDIR /test_container
---> Running in 5b8d2ccd719d
---> 250369b30e1f
Step 5 : VOLUME ["/test_container"]
---> Running in 72ca332d9809
---> 163deb2b1bc5
Successfully built 163deb2b1bc5
Removing intermediate container b8bfcb071441
Removing intermediate container d081b576878d
Removing intermediate container 5b8d2ccd719d
Removing intermediate container 72ca332d9809
kishore$ docker run -i -t k3_s3:latest /bin/bashroot@0f17e2313a46:/test_container# ls -al
total 8
drwx------ 2 root root 4096 Apr 29 05:15 .
drwxr-xr-x 66 root root 4096 Apr 29 05:15 ..
kishore$ docker -v
Docker version 0.9.1, build 867b2a9
null
面临的问题和问题:
- 如何将main_folder链接到docker容器中的test_container文件夹?
- 我需要自动生成这个。在不真正使用
run-d-v
命令的情况下,如何做到这一点?
- 如果boot2docker崩溃会发生什么?Docker文件存储在哪里(Dockerfile除外)?
有几种方法可以做到这一点。最简单的方法是使用dockerfileadd
命令,如下所示:
ADD . /path/inside/docker/container
但是,在构建dockerfile之后在主机上对此目录所做的任何更改都不会在容器中显示。这是因为在构建容器时,docker会将目录压缩到.tar
中,并将该上下文永久上载到容器中。
第二种方法是您尝试的方法,即装入卷。由于要尽可能地具有可移植性,您无法将主机目录映射到dockerfile中的docker容器目录,因为主机目录可能会根据您运行的计算机而更改。要将主机目录映射到docker容器目录,在使用docker Run
时需要使用-v
标志,例如:
# Run a container using the `alpine` image, mount the `/tmp`
# directory from your host into the `/container/directory`
# directory in your container, and run the `ls` command to
# show the contents of that directory.
docker run \
-v /tmp:/container/directory \
alpine \
ls /container/directory
这是我当前的DockerFile: 我的项目是这样的:
原题:如何使用DockerFile中的卷指令? 我要解决的实际问题是--如何在构建期间将主机卷装入Dockerfile中的docker容器中,即在期间具有功能。 对我来说,其背后的原因是在Docker中构建东西时,我不希望那些()缓存锁定在单个Docker中,而是共享/重用它们。这就是我问这个问题的主要原因。 最新更新: 在docker V18.09之前,正确答案应该是以以下开头的答案: 有一种方
问题内容: 在Docker容器中挂载主机目录非常容易。 但是我需要另一种方式。 我使用Docker容器作为开发环境来开发WordPress插件。该Docker容器包含运行WordPress所需的一切(MySQL,Apache,PHP和WordPress)。我从Docker容器中的主机挂载了我的插件src文件夹,以便可以在开发期间测试我的插件。 对于调试,如果我在主机上运行的IDE具有对Docker
假设我有一个应用程序具有这个简单的DockerFile: 然后我运行了一个容器: 所以它工作正常,并将一些日志存储在docker容器的中。 我也看到docker-mount目录从容器到主机,但它并没有解决我的问题我需要一种方法备份我的文件从Docker到主机。
问题内容: 我想将目录从docker容器挂载到本地文件系统。该目录是网站根目录,我需要能够使用任何编辑器在本地计算机上对其进行编辑。 我知道我可以运行,但是这样做只能在容器内创建一个空目录。 如何在Linux主机上的Docker容器内挂载目录? 问题答案: 如果您的目标是提供现成的LAMP,则应在Dockerfile中使用VOLUMES声明。 问题是docker不会挂载文件,因为它们已经在创建卷的
我用这个参数挂载了容器: -v /home/test/:/home/test 在主机的/home/test内部有一个指向/mnt/文件夹的符号链接。 但是,尽管可以看到链接指向何处,但在容器内部似乎断开了: 这甚至可以在docker中实现吗?我不确定是否有办法做到这一点。 我知道我可以直接挂载符号链接指向的位置,但我只是想知道这是否可能。