一、docker常用命令
显示本地的镜像:
docker images
显示所有容器:
docker ps -a
启动某个容器:
docker start [某个container]
进入某个已启动的容器:
docker attach [已经启动的某个container]
删除某个容器
docker rm [container]
停止某个容器
docker stop [container]
删除某个镜像
docker rmi [image]
将容器保存为镜像:
docker commit -m="描述" -a="作者" 容器ID 要保存的镜像名称
使用bind mount方式连接数据卷的方式,相当于host与container共用这一个文件夹。commit为image时,不会涵盖该数据卷。删除container后,该数据卷在宿主机的文件目录里仍存在,且文件内容也不受影响。
docker run -it --mount type=bind,source=/home/xyft/data,target=/tmp ubuntu:20.04
使用-v
挂载指定目录或文件,commit同样不会把宿主机这部分的文件打包进镜像。挂载时,对文件修改可以反馈到宿主机上。该容器生成镜像,使用该镜像生成新的容器,新容器内会保留挂载文件名,但若在启动时不进行再次挂载,则并无文件内容。
数据挂载参考博客:
https://blog.csdn.net/houhj168/article/details/113313025
https://blog.csdn.net/houhj168/article/details/113346061
https://blog.csdn.net/weixin_43721000/article/details/123519834
二、在docker容器中使用GUI
参考这一篇博客https://blog.csdn.net/ericcchen/article/details/79253416
首先在主系统安装xserver
sudo apt install x11-xserver-utils
设置权限
# 允许所有用户访问显示接口
xhost +
# 只允许Docker用户访问显示接口 (两者选其一即可)
xhost +local:docker
然后启动容器,完整命令如下:
$ docker run -it \
-v /etc/localtime:/etc/localtime:ro \ #时区设置文件
-v /tmp/.X11-unix:/tmp/.X11-unix \ #把该文件共享到container
-e DISPLAY=unix$DISPLAY \ #修改环境变量DISPLAY
-e GDK_SCALE \ #与显示效果相关的环境变量
-e GDK_DPI_SCALE \ #与显示效果相关的环境变量
--net=host #不设置网络模式的话可能会报错 Error: cannot open display: localhost:10.0
ubuntu:20.04 #镜像名称