我已在Windows上准备好我的代码,但我发现分享到boot2docker并不容易。
我还发现boot2docker无法持久化我的更改。例如,我在重新启动boot2docker后创建了一个文件夹/temp
。这个文件夹消失了,非常不方便。
在Windows上使用某些代码时,您的方法是什么,但是需要对它们进行停靠?
--- ---更新
我尝试更新VirtualBox中的设置并重新启动boot2docker,但它无法在我的计算机上运行。
docker@boot2docker:/$ ls -al /c total 4 drwxr-xr-x 3 root root 60 Jun 17 05:42 ./ drwxrwxr-x 17 root root 400 Jun 17 05:42 ../ dr-xr-xr-x 1 docker staff 4096 Jun 16 09:47 Users/
答案 0 :(得分:63)
Boot2Docker是一个在VirtualBox上运行的小型Linux VM。因此,在您使用Docker(在此VM中运行)中的文件(来自Windows)之前,必须首先与Boot2Docker VM本身共享您的代码。
为此,您将Windows文件夹挂载到VM关闭时(此处假定VM名称为default
):
C:/Program Files/Oracle/VirtualBox/VBoxManage sharedfolder \
add default -name win_share -hostpath c:/work
(或者您也可以打开VirtualBox UI并将文件夹安装到您的VM中,就像在屏幕截图中一样!)
现在ssh
进入Docker Quickstart终端的Boot2Docker VM:
docker-machine ssh default
然后执行mount:
sudo mkdir /VM_share
sudo mount -t vboxsf win_share /VM_share
之后,您可以访问Boot2Docker VM中的C:/work
:
cd /VM_share
既然您的代码存在于VM中,您可以将它与Docker一起使用,方法是将其作为卷安装到容器中:
docker-machine ssh default
docker run --volume /VM_share:/folder/in/container some/image
或者在构建Docker镜像时使用它:
...
ADD /my_windows_folder /folder
...
答案 1 :(得分:7)
请参阅此answer。
我使用Docker工具箱1.12.2和VirtualBox 5.1.6安装了Windows 10 Home Edition。
我能够在我的容器中成功安装C:\Users
下的文件夹,而无需执行任何额外步骤,例如docker-machine ssh default
。
示例:
docker run -it --rm -v /c/Users/antonyj/Documents/code:/mnt ubuntu /bin/bash
因此,将文件放在C:\Users
下可能是最简单的事情。
如果您不想将文件放在C:\Users
下,则必须按照accepted answer中的步骤操作。
答案 2 :(得分:1)
使用Docker Toolbox,共享目录只能 <xsl:template match="pi.item">
<fo:table-row>
<xsl:choose>
<xsl:when test="common_part_ref">
<xsl:apply-templates select="//expdur-entry/itemno" mode="bulk">
<xsl:with-param name="id">
<xsl:value-of select="common_part_ref/@idref"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise />
</xsl:choose>
</fo:table-row>
</xsl:template>
<xsl:template match="expdur-entry/itemno" mode="bulk">
<xsl:param name="id"/>
<xsl:if test="@id = $id">
<fo:table-cell>
<fo:block>
<xsl:value-of disable-output-escaping="no" select="../nsn/fsc"/>
<xsl:text disable-output-escaping="no">-</xsl:text>
<xsl:value-of disable-output-escaping="no" select="normalize-space(../nsn/niin)"/>
</fo:block>
</fo:table-cell>
</xsl:if>
</xsl:template>
:
目录无效。卷目录必须位于Users目录下
&#34; Docker Quickstart Terminal&#34;中的Step1&amp; Step2命令在Step1&amp;的实施中Step2可以是:
choices = ["Pizza", "Pasta", "Salad", "Nachos"]
choices_2 = ["Pizza", "pizza", "Pasta", "pasta", "Salad", "salad", "Nachos", "nachos"]
print ("Your choices are: ")
for index, item in enumerate(choices):
print ((index+1), item)
choice = input("Which one would you like? (food item)")
for choice in choices_2:
if choice!= choices_2: #trying to set parameters so people don't write troll answers
input("That's not on the menu, try again: ")
elif choice == "pizza" or "Pizza" or "pasta" or "Pasta": #trying to make Pizza and Pasta set at $4.99
print ("That will be $4.99")
break
else:
print ("That will be $1.99") #this part never comes up for some reason.
然后重启VM。试试这个:/c/User
参考文献:
答案 3 :(得分:1)
在系统托盘中,你应该让可爱的Docker鲸游泳。右键单击并选择“设置”。
单击 Apply 。这将打开Credentials对话框,您需要提供当前的Windows凭据。确保您正确地给它。我还怀疑你可能需要成为管理员。
要在容器中安装我们的主机目录(C:\ data),我们将在运行容器时使用using System;
namespace Convo-
{
class Program
{
static void Main(string[] args)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.BackgroundColor = ConsoleColor.DarkBlue;
Console.WriteLine("Friend- How is your day going?");
Console.WriteLine(" ");
Console.WriteLine("You- Good = 1" +
" / Bad = 2");
ConsoleKeyInfo keyinfo = Console.ReadKey();
if (keyinfo.KeyChar == '1')
{
Console.WriteLine(" ");
Console.WriteLine("Friend- That's very nice!");
}
else
{
Console.WriteLine(" ");
Console.WriteLine("Friend- Im sorry is there anything I can do?");
}
Console.WriteLine(" ");
Console.WriteLine("(Don't like your choice go back by clicking 3)");
bool running = true;
if (keyinfo.KeyChar == '3')
{
//here is where i need the go back function
}
}
}
}
(卷)标志。此处显示了一个示例运行:
我在本地Docker容器中安装了CentOS。
-v
答案 4 :(得分:1)
使用Linux主机(虚拟机名称“默认”)安装共享文件夹Windows guest虚拟机:
关闭“默认” VM:
cd "C:\Program Files\Oracle\VirtualBox"
VBoxManage controlvm default poweroff
添加共享文件夹命令行:
./VBoxManage sharedfolder add default -name win_share -hostpath "C:\docker\volumes"
启动VM(无头命令行界面):
/VBoxManage startvm headless default
连接到ssh:
docker-machine ssh default
创建VM sharedfolder目录:
sudo mkdir /sharedcontent
安装Windows文件夹以托管VM:
sudo mount -t vboxsf win_share /sharedcontent