在本文中,我们将给您介绍关于什么?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)
- 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 Workstation
是专为 Linux
和 Windows
系统设计的,为了照顾 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
控制平面直接集成到 ESXi
和 vCenter
中,使其成为 ESXi
的控制平面,并通过 vCenter
提供以应用为中心的管理功能。现在连家用的 Fusion 也推出了容器管理的功能,可以想象,未来软件世界将会被容器所吞噬。
参考资料
-
VMware Fusion 11.5: Now With Container Support [2] -
使用 vctl 命令管理容器 [3]
脚注
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
你可能还喜欢
点击下方图片即可阅读
云原生是一种信仰
扫码关注公众号
后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!

点击 "阅读原文" 获取更好的阅读体验!
❤️
给个
「在看」
,是对我最大的支持❤️
本文分享自微信公众号 - 云原生实验室(cloud_native_yang)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。
docker与vmware的区别是什么
vmware
在宿主机器操作系统的基础上创建的从操作系统。
需要几个相互隔离的应用,就需要启动几个虚拟机,会消耗大量CPU和内存。
Docker
docker守护进程可以直接与主操作系统进行通信,为各个docker容器分配资源。还可以将容器与主操作系统隔离,并将各个容器互相隔离。
docker在宿主机的操作系统上创建docker引擎,直接在宿主机操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源,所以操作速度快。
推荐教程:docker教程
以上就是
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 最小镜像
随便在一个欧拉镜像站里下载最小化安装的 iso 镜像文件。
以 Fusion 为例,选择下载的 openEuler 镜像文件:
选择其他 Linux 4.x 内核 64 位
:
选择好你想放置虚拟机的目录自定设置
,然后点击完成:
然后就可以启动安装了。
一定要选择中文,不然下一步开启以太网连接的按钮你会找不到:
点击最右侧露出一部分的按钮可以开启以太网:
最重要就是配置安装源
,这里使用华为镜像站的欧拉源:
接下来安装你想安装的软件:
慢慢等待安装完成:
安装完成:
重启后默认是不联网的,需要手动联网。
使用nmcli
命令查看网络设备状态:
nmcli device status
手动连接ens33
:
nmcli connection up id ens33
再查看设备状态:
测试网络是否联通:
欧拉的官方镜像速度不行,换一个镜像源,以华为镜像源为例:
wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_x86_64.repo
这个源只是换了openEulerOS.repo
,openEuler.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
最后上图:
linux – 是否有可能将CentOS从(Mac)VMware Fusion迁移到(Cisco VPS)VMWare ESXi?
解决方法
关于什么?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?的相关信息,请在本站寻找。
本文标签: