前言
本教程经过win10下的docker实现,过程简单,不须要本身进行破解,同时是经过wsl方式实现,比虚拟机效率会更加高一些。html
镜像是由网友制做的,eetop连接为:http://bbs.eetop.cn/thread-883833-1-1.htmlweb
仅供我的学习使用面试
win10下安装docker
在官网找到win10的docker安装包,进行安装docker
https://docs.docker.com/docker-for-windows/install/ubuntu
下载稳定版便可windows

使用前要安装wsl2,做为docker在win10下的后端支持后端
https://docs.microsoft.com/en-us/windows/wsl/install-win10bash

下载好之后直接双击安装便可微信
docker配置
在拉取镜像以前,先为docker设置镜像加速器,推荐阿里云的docker镜像加速服务编辑器
https://cn.aliyun.com/
注册之后,进入控制台,容器镜像服务->镜像加速器

而后打开docker的设置界面,Docker Engine,将刚刚的连接复制到下面

应用并重启便可。
默认的docker的目录是在c盘下的,镜像未来会占用c盘空间,接下来移动docker的目录
首先关闭docker,而后建立一个目录D:\SoftwareData\wsl\docker-desktop-data
打开cmd,wsl -l -v
能够看到由有两个docker,咱们只须要移动第二个就能够了

依次执行,
wsl --shutdown
wsl --export docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar
检查如下目标目录有没有生成对应的文件docker-desktop-data.tar

wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\ D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar --version 2
移动完成
启动docker容器
经过开始菜单启动docker之后,打开cmd,拉取镜像docker pull phyzli/ubuntu18.04_xfce4_vnc4server_synopsys2016
大概有十几G,耐心等待。

镜像拉取完毕之后,启动镜像docker run -it -p 5902:5902 --hostname lizhen --mac-address 02:42:ac:11:00:02 -v //d/mydata:/mnt/mydata phyzli/ubuntu18.04_xfce4_vnc4server_synopsys2016
-p 5902:5902
是进行端口映射,--hostname lizhen --mac-address 02:42:ac:11:00:02
是在配置主机名和mac地址,和license绑定的,不能修改。-v //d/mydata:/mnt/mydata
是将win10下的目录//d/mydata
挂载到容器的/mnt/mydata
上,便于数据交换。
进入到容器内部之后就可使用了,每次进入都须要使用命令lmgrd
激活license

测试一下vcs是否正常,进入到咱们挂载的目录mnt/mydata
,下面是tb.sv
的内容
module tb ();
initial begin
$display("hello vcs");
end
endmodule
vcs tb.sv
进行编译,而后./simv
进行仿真

接下来试一下vnc远程桌面,经过命令vncserver -geometry 1920x1080 :2
在容器内启动vnc

而后回到cmd,ipconfig
查看虚拟机的ip

win10中打开vncviewer,配置链接,填入刚刚的ipv4地址,端口是5902

进行链接,链接密码为zhenchen

进入图形化界面

下面试一下vcs和verdi的联合仿真,一样仍是前面的tb.sv
vcs tb.sv -debug_all -lca -kdb
./simv -gui=verdi

其余
在进入容器后,直接exit
会退出容器,若是在启动容器时加上-d
,容器会在后台继续运行
经过docker ps -a
能够查看容器的状态

若是想要再启动容器,能够经过docker start ee
启动容器,ee
是容器ID的前两位,不用所有打完也能够
启动容器后若是要进入容器,经过指令docker exec -it ee bash
就能进入了

删除容器能够经过指令docker rm -f ee
,删除容器不会把前面挂载的文件夹删除,不用担忧
本文分享自微信公众号 - 摸鱼范式(icparadigm)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。