GVKun编程网logo

什么?VMware Fusion 也能 docker run 了?(vmware-fusion)

14

在本文中,我们将给您介绍关于什么?VMwareFusion也能dockerrun了?的详细内容,并且为您解答vmware-fusion的相关问题,此外,我们还将为您提供关于docker与vmware的

在本文中,我们将给您介绍关于什么?VMware Fusion 也能 docker run 了?的详细内容,并且为您解答vmware-fusion的相关问题,此外,我们还将为您提供关于docker与vmware的区别是什么、FATA [0000]获取http:///var/run/docker.sock/v1.17/version:拨打unix/var/run/docker.sock、Fusion 或 Vmware 安装 openEuler 20.03 最小镜像、linux – 是否有可能将CentOS从(Mac)VMware Fusion迁移到(Cisco VPS)VMWare ESXi?的知识。

本文目录一览:

什么?VMware Fusion 也能 docker run 了?(vmware-fusion)

什么?VMware Fusion 也能 docker run 了?(vmware-fusion)

作为最好的虚拟机软件之一,VMware Workstation 是专为 LinuxWindows 系统设计的,为了照顾 Mac 平台的用户,VMware 原班人马又打造了 VMware Fusion,与 Workstation 体验基本一致。

现在 VMware Fusion 迎来了重大更新,可以直接使用 Docker 镜像启动容器,还可以构建镜像、推送镜像到镜像仓库,不需要安装 Docker Desktop。为了这个功能,VMware Fusion 专门创建了一个新的 CLI 工具:vctl,它包含在 VMware Fusion 中,安装好了之后就有这个命令了。

通过下面的链接下载安装最新版 VMware Fusion:

  • Download [1]

序列号什么的自己网上找一下就好了,我不方便提供。。

1. vctl 介绍

vctl(代码名称:Nautilus 项目)是一个捆绑在 VMware Fusion 应用程序中的命令行实用程序,用于管理容器。大多数 vctl 命令选项可在 Fusion 和 Fusion Pro 中使用。但是,--publish 选项仅适用于 Fusion Pro。

相关的二进制文件 / 组件捆绑在 Fusion 应用程序中,可在 Applications/VMware Fusion.app/Contents/Library/vkd/ 文件夹中找到这些内容。主要包括以下三个二进制文件:

bin/containerd

这是一个在后台运行的容器运行时守护进程。必须先启动 containerd 守护进程,然后才能运行任何与容器相关的操作。要启动该守护进程,请使用 vctl system start 命令,要停止该守护进程,请使用 vctl system stop 命令。

bin/containerd-shim-crx-v2

启动新容器时,将启动一个新的 containerd-shim-crx-v2 进程,该进程将充当 CRX 虚拟机中的容器与 containerd 守护进程之间的适配器。

bin/vctl

这是一个在前台运行的命令行实用程序,它可以将用户输入转发到 containerd 守护进程,和 containerd 进程进行交互,类似于 crictl 的功能。

vctl 运行的每个容器都跑在一个称作『CRX』虚拟机的轻量级虚拟机内。默认情况下,CRX 虚拟机在容器启动时创建并启动。容器停止时,将关闭并移除该虚拟机。CRX 虚拟机的名称与容器的名称相同。

2. 启动 Containerd

在使用 vctl 操作容器之前,必须先启动 containerd 容器运行时。容器运行时不会在 VMware Fusion 应用程序启动时自动启动,也不会在 VMware Fusion 应用程序退出时自动停止,必须手动启动和停止。实际上也并不需要打开 VMware Fusion。

首先在终端中执行以下命令来检查容器运行时的状态:

$ vctl system info

Container runtime is stopped.
Use ''vctl system start'' to start.
Container runtime path:       /Applications/VMware Fusion.app/Contents/Library/vkd/bin/containerd
Log file:                     not set
Log level:                    info
Config:                       not set
Virtual machine CPU (cores):  2
Virtual machine memory (MB):  1024
Host network:
DMG file:                     not set
Storage mount point:          <HOME>/.vctl/storage

然后启动容器运行时(需要输入管理员密码):

$ vctl system start

Preparing storage...
Container storage has been prepared successfully under <HOME>/.vctl/storage
Preparing container network, you may be prompted to input password for administrative operations...
Container network has been prepared successfully using vmnet: vmnet9
Launching container runtime...
Container runtime has been started.

列出网络设备:

$ vmrun listHostNetworks

Total host networks: 4
INDEX  NAME         TYPE         DHCP         SUBNET           MASK
0      vmnet0       bridged      false        empty            empty
1      vmnet1       hostOnly     true         192.168.22.0     255.255.255.0
8      vmnet8       nat          true         192.168.31.0     255.255.255.0
9      vmnet9       nat          true         192.168.134.0    255.255.255.0

3. vctl 使用

启动容器运行时后,就可以操作容器和镜像了。先拉取一个镜像试试:

$ vctl pull nginx:alpine

INFO Pulling from index.docker.io/library/nginx:alpine
───                                                                                ──────   ────────
REF                                                                                STATUS   PROGRESS
───                                                                                ──────   ────────
index-sha256:b89a6ccbda39576ad23fd079978c967cecc6b170db6e7ff8a769bf2259a71912      Done     100% (1645/1645)
manifest-sha256:ee5a9b68e8d4a4b8b48318ff08ad5489bd1ce52b357bf48c511968a302bc347b   Done     100% (1360/1360)
layer-sha256:c4a057508f96954546441044f0d2373303862a4d4accc163e68a4c30d0c88869      Done     100% (668/668)
config-sha256:7d0cdcc60a96a5124763fddf5d534d058ad7d0d8d4c3b8be2aefedf4267d0270     Done     100% (8026/8026)
layer-sha256:cbdbe7a5bc2a134ca8ec91be58565ec07d037386d1f1d8385412d224deafca08      Done     100% (2813316/2813316)
layer-sha256:10c113fb0c778963cb3069e94e8148a3770122f6763c94373e22f5342b503ab0      Done     100% (6460970/6460970)
layer-sha256:9ba64393807bf2549af97a1a074ca5fff1bce25ad115b0a7ced446cd1b4305d0      Done     100% (538/538)
layer-sha256:262f9908119d4529a370bcdf1f1306131ad556edf400413d5fa74008d7919931      Done     100% (899/899)
INFO Unpacking nginx:alpine...
INFO done

$ vctl images

────           ─────────────               ────
NAME           CREATION TIME               SIZE
────           ─────────────               ────
nginx:alpine   2020-06-08T17:05:15+08:00   8.9 MiB

是不是有种熟悉的味道?跑一个容器试试:

$ vctl run -d --name mynginx nginx:alpine
INFO container mynginx started and detached from current session

$ vctl ps
────      ─────          ───────                   ──                ─────   ──────    ─────────────
NAME      IMAGE          COMMAND                   IP                PORTS   STATUS    CREATION TIME
────      ─────          ───────                   ──                ─────   ──────    ─────────────
mynginx   nginx:alpine   /docker-entrypoint.s...   192.168.134.129   n/a     running   2020-06-08T17:16:11+08:00

可以看到其资源占用非常低:

这一步神奇的事情就发生了!当容器被启动时,它的 rootfs 会被挂载到宿主机上,这就意味着我们可以直接使用 Finder 来浏览容器里的内容,并实时修改,就像在宿主机里编辑文件一样,简直太爽了!

查看容器详细信息:

$ vctl describe mynginx

Name:                       mynginx
Status:                     running
Command:                    /docker-entrypoint.sh nginx -g daemon off;
Container rootfs in host:   <HOME>/.vctl/storage/containerd/state/io.containerd.runtime.v2.task/vctl/mynginx/rootfs
IP address:                 192.168.134.129
Creation time:              2020-06-08T17:16:11+08:00
Image name:                 nginx:alpine
Image size:                 8.9 MiB
Host virtual machine:       <HOME>/.vctl/.r/vms/mynginx/mynginx.vmx
Container rootfs in VM:     /.containers/mynginx
Access in host VM:          vctl execvm --sh -c mynginx
Exec in host VM:            vctl execvm -c mynginx /bin/ls

进入容器:

$ vctl exec -it mynginx sh
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:0c:29:8c:90:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.134.129/24 brd 192.168.134.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe8c:90ad/64 scope link
       valid_lft forever preferred_lft forever
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 12:50:93:b9:b0:b9 brd ff:ff:ff:ff:ff:ff

进入虚拟机:

$ vctl execvm --sh -c mynginx
sh-4.4# uname -a
Linux  4.19.84-1.ph3-esx #1-photon SMP Tue Nov 19 00:39:50 UTC 2019 x86_64
sh-4.4# uname -r
4.19.84-1.ph3-esx
sh-4.4# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope: Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:751 TX bytes:751

eth0      Link encap:Ethernet  HWaddr 00:0c:29:8c:90:ad  Driver vmxnet3
          inet addr:192.168.134.129  Bcast:192.168.134.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe8c:90ad/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:194 TX bytes:1572

不得不说,VMware 真是越来越会玩了,不断地自我革命,其中 VMware Tanzu 就是为拥抱 Kubernetes 而进行的自我革命,它将 Kubernetes 控制平面直接集成到 ESXivCenter 中,使其成为 ESXi 的控制平面,并通过 vCenter 提供以应用为中心的管理功能。现在连家用的 Fusion 也推出了容器管理的功能,可以想象,未来软件世界将会被容器所吞噬

参考资料

  • VMware Fusion 11.5: Now With Container Support [2]
  • 使用 vctl 命令管理容器 [3]

脚注

[1]

Download: http://vmware.com/go/getfusion

[2]

VMware Fusion 11.5: Now With Container Support: https://blogs.vmware.com/teamfusion/2020/05/fusion-11-5-now-supports-containers.html

[3]

使用 vctl 命令管理容器: https://docs.vmware.com/cn/VMware-Fusion/11/com.vmware.fusion.using.doc/GUID-78E7339F-7294-4F3E-9AD0-1E14C201FA40.html


你可能还喜欢

点击下方图片即可阅读

[译] BeyondProd:云原生安全的一种新方法(Google, 2019)

云原生是一种信仰 



码关注公众号

后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!



点击 "阅读原文" 获取更好的阅读体验!


         
         
         
❤️ 给个 「在看」 ,是对我最大的支持❤️

本文分享自微信公众号 - 云原生实验室(cloud_native_yang)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

docker与vmware的区别是什么

docker与vmware的区别是什么

docker与vmware的区别是什么

vmware

在宿主机器操作系统的基础上创建的从操作系统。

需要几个相互隔离的应用,就需要启动几个虚拟机,会消耗大量CPU和内存。

Docker

docker守护进程取代了VMware中的从操作系统。它是运行在操作系统上的后台进程,用于管理docker容器。

docker守护进程可以直接与主操作系统进行通信,为各个docker容器分配资源。还可以将容器与主操作系统隔离,并将各个容器互相隔离。

docker在宿主机的操作系统上创建docker引擎,直接在宿主机操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源,所以操作速度快。

推荐教程:docker教程

以上就是docker与vmware的区别是什么的详细内容,更多请关注php中文网其它相关文章!

FATA [0000]获取http:///var/run/docker.sock/v1.17/version:拨打unix/var/run/docker.sock

FATA [0000]获取http:///var/run/docker.sock/v1.17/version:拨打unix/var/run/docker.sock

我使用本指南安装docker 。我在用着

Distributor ID: Ubuntu
Description:    Ubuntu 13.10
Release:    13.10
Codename:   saucy

即使我严格按照给定的步骤操作,发出docker version命令时仍然出现错误。

Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.17/version: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

我在下面提到了aleardy,但这对我不起作用。其中大多数关注Mac OS X

我怎样才能解决这个问题?

请参见下面的O / P

INFO[0000] +job serveapi(unix:///var/run/docker.sock)   
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
DEBU[0000] Registering POST,/containers/{name:.*}/resize 
DEBU[0000] Registering POST,/containers/create         
DEBU[0000] Registering POST,/containers/{name:.*}/kill 
DEBU[0000] Registering POST,/containers/{name:.*}/start 
DEBU[0000] Registering POST,/containers/{name:.*}/stop 
DEBU[0000] Registering POST,/containers/{name:.*}/copy 
DEBU[0000] Registering POST,/containers/{name:.*}/exec 
DEBU[0000] Registering POST,/exec/{name:.*}/start      
DEBU[0000] Registering POST,/auth                      
DEBU[0000] Registering POST,/build                     
DEBU[0000] Registering POST,/containers/{name:.*}/wait 
DEBU[0000] Registering POST,/containers/{name:.*}/attach 
DEBU[0000] Registering POST,/images/{name:.*}/tag      
DEBU[0000] Registering POST,/containers/{name:.*}/pause 
DEBU[0000] Registering POST,/containers/{name:.*}/rename 
DEBU[0000] Registering POST,/commit                    
DEBU[0000] Registering POST,/images/create             
DEBU[0000] Registering POST,/images/load               
DEBU[0000] Registering POST,/images/{name:.*}/push     
DEBU[0000] Registering POST,/containers/{name:.*}/unpause 
DEBU[0000] Registering POST,/containers/{name:.*}/restart 
DEBU[0000] Registering POST,/exec/{name:.*}/resize     
DEBU[0000] Registering DELETE,/containers/{name:.*}    
DEBU[0000] Registering DELETE,/images/{name:.*}        
DEBU[0000] Registering OPTIONS,DEBU[0000] Registering GET,/containers/{name:.*}/json  
DEBU[0000] Registering GET,/events                     
DEBU[0000] Registering GET,/images/search              
DEBU[0000] Registering GET,/images/get                 
DEBU[0000] Registering GET,/images/{name:.*}/get       
DEBU[0000] Registering GET,/images/{name:.*}/history   
DEBU[0000] Registering GET,/containers/json            
DEBU[0000] Registering GET,/containers/{name:.*}/export 
DEBU[0000] Registering GET,/info                       
DEBU[0000] Registering GET,/images/viz                 
DEBU[0000] Registering GET,/containers/{name:.*}/top   
DEBU[0000] Registering GET,/containers/{name:.*}/logs  
DEBU[0000] Registering GET,/containers/{name:.*}/stats 
DEBU[0000] Registering GET,/exec/{id:.*}/json          
DEBU[0000] Registering GET,/_ping                      
DEBU[0000] Registering GET,/images/json                
DEBU[0000] Registering GET,/images/{name:.*}/json      
DEBU[0000] Registering GET,/containers/{name:.*}/attach/ws 
DEBU[0000] Registering GET,/version                    
DEBU[0000] Registering GET,/containers/ps              
DEBU[0000] Registering GET,/containers/{name:.*}/changes 
DEBU[0000] docker group found. gid: 999                 
DEBU[0000] Using graph driver aufs                      
DEBU[0000] Migrating existing containers                
DEBU[0000] Creating images graph                        
DEBU[0000] Restored 0 elements                          
DEBU[0000] Creating repository list                     
INFO[0000] +job init_networkdriver()                    
DEBU[0000] /sbin/iptables,[--wait -C POSTROUTING -t nat -s 172.17.42.1/16 ! -o docker0 -j MASQUERADE] 
DEBU[0000] /sbin/iptables,[--wait -D FORWARD -i docker0 -o docker0 -j DROP] 
DEBU[0000] /sbin/iptables,[--wait -C FORWARD -i docker0 -o docker0 -j ACCEPT] 
DEBU[0000] /sbin/iptables,[--wait -C FORWARD -i docker0 ! -o docker0 -j ACCEPT] 
DEBU[0000] /sbin/iptables,[--wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[0000] /sbin/iptables,[--wait -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -t nat -D PREROUTING -j DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -t nat -D OUTPUT -j DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -t nat -F DOCKER]    
DEBU[0000] /sbin/iptables,[--wait -t nat -X DOCKER]    
DEBU[0000] /sbin/iptables,[--wait -t nat -n -L DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -t nat -N DOCKER]    
DEBU[0000] /sbin/iptables,[--wait -C -m addrtype --dst-type LOCAL] 
DEBU[0000] /sbin/iptables,[--wait -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -C -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8] 
DEBU[0000] /sbin/iptables,[--wait -t nat -A OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -t filter -n -L DOCKER] 
DEBU[0000] /sbin/iptables,[--wait -C FORWARD -o docker0 -j DOCKER] 
INFO[0000] -job init_networkdriver() = OK (0)           
INFO[0000] WARNING: Your kernel does not support cgroup swap limit. 
DEBU[0000] Restarting containers...                     
INFO[0000] docker daemon: 1.5.0 a8a31ef; execdriver: native-0.2; graphdriver: aufs 
INFO[0000] +job acceptconnections()                     
INFO[0000] -job acceptconnections() = OK (0)            
DEBU[0022] Calling GET /version                         
INFO[0022] GET /v1.17/version                           
INFO[0022] +job version()                               
INFO[0022] -job version() = OK (0)

Fusion 或 Vmware 安装 openEuler 20.03 最小镜像

Fusion 或 Vmware 安装 openEuler 20.03 最小镜像

随便在一个欧拉镜像站里下载最小化安装的 iso 镜像文件。

清华镜像站

以 Fusion 为例,选择下载的 openEuler 镜像文件:

选择 openEuler iso

选择其他 Linux 4.x 内核 64 位

选择系统类型

选择好你想放置虚拟机的目录自定设置,然后点击完成:

iso 设置完成

然后就可以启动安装了。

一定要选择中文,不然下一步开启以太网连接的按钮你会找不到:

以太网默认不开启

点击最右侧露出一部分的按钮可以开启以太网:

开启以太网

配置界面

最重要就是配置安装源,这里使用华为镜像站的欧拉源:

设置华为镜像

接下来安装你想安装的软件:

截屏2021-10-14 08.49.34

选择部分软件

慢慢等待安装完成:

等待安装

安装完成:

安装完成

重启后默认是不联网的,需要手动联网。

使用nmcli命令查看网络设备状态:

nmcli device status

网络设备状态

手动连接ens33

nmcli connection up id ens33

连接网络设备

再查看设备状态:

网络已连接

测试网络是否联通:

截屏2021-10-14 09.52.40

欧拉的官方镜像速度不行,换一个镜像源,以华为镜像源为例:

wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_x86_64.repo

这个源只是换了openEulerOS.repoopenEuler.repo里用的仍是欧拉源,手动换一下:

sudo cp /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak
sudo sed -i "s@http://repo.openeuler.org@https://repo.huaweicloud.com/openeuler@g" /etc/yum.repos.d/openEuler.repo
sudo yum clean all
sudo yum makecache

最后上图:

ssh 连接后的 neofetch

linux – 是否有可能将CentOS从(Mac)VMware Fusion迁移到(Cisco VPS)VMWare ESXi?

linux – 是否有可能将CentOS从(Mac)VMware Fusion迁移到(Cisco VPS)VMWare ESXi?

是否有任何解决方案可以将Mac OS融合的CentOS(全镜像)克隆到Cisco VPS服务器上的VMWare ESXi?

解决方法

当然. VMware Converter应该能够轻松地为您完成转换.

关于什么?VMware Fusion 也能 docker run 了?vmware-fusion的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于docker与vmware的区别是什么、FATA [0000]获取http:///var/run/docker.sock/v1.17/version:拨打unix/var/run/docker.sock、Fusion 或 Vmware 安装 openEuler 20.03 最小镜像、linux – 是否有可能将CentOS从(Mac)VMware Fusion迁移到(Cisco VPS)VMWare ESXi?的相关信息,请在本站寻找。

本文标签:

上一篇简谈ThreadLocal(简谈中国式现代化的基本特征)

下一篇Dockerd 资源泄露怎么办(docker内存泄露)