dockerdesktop设置使用空间macbook

dockerdesktop设置使用空间macbook,第1张

你可以在Docker Desktop的Preferences设置页面中,点击“Advanced”,在“Disk image size”中设置Docker Desktop使用的空间大小。

目前让docker 运行的系统拥有gui的大概有两个,一个是X11server 、一个是novnc,搭建成本来说vnc配置还是比低的。但是novnc是vnc的web客户端,虽然方便,但是个人感觉web性能可能会低一些,所以本教程去掉web这部分,直接用vnc客户端链接。开始吧。

1.这里我选用官方的centos7镜像(注意镜像是不含desktop的)

2.启动镜像创建并创建容器(关于各启动参数的意思 --name 是给容器起名字,方便调用 -p 是映射内外端口,这里映射了5901端口,也就是等下要运行的vncserver所需要的端口)

1.进入容器(由于我们给容器起了名字,所以我们可以直接定位进入容器,不需要再查看容器id)

2.安装desktop

2.1先看一下有什么desktop可以装

这里我选择安装GNOME Desktop

2.2配置默认启动图形界面

3.安装 vnc server

1.复制配置模板文件为vncserver@:1.service

2.修改配置文件

nano这个软件可能需要安装一下

开始编辑配置:

会看到如下配置内容:

[Unit]

Description=Remote desktop service (VNC)

After=syslog.target network.target

[Service]

Type=forking

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'

ExecStart=/usr/sbin/runuser -l <USER>-c "/usr/bin/vncserver %i"

PIDFile=/home/<USER>/.vnc/%H%i.pid

ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'

[Install]

WantedBy=multi-user.target

我们只要把<USER >替换成我们的用户名就可以了,由于docker是以root登入的,我们把<USER >改成root

改好如下:

[Unit]

Description=Remote desktop service (VNC)

After=syslog.target network.target

[Service]

Type=forking

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'

ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"

PIDFile=/home/root/.vnc/%H%i.pid

ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i >/dev/null 2>&1 || :'

[Install]

WantedBy=multi-user.target

3.设置vnc链接密码

如果有view-only选项的话选n

4.重启容器并且更新systemctl

如果 systemctl daemon-reload 和 systemctl start vncserver@:1.service 发生错误,可以尝试重启容器,并把

/lib/systemd/system/vncserver@:1.service 配置里的Type=forking改为Type=simple

5.启动vncserver@:1.service服务,并设置开机自启

6.查看进程是否启动了

如果看到

tcp0 0 0.0.0.0:59010.0.0.0:* LISTEN 233/Xvnc

tcp0 0 172.17.0.2:5901 172.17.0.1:55824ESTABLISHED 233/Xvnc

tcp6 0 0 :::5901 :::*LISTEN 233/Xvnc

就说明vnc服务起来了

7.配置防火墙

CentOS7默认的防火墙不是iptables,而是firewalle,

所以 根据个人喜好选择以下两种方案

方案一(firewalle)

1.添加firewalle 端口规则

方案二(iptables)

1.先检查是否安装了iptables

2.禁用/停止自带的firewalld服务

3.启动iptables服务并设置自启动

4.添加vnc服务端口iptables规则

内容大概如下:

please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

5.重启iptables服务,使新添加的规则生效

6.完结:

现在你可以使用vncwiewer等工具来链接你的docker了

后续:建议保存你的容器为自定义镜像以供使用

(1)以管理员身份运行cmd,先运行cd C:\Program Files\Docker\Docker(docker

安装目录),再运行DockerCli.exe -SwitchDaemon(个人尝试没啥用)

(2)运行docker ps(个人尝试也没啥用)

(3)重启docker服务,将docker desktop恢复出厂设置(个人尝试还是没啥用)

(4)cmd运行 dism.exe /online /enable-feature

/featurename:Microsoft-Windows-Subsystem-Linux /all

/norestart,然后运行dism.exe /online /enable-feature

/featurename:VirtualMachinePlatform /all

/norestart,再将电脑重启(不知道哪看的,但个人尝试好像没啥用)

(5)cmd运行netsh winsock reset(终于解决了,但之前排雷太多导致自己的镜像全没了

o(╥﹏╥)o)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11527760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存