本文主要介绍docker run的几个常用参数。
文章目录
1.开机自启
--restart=always
宿主机启动后,docker服务会自动启动,只要在docker run的时候加上这个参数: --restart=always
就可以实现容器随着宿主机器启动而自动启动了.
docker里面跑了我们的程序,那么如何让我们的程序在docker容器启动的同时,也跟着一起启动呢?
这里是通过在home目录下写了一个自启动脚本,然后在bashrc中启动该脚本.因为每次启动容器都会自动启动bashrc,所以就会自动运行程序.
2.文件映射
-r /host/path:/docker/path
其中/host/path
为宿主机需要挂载到docker容器内的目录
/docker/path
为docker容器内的目录
挂载之后,修改容器内的目录也会修改容器外的目录。修改容器外的目录内容也会影响到容器内部的目录。
需要注意的是,如果在docker内创建文件,文件的权限默认是在root下,如果想要在docker外部进行写入修改删除等操作,可以使用sudo chmod 777 文件
来修改文件权限。
3.图形化显示
-v /tmp/.X11-unix:/tmp/.X11-unix \ #共享本地unix端口
-e DISPLAY=unix$DISPLAY \ #修改环境变量DISPLAY
-e GDK_SCALE \ #我觉得这两个是与显示效果相关的环境变量,没有细究
-e GDK_DPI_SCALE \
3.1 在宿主机安装x11-xserver-utils
开放权限,允许所有用户,当然包括docker,访问X11 的显示接口
sudo apt-get install x11-xserver-utils
xhost +
需要注意的是!!!xhost +
这个命令,需要宿主机每一次启动的时候都要输入的.所以可以把这个命令加入到宿主机器的开机自启中
.
出现access control disabled, clients can connect from any host
说明操作成功.
3.2 在启动docker容器时,添加选项如下:
-v /tmp/.X11-unix:/tmp/.X11-unix \ #共享本地unix端口
-e DISPLAY=unix$DISPLAY \ #修改环境变量DISPLAY
-e GDK_SCALE \ #我觉得这两个是与显示效果相关的环境变量,没有细究
-e GDK_DPI_SCALE \
4.gpu调用
–gpus all
需要首先完成 安装 nvidia-container-runtime
5.网络设置
5.1 和主机共享网络
具体设置看这个:https://blog.csdn.net/xiaoyou625/article/details/111876039
这里直接给出和主机共享网络的配置:
--network host
5.2 向/etc/hosts中添加网络配置
--add-host docker_host:172.17.0.2 --add-host master_host:172.17.0.1