Ubuntu Dockers安装与基本使用

ubuntu docker 安装

wget http://fishros.com/install -O fishros && . fishros

# 一定要是英伟达版本的docker  nvidia-docker

sudo apt-get install -y nvidia-docker2

加载镜像

|如果需要从u盘中加载镜像,终端的路径需要切换至u盘

sudo docker load -i [image_]
  1. docker load: 这是 Docker 的一个命令,用于从一个 tar 存档文件(tarball)中加载一个镜像。
  2. -i: 这是 docker load 命令的一个选项,代表 input(输入)。

查看系统上可用镜像

sudo docker images 
  1. docker images: 这是 Docker 的一个命令,用于显示当前系统上所有的 Docker 镜像。
    • 这个命令会列出所有已下载或构建的镜像,包括它们的仓库名、标签、镜像 ID、创建时间和大小。
    • 如果没有镜像,这个命令将不会显示任何内容。

启动容器

sudo docker run -it --privileged --runtime nvidia -v ~/share:/root/share:rw --net=host --volume=/tmp/.X11-unix --env="DISPLAY=$DISPLAY" --name [container_name] [image_name:[tag]] bash

用于启动一个具有图形界面支持、GPU 加速、以及对主机资源(如文件系统)有较高访问权限的 Docker 容器

  1. sudo docker run:这是 Docker 的基本命令,用于运行一个新的容器。
  2. -it:这两个选项通常一起使用。-i 表示交互式操作,-t 分配一个伪终端或终端。
  3. --privileged:这个选项赋予容器内的根用户几乎所有的权限,这通常是出于访问主机系统硬件等特定需求。
  4. --runtime nvidia:这指定了容器使用的运行时环境是 NVIDIA,常用于需要 GPU 支持的应用,比如深度学习。
  5. -v ~/share:/root/share:rw:这是一个卷挂载的命令。它将主机上的 ~/share 目录映射到容器中的 /root/share 目录。rw 表示可读写。
  6. --net=host:这个选项让容器共享主机的网络堆栈,容器将直接使用主机的 IP 和端口。
  7. --volume=/tmp/.X11-unix:这是另一个卷挂载,用于图形界面的应用,让容器可以访问 X11 的 Unix 套接字。
  8. --env="DISPLAY=$DISPLAY":设置环境变量,这里是将主机的 DISPLAY 环境变量传递给容器,通常用于 GUI 应用。
  9. --name [container_name]:为新创建的容器指定一个名称,替换 [container_name]
  10. [image_name]:指定要使用的 Docker 镜像的名称,替换 [image_name]
  11. bash:这是容器启动后将要运行的命令,这里是启动 Bash shell。

启动一个之前已经创建但当前处于停止状态的容器

sudo docker start [container_name]
  • docker start: 用于启动一个或多个已经停止的容器。
  • [container_name]: 这里需要替换为想要启动的容器的名称或者 ID。容器名称或 ID 是在创建容器时指定或自动生成的。

打开交互式命令行界面

sudo docker exec -it [container_name] bash
  • docker exec: 用于在运行中的容器内执行命令。

创建快速启动别名

编辑shell配置文件

sudo gedit ~/.bashrc

添加alias 命令

alias startmycontainer='sudo docker start mycontainer && sudo docker exec -it mycontainer /bin/bash'

保存文件,使更改生效

source ~/.bashrc

为了图形化界面,需要xserver

输出当前设置的 DISPLAY

echo $DISPLAY
  • echo 是一个常用的命令行工具,用于在标准输出(通常是终端)上显示其后的参数。
  • $DISPLAY 是一个环境变量,它包含了用于定位 X 服务器的地址。在图形界面的 Unix 系统中,$DISPLAY 环境变量通常会被自动设置。
    • 例如,DISPLAY=:0 通常表示本地机器上的第一个 X 服务器。数字 0 是 X 服务器的显示号码。
    • 在使用 SSH 远程连接到其他机器时,如果使用了 X11 转发(通过 -X-Y 选项),$DISPLAY 将被设置为指向远程机器的 X 服务器。

当容器里与主机的输出值不同时,无法在主机的显示器看到docker的图形化界面

为了能够看到docker的图形化界面,

需要修改docker里面DISPLAY值

1. 临时修改(当前终端会话)

要在当前终端会话中临时修改 DISPLAY 值,使用 export 命令。

export DISPLAY=:1

这会将 DISPLAY 设置为 :1,但只在当前的终端会话中有效。关闭终端或打开新的终端会话后,这个设置将不再有效。

2. 修改 .bashrc.bash_profile

如果想让 DISPLAY 的修改在每次登录时自动应用,可以将 export 命令添加到 .bashrc 文件中。例如:

echo 'export DISPLAY=:1' >> ~/.bashrc

然后重新加载配置文件:

source ~/.bashrc

这种方法会在每次新开一个终端时自动设置 DISPLAY

3. 修改全局配置(适用于所有用户)

如果需要为所有用户修改 DISPLAY,可以将 export 命令添加到全局配置文件,如 /etc/profile/etc/environment。这需要管理员权限。

例如,在 /etc/environment 中添加:

DISPLAY=":1"

这种修改需要重新启动或重新登录才能生效。

之后

startx

重启服务

配置VNC

1 TX2下载tightvnc

2 配置TX2的VNC

地面站需要通过VNC链接TX2,需要在TX2上进行如下操作。(在TX2终端操作,而非docker中)

mkdir -p ~/.config/autostart
cp /usr/share/applications/vino-server.desktop ~/.config/autostart/.
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password $(echo -n '   '|base64)

之后将TX2设置为免密登录,并重启即可。

3 TX2添加显示

在TX2不连着显示器时,TX2默认使用低分辨率显示,通过VNC访问时会严重影响使用。为此,进行如下设置(在TX2终端操作,而非docker中)

# 进入设置文档
sudo gedit /etc/X11/xorg.conf
# 将以下内容添加至结尾
Section "Screen"
   Identifier    "Default Screen"
   Monitor        "Configured Monitor"
   Device        "Default Device"
   SubSection "Display"
       Depth    24
       Virtual 1920 1080
   EndSubSection
EndSection

之后重启即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值