如何在Docker容器中挂载主机目录


616

我正在尝试将主机目录挂载到Docker容器中,以便主机上完成的所有更新都将反映到Docker容器中。

我在哪里做错了。这是我所做的:

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.txt

1 directory, 5 files kishore$ pwd /Users/kishore/tdock

kishore$ 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 -d -v /Users/kishore/main_folder:/test_container k3_s3:latest c9f9a7e09c54ee1c2cc966f15c963b4af320b5203b8c46689033c1ab8872a0ea

kishore$ docker run -i -t k3_s3:latest /bin/bash

root@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 ..

root@0f17e2313a46:/test_container# exit exit

kishore$ docker -v
Docker version 0.9.1, build 867b2a9

  • 我不知道如何检查boot2docker版本

问题,面临的问题:

  1. 我该如何将main_folder链接到docker容器内的test_container文件夹?
  2. 我需要自动进行此操作。我如何在不真正使用run -d -v命令的情况下做到这一点?
  3. 如果boot2docker崩溃怎么办?Docker文件存储在何处(除了Dockerfile)?

2
仅供参考,此评论似乎已在docker中修复。我在Mac上使用boot2docker。我可以使用-v选项,并且本地目录会一直挂载到容器中。
马可(Marco)2014年

Answers:


506

您可以通过几种方法来执行此操作。最简单的方法是使用dockerfile ADD命令,如下所示:

ADD . /path/inside/docker/container

但是,在构建dockerfile之后,主机上对此目录所做的任何更改都不会显示在容器中。这是因为在构建容器时,泊坞窗将目录压缩为.tar,并将该上下文永久上载到容器中。

执行此操作的第二种方法是尝试的方法,即装入卷。由于尝试尽可能地可移植,您无法将主机目录映射到dockerfile中的docker容器目录,因为主机目录可以根据您所运行的机器而改变。要将主机目录映射到Docker容器目录,您需要-v在使用docker run时使用标志,如下所示:

docker run -v /host/directory:/container/directory -other -options image_name command_to_run

我试过这样的kishore $ docker -v / Users / kishore / main_folder:/ test_container Docker 0.9.1版,构建867b2a9 kishore $ docker run -v / Users / kishore / main_folder:/ test_container用法:docker run [OPTIONS] IMAGE [ COMMAND] [ARG ...]在新容器中运行命令-P,--publish-all = false:将所有公开的端口发布到主机接口-a,--attach = []:附加到stdin,stdout或stderr。-c,-cpu-shares = 0:CPU份额(相对权重)
Kishore Vaishnav 2014年

2
你们两个都可以加吗?和-v卷同时安装。如果未指定主机挂载,则使用默认的app_dir?
alexzg 2014年

@alexzg我认为我们不能只将第一个优先。另外,我不清楚您的第二点默认app_dir ...主机安装..
Kishore Vaishnav 2014年

35
这在Mac OS X上使用docker-machine和VirtualBox为我工作。我通过反复试验发现的一个警告是,主机目录必须是完整路径,而不是相对路径。
jbustamovej

24
ADD实际上不是在“挂载”文件,而是将文件复制到持久保存在其中的容器中。
kev

200

该问题的用户正在使用Docker version 0.9.1, build 867b2a9,我将为您提供docker版本> = 17.06的答案。

通过在type上装入卷,可以使容器目录内的本地目录保持同步bind。这将绑定源(您的系统)和目标(在Docker容器中)目录。几乎与在Linux上安装目录相同。

据多克尔文件,相应的命令来安装,现在是mount不是-v。这是其文档:

  • --mount:由多个键值对组成,以逗号分隔。每个键/值对采用<key>=<value>元组的形式。该--mount语法是更详细的比-v--volume,但按键的顺序并不显著,并且标志的价值更容易理解。

  • type安装件,其可以是bindvolume,或tmpfs(我们将使用bind

  • source的安装。对于绑定安装,这是Docker守护程序主机上文件或目录的路径。可以指定为sourcesrc

  • destination作为其值,其中的文件或目录将被安装在容器的路径。可以指定为destinationdsttarget

因此,要使用/test_container(目标)挂载当前目录(源),我们将使用:

    docker run -it --mount src="$(pwd)",target=/test_container,type=bind k3_s3

如果这些安装参数中有空格,则必须在其两边加上引号。当我知道他们没有的时候,我会`pwd`改用:

    docker run -it --mount src=`pwd`,target=/test_container,type=bind k3_s3

您还必须处理文件权限,请参阅本文


2
我赞成您的回答,因为我喜欢它的简洁性,而且没有错,但是您可能要根据我在stackoverflow.com/a/51829247/901899上的
Rainabba

1
我猜该文档自此答案以来已经更新,因为现在似乎建议使用卷而不是挂载。在进行任何操作之前,值得尝试一下。
Sipty

1
@Sipty可能指的是以下内容:“ 如果要开发新的Docker应用程序,请考虑使用命名卷。您不能使用Docker CLI命令直接管理绑定安装。
Aluthren

81

2个连续的挂载:我想这里很多帖子可能正在使用两个boot2docker,您看不到任何东西的原因是您是从boot2docker而不是从主机装载目录。

您基本上需要2个连续的安装:

第一个将目录从主机装载到系统的人

第二个将新目录从boot2docker挂载到您的容器,如下所示:

  • 1)在本地安装系统 boot2docker

    sudo mount -t vboxsf hostfolder /boot2dockerfolder
    
  • 2)boot2docker在Linux容器上挂载文件

    docker run -v /boot2dockerfolder:/root/containerfolder -i -t imagename
    

然后,当您ls进入时,containerfolder您将看到的内容hostfolder


1
最佳答案。我必须在mount命令中添加(在Windows下)hostfolder指的是文件夹共享名。在Windows终端(cmd)中与命令一起显示的一个。而且,您必须使用virtualBox GUI将其添加为共享文件夹(如果遵循我的逻辑,请使用相同的名称)。如果您忽略共享,它将可以使用,但是您将面临权限和刷新性能方面的问题。net share
Kir Kanos 2015年

mount命令如何知道/ boot2dockerfolder所在的主机?
alfonsodev

我收到错误消息:mount: unknown filesystem type 'vboxsf',使用ubuntu来宾和主机
nnyby 2015年

“ vboxsf”是VirtualBox共享文件夹“文件系统”驱动程序。必须通过安装VirtualBox扩展将其配置到VM中。boot2docker映像不得安装这些映像。VirtualBox具有“设备”功能,可以将VirtualBox Additions ISO映像作为虚拟卷“插入”。通常,您可以通过使用mount / dev / cdrom / mnt,进入/ mnt并运行bash VBoxLinuxAdditions来将其挂载。它可能需要安装gcc,内核或其他依赖项。
Andrew Wolfe

mount.vboxsf:挂载失败,并显示以下错误:无此类文件或目录挂载:在/ boot2dockerfolder上挂载mymapfoldername失败:无此类文件或目录
vee

70

您可以使用cli中的-v选项,该功能无法通过Dockerfile使用

docker run -t -i -v <host_dir>:<container_dir> ubuntu /bin/bash

其中host_dir是要挂载的主机目录。您无需担心容器的目录(如果不存在),docker将创建它。

如果您从主机(在root特权下)对host_dir进行任何更改,它将对容器可见,反之亦然。


6
这是一个很好的,干净的要点示例,用于说明主机安装选项。也许可以通过使用真实目录来进行改进:docker run -t -i -v /tmp:/tmp ubuntu /bin/bash将主机/tmp安装在container上/tmp。现在可以touch /tmp/hello-world从容器中看到文件,该文件出现在主机上。
Stephan Henningsen,

3
完美的作品。但是以这种方式安装会将目录所有者设置为root,这也希望容器以root运行。当容器以非根用户身份运行时,如何将目录以非根用户身份挂载?
阿伦(Arun)

33

您是否可以通过OS X boot2docker或类似方式在OS X上使用docker 。

我也有同样的经历-该命令是正确的,但是无论如何,容器中没有安装任何(明智的)命令。

事实证明,它已经在docker文档中进行了解释。当您键入docker run -v /var/logs/on/host:/var/logs/in/container ...那么/var/logs/on/host实际上是从映射的boot2dockerVM映像,而不是你的Mac。

您必须将共享文件夹通过您的VM通过管道传输到实际主机(在我的情况下为Mac)。


1
谢谢!这帮助我解决了一个遥远相关的问题。泊坞内运行的Postgres已经绑定到垂直框中IP,而不是本地主机,仿佛不是在OS X上运行它会
彼得Becich

2
指向Docker文档的URL不再有效
digitaldavenyc

哈哈,有史以来最好的笑话。
user2834172 '16

2
您的文档链接为404
神秘因子,2016年

3
我很好奇,看到一个通过VM将共享文件夹通过管道传输到实际主机的示例。
德里克(Derek)

28

[更新]截至2017年6月,适用于Mac的Docker解决了其中所有烦人的部分,您必须将VirtualBox弄乱。它使您基本上可以使用/private前缀映射本地主机上的所有内容。更多信息在这里[/更新]

当前所有答案都在谈论Boot2docker。由于现在不赞成使用docker-machine,因此适用于docker-machine:

首先,ssh进入docker-machine vm并创建我们将映射到的文件夹:

docker-machine ssh $MACHINE_NAME "sudo mkdir -p \"$VOL_DIR\""

现在将文件夹共享到VirtualBox:

WORKDIR=$(basename "$VOL_DIR")
vboxmanage sharedfolder add "$MACHINE_NAME" --name "$WORKDIR" --hostpath "$VOL_DIR" --transient

最后,再次ssh进入docker-machine并挂载我们刚刚共享的文件夹:

docker-machine ssh $MACHINE_NAME "sudo mount -t vboxsf -o uid=\"$U\",gid=\"$G\" \"$WORKDIR\" \"$VOL_DIR\""

注意:对于UID和GID,您基本上可以使用任何整数,只要它们尚未被使用即可。

从OS X El Capitan上的docker-machine 0.4.1和docker 1.8.3开始测试。


1
+1。经过几个小时的敲打我的脑袋,您的答案奏效了。这应该是docker-machine文档的一部分。
Abhijit Sarkar 2015年

为什么不使用-v标志?
igracia '16

1
@igracia该-v标志不能像您在OS X(或Windows)中所期望的那样工作。Docker在VM中运行,因此引用的文件夹-v指向VM中的文件夹,而不是根OS中的文件夹。此技术采取将VM文件夹映射回根OS的下一步。
帕特里克·冈德森

1
@PatrickGunderson在我的情况下(OS X),该文件夹位于主机中,而不是VM中,并且可以正常工作。Docker Tolls负责将其导出到VM,再从那里导出到容器。
igracia '16

1
我提到的规则的一个例外是,VM将自动挂载/Users以与docker共享。这意味着如果您的工作文件在其中,~/*那么您就很好了。如果您的开发环境设置用完了/development或有其他/Users问题,请解决docs.docker.com/engine/userguide/containers/dockervolumes
Patrick Gunderson

27

我只是在尝试让自己的SailsJS应用程序在Docker容器中运行,以保持物理机的清洁。

我正在使用以下命令将SailsJS / NodeJS应用程序挂载在/ app下:

cd my_source_code_folder
docker run -it -p 1337:1337 -v $ {pwd):/ app my_docker / image_with_nodejs_etc

5
如何在Dockerfile中做到这一点?
orad

23
docker run -v /host/directory:/container/directory -t IMAGE-NAME /bin/bash

docker run -v /root/shareData:/home/shareData -t kylemanna/openvpn /bin/bash

在我的系统中,我已经更正了nhjk的答案,当您添加-t标志时,它的工作原理完美无缺。


您是否可以从本地FS创建/更新文件并查看docker容器内的更改?
阿维·梅亨沃尔

14

如果主机是Windows 10,请使用反斜杠而不是正斜杠-

docker run -it -p 12001:80 -v c:\Users\C\Desktop\dockerStorage:/root/sketches

确保主机驱动器是共享的(在这种情况下为C)。在我的情况下,运行上述命令后,提示我询问共享权限。


13

在Mac OS上,要将Mac上的文件夹安装/Users/<name>/projects/在容器根目录下:

docker run -it -v /Users/<name>/projects/:/projects <container_name> bash

ls /projects


11

2015年7月更新-boot2docker现在支持直接挂载。您可以-v /var/logs/on/host:/var/logs/in/container直接在Mac提示符下使用,而无需双重安装


11

对于Windows 10用户,将挂载点放在C:/Users/目录中很重要。我尝试了几个小时才能使它正常工作。这篇文章有所帮助,但起初并不明显,因为Windows 10的解决方案是对已接受答案的评论。这是我的方法:

docker run -it -p 12001:80 -v //c/Users/C/Desktop/dockerStorage:/root/sketches \
<your-image-here> /bin/bash

然后对其进行测试,您可以echo TEST > hostTest.txt在图像内部进行操作。您应该可以在本地主机文件夹中看到此新文件C:/Users/C/Desktop/dockerStorage/


路径上的双斜线是它对我有用的原因。这很令人困惑,因为我-v $(pwd):/var/xx先使用了它,但确实起作用,但是导致目录为空。我正在通过babun运行cyg。
kenchilada

在Windows 7中使用/ c / data /时遇到了相同的问题,将主机目录移动到/ c / Users / <user> /下为我解决了该问题。谢谢。
user8675309 '19

1
我们可以链接到可以帮助您解决问题的帖子吗?
PBo

11

我一直遇到同样的问题。我的命令行如下所示:

docker run --rm -i --name $NAME -v `pwd`:/sources:z $NAME

问题出在“ pwd”上。所以我将其更改为$(pwd):

docker run --rm -i --name $NAME -v $(pwd):/sources:z $NAME

1
有什么z用?
hhh

2
z选项指示绑定安装内容在多个容器之间共享。
杰森

10

从Docker 18-CE开始,您可以用于docker run -v /src/path:/container/path对主机文件夹进行2向绑定。

但是,如果您使用的是Windows 10 / WSL,并且将Docker-CE for Windows用作主机,然后使用WSL中的docker-ce客户端工具,则这里会有一个重大问题。WSL知道整个/文件系统,而Windows主机只知道您的驱动器。在WSL内,您可以使用/ mnt / c / projectpath,但是如果尝试使用docker run -v ${PWD}:/projectpath,您将在主机中发现/ projectpath /为空,因为在主机上/ mnt没有任何意义。

如果您从/ c / projectpath开始工作,然后docker run -v ${PWD}:/projectpath在容器中找到,则/ projectpath将实时反映/ c / projectpath。除了看到客户机内部的空挂载以外,没有错误或任何其他方式可以检测到此问题。

您还必须确保在Docker for Windows设置中“共享驱动器”。


我在Win10 / WSL和Docker-CE / docker-ce中遇到此问题。空/ projectpath /。“从/ c / projectpath工作”是什么意思?我尝试将/ c /链接到/ mnt / c并从中运行,/c/projectpath但随后出现错误bind mount source path does not exist: /host_mnt/c/projectpath
史蒂文·斯奈德

该链接解决了我的问题:support.divio.com/local-development/docker/… (Windows上的Docker默认只允许从/ Users /挂载)
Steven T. Snyder

7

我发现,任何系统下指令铺设像目录/var/usr/etc无法在容器下安装。

该指令应该在用户的空间-v开关处,指示docker daemon将本地目录挂载到容器,例如:

docker run -t -d -v /{local}/{path}:/{container}/{path} --name {container_name} {imagename}

5

boot2docker以及VirtualBox Guest Additions
如何将/ Users装入boot2docker

https://medium.com/boot2docker-lightweight-linux-for-docker/boot2docker-together-with-virtualbox-guest-additions-da1e3ab2465c

tl; dr使用VirtualBox Guest Additions(请参阅链接)构建自己的自定义boot2docker.iso 或下载 http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso 并保存到〜/ .boot2docker / boot2docker.iso。


我尝试使用该iso,但仍然遇到相同的问题...使用该文章中概述的说明虽然可以帮助我进行分类-我基本上必须强制使用共享文件夹。
Jaco Pretorius

我使用了iso,它偶然发现我在调用“ VBoxManage sharedfolder add ...” cmd之前没有停止Virtual Box VM。终于得到了一切,尽管非常感谢。
Emile 2014年

注意:-v arg无法通过boot2docker运行的原因,显然与将其安装到boot2docker-vm而非实际主机有关。这就是为什么我认为Vboxmanage部分可以帮助其工作的原因。
Emile 2014年

5

如何将main_folder链接到docker容器中存在的test_container文件夹?

您的以下命令是正确的,除非在Mac上使用boot2docker(取决于将来的更新),在这种情况下,您可能会发现该文件夹为空。有关更正此问题的教程,请参见遮罩答案。

docker run -d -v /Users/kishore/main_folder:/test_container k3_s3:latest

我需要自动运行该程序,如何在不真正使用run -d -v命令的情况下执行此操作。

您真的无法摆脱使用这些命令的麻烦,它们是docker工作方式所固有的。您最好将它们放入shell脚本中,以免您反复将它们写出来。

如果boot2docker崩溃怎么办?Docker文件存储在哪里?

如果您设法使用-v arg并引用您的主机,则文件将在您的主机上安全。

如果您使用了'docker build -t myimage'。使用Dockerfile,您的文件将被烘焙到映像中。

我相信您的docker映像存储在boot2docker-vm中。当我从VirtualBox删除虚拟机时图像消失时,我发现了这一点。(请注意,我不知道Virtualbox的工作方式,因此图像可能仍隐藏在其他地方,只是对docker不可见)。


5

有同样的问题。在docker文档中找到了这个:

注意:主机目录本质上是依赖主机的。因此,您无法从Dockerfile挂载主机目录,VOLUME指令不支持传递主机目录,因为构建的映像应该是可移植的。主机目录并非在所有潜在主机上都可用。

因此,只能使用命令中的-v参数来安装读/写主机目录docker run,因为其他答案正确指出。


主机目录到底是什么?
Nicolas S.Xu

@ NicolasS.Xu实际docker主机上的任何路径。
J. Scott Elblein '19

5

这是Windows路径的示例:

docker run -P -it --name organizr --mount src="/c/Users/MyUserName/AppData/Roaming/DockerConfigs/Organizr",dst=/config,type=bind organizrtools/organizr-v2:latest

附带说明一下,在所有这些工作中,我不得不费力地弄清楚,并一遍又一遍地重新键入路径,我决定制作一个小AutoHotkey脚本,将Windows路径转换为“ Docker Windows”。 ”格式的路径。这样,我要做的就是将要用作安装点的任何Windows路径复制到剪贴板,按键盘上的“ Apps Key”,并将其格式化为Docker欣赏的路径格式。

例如:

将此复制到剪贴板:

C:\Users\My PC\AppData\Roaming\DockerConfigs\Organizr

Apps Key在光标位于命令行中所需位置的同时按,它将粘贴到此处:

"/c/Users/My PC/AppData/Roaming/DockerConfigs/Organizr"

为我节省了很多时间。这是给其他可能会觉得有用的人的。

; --------------------------------------------------------------------------------------------------------------
;
; Docker Utility: Convert a Windows Formatted Path to a Docker Formatter Path
;                   Useful for (example) when mounting Windows volumes via the command-line.
;
; By:       J. Scott Elblein
; Version:  1.0
; Date:     2/5/2019
;
; Usage:    Cut or Copy the Windows formatted path to the clipboard, press the AppsKey on your keyboard
;           (usually right next to the Windows Key), it'll format it into a 'docker path' and enter it
;           into the active window. Easy example usage would be to copy your intended volume path via
;           Explorer, place the cursor after the "-v" in your Docker command, press the Apps Key and
;           then it'll place the formatted path onto the line for you.
;
; TODO::    I may or may not add anything to this depending on needs. Some ideas are:
;           
;           - Add a tray menu with the ability to do some things, like just replace the unformatted path
;               on the clipboard with the formatted one rather than enter it automatically.
;           - Add 'smarter' handling so the it first confirms that the clipboard text is even a path in
;               the first place. (would need to be able to handle Win + Mac + Linux)
;           - Add command-line handling so the script doesn't need to always be in the tray, you could
;               just pass the Windows path to the script, have it format it, then paste and close.
;               Also, could have it just check for a path on the clipboard upon script startup, if found
;               do it's job, then exit the script.
;           - Add an 'all-in-one' action, to copy the selected Windows path, and then output the result.
;           - Whatever else comes to mind.
;
; --------------------------------------------------------------------------------------------------------------

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

AppsKey::

    ; Create a new var, store the current clipboard contents (should be a Windows path)
    NewStr := Clipboard

    ; Rip out the first 2 chars (should be a drive letter and colon) & convert the letter to lowercase
    ; NOTE: I could probably replace the following 3 lines with a regexreplace, but atm I'm lazy and in a rush.
    tmpVar := SubStr(NewStr, 1, 2)
    StringLower, tmpVar, tmpVar

    ; Replace the uppercase drive letter and colon with the lowercase drive letter and colon
    NewStr := StrReplace(NewStr, SubStr(NewStr, 1, 2), tmpVar)

    ; Replace backslashes with forward slashes
    NewStr := StrReplace(NewStr,  "\", "/")

    ; Replace all colons with nothing
    NewStr := StrReplace(NewStr, ":", "")

    ; Remove the last char if it's a trailing forward slash
    NewStr :=  RegExReplace(NewStr, "/$")

    ; Append a leading forward slash if not already there
    if RegExMatch(NewStr, "^/") == 0
        NewStr :=  "/" . NewStr

    ; If there are any spaces in the path ... wrap in double quotes
    if RegExMatch(NewStr, " ") > 0
        NewStr :=  """" . NewStr . """"

    ; Send the result to the active window
    SendInput % NewStr 

4

为了在Windows 10中正常工作,我必须从系统托盘中打开Docker Settings窗口,然后转到Shared Drives部分。

然后,我选中旁边的框C。Docker要求我的桌面凭据来获得授权以写入我的Users文件夹。

然后,我按照上面的示例以及该设置页面上的示例运行了Docker容器,并将其附加到/data容器中。

docker run -v c:/Users/<user.name>/Desktop/dockerStorage:/data -other -options

3

请注意,在Windows中,您必须提供绝对路径。

下面为我​​工作。

docker run -t -i -v D:/projects/:/home/chankeypathak/work -p 8888:8888 jupyter/tensorflow-notebook /bin/bash

3

我有同样的问题,我试图在
Docker 上安装C:\ Users \文件夹,这就是我做到的方式Docker Toolbox命令行

 $ docker run -it --name <containername> -v /c/Users:/myVolData <imagename>

2

我有从容器挂载主机目录的相同要求,并且使用了卷挂载命令。但是在测试过程中,它注意到它也在容器内创建文件,但经过一番挖掘后发现它们只是符号链接,而实际文件系统是从主机使用的。


2

您也可以使用Portainer Web应用程序执行此操作,以获得不同的视觉体验。

首先拉出Portainer图片:

docker pull portainer/portainer

然后为Portainer创建一个卷:

docker volume create portainer_data

还创建一个Portainer容器:

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

您将可以使用浏览器通过以下URL访问Web应用程序:“ http:// localhost:9000 ”。首次登录时,系统将提示您设置Portainer管理员凭据。

在Web应用程序中,遵循以下菜单和按钮:(容器>添加容器> 填充设置 >部署容器)

我在用Portainer创建“装载”卷时遇到了麻烦,我意识到在创建容器的卷时必须单击“绑定”。下图说明了将绑定的安装卷绑定到主机后可用于我的容器创建的卷绑定设置。

音量绑定设置

PS:我正在使用Docker 19.035和Portainer 1.23.1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.