如何增加Docker-machine内存Mac

时间:2015-09-29 01:07:40

标签: macos docker virtualbox docker-machine memsql

我是Docker的新手,并试图通过本教程从Docker镜像设置MemSQL - http://docs.memsql.com/4.0/setup/docker/。我在Mac上,教程使用的boot2docker似乎已被弃用。

VM需要4GB内存才能运行。本教程指定了如何使用boot2docker执行此操作,但我找不到使用docker-machine / docker工具箱执行此操作的方法。

这是我正在使用的命令以及我正在尝试通过教程而不改变boot2docker配置的错误。

docker run --rm --net=host memsql/quickstart check-system
Error: MemSQL requires at least 4 GB of memory to run.

7 个答案:

答案 0 :(得分:157)

您可以通过命令行执行此操作。例如,要从默认的1cpu / 2048MB RAM运行更改机器:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start

答案 1 :(得分:105)

创建docker机器时,可以指定内存大小:

docker-machine create -d virtualbox --virtualbox-memory 4096 default

如果有帮助,请告诉我。

答案 2 :(得分:73)

对于Docker版本1.12.1(版本号:12133)及更高版本的macOS,可以选择从UI更改CPU和RAM并重启docker。您可以从工具栏中找到首选项。为了清晰起见,附上图像。

步骤:偏好设置 - > 高级 - >调整资源 - > 申请&重新启动

https://www.dropbox.com/s/znltd1v4r00nfpu/Screenshot%202017-03-24%2012.12.58.png?dl=0

docker advanced tab (memory)

答案 3 :(得分:40)

Docker Machine维护者在这里。我不认为手动调整config.json会起作用。

您的两个选项是创建设置为--virtualbox-memory的计算机,或者调整VirtualBox GUI中的VM内存(我认为该虚拟机的“设置>系统”)。确保机器已关闭,并且应该有一个小滑块可以工作。

编辑:另一个答案显示您可以使用VBoxManage从命令行执行就地操作。

答案 4 :(得分:11)

我无法得到其他工作的答案。唯一对我有用的是删除默认机器并用更多内存重新创建它。

docker-machine rm default
docker-machine create -d virtualbox --virtualbox-memory=4096 --virtualbox-cpu-count=2 --virtualbox-disk-size=50000 default

此修复程序位于此处:Angular $scope.$apply vs $timeout as a safe $apply

答案 5 :(得分:11)

其他答案显示了如何使用VBoxManage更改内存:

<Window x:Class="Notifications.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Notifications"
        mc:Ignorable="d"
        Title="Fun with Notifications!" Height="225" Width="325" WindowStartupLocation="CenterOwner">
    <Grid IsSharedSizeScope="True"  Margin="5,0,5,5">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="CarLabels"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Label Grid.Column="0" Content="Vehicle"/>
            <ComboBox Name="cboCars" Grid.Column="1" DisplayMemberPath="PetName" />
        </Grid>
        <Grid Grid.Row="1" DataContext="{Binding ElementName=cboCars, Path=SelectedItem}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="CarLabels"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="30"/> <!--If set to auto, it will stack over the next row-->
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Label Grid.Column="0" Grid.Row="0" Content="Id"/>
            <TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Path=CarId}" />

            <Label Grid.Column="0" Grid.Row="1" Content="Make" Grid.RowSpan="2"/>
            <TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Path=Make}" Grid.RowSpan="2" />

            <Label Grid.Column="0" Grid.Row="2" Content="Color"/>
            <TextBox Grid.Column="1" Grid.Row="2" Text="{Binding Path=Color, UpdateSourceTrigger=PropertyChanged}"/>

            <Label Grid.Column="0" Grid.Row="3" Content="Pet Name"/>
            <TextBox Grid.Column="1" Grid.Row="3" Text="{Binding Path=PetName}"/>

            <StackPanel Grid.Column="1" Grid.Row="4" HorizontalAlignment="Right" Orientation="Horizontal" Margin="0,5,0,5">
                <Button x:Name="btnAddCar" Content="Add Car" Margin="5,0,5,0" Padding="4, 2" Click="btnAddCar_Click"/>
                <Button x:Name="btnChangeColor" Content="Change Color" Margin="5,0,5,0" Padding="4, 2" Click="btnChangeColor_Click"/>
                <Button x:Name="btnRemoveCar" Content="Remove Car" Margin="5,0,5,0" Padding="4,2" Click="btnRemoveCar_Click"/>
            </StackPanel>
            <Label Grid.Column="0" Grid.Row="5" Content="Is Changed"/>
            <CheckBox Grid.Column="1" Grid.Row="5" VerticalAlignment="Center" Margin="10,5,0,5" IsEnabled="False" IsChecked="{Binding Path=IsChanged}" />
        </Grid>
    </Grid>
</Window>

从命令行确认更改:

docker-machine stop default
VBoxManage modifyvm default --memory 4096
docker-machine start default

OR

VBoxManage showvminfo default | grep Memory

答案 6 :(得分:3)

fox xhyve(macos下的另一个虚拟化)你可以修改〜/ .docker / machine / default / config.json 属性驱动程序/内存(默认为1024) 然后重启docker机器以应用更改