Skip to content

Latest commit

 

History

History
85 lines (66 loc) · 3.76 KB

README.md

File metadata and controls

85 lines (66 loc) · 3.76 KB

Docker使用说明

1、Docker安装

Docker安装参见教程

(1) 在安装过程中,安装NVIDIA Container Toolkit 可能会报错,可以打开教程中给出的官方安装指南链接,使用其中的命令进行安装。

Alt text


(2) 教程run_container.sh文件中给出了多个端口映射

Alt text

只需要保留22端口的映射即可

Alt textls

run_container.sh -h参数表示宿主机名字,注意修改一下,不改直接用srv3也行,不会报错
(3) Docker 容器会发生自动退出,是因为没有一个可以支撑docker 持久运行下去的命令

Alt text


解决方式:
  (a):新建容器的时候,将-it参数换为-idt,其中-d表示后台运行
  (b):已有的容器可以挂一个tmux补救一下
(4) Docker安装过程中需要的文件在文件夹docker_init
(5) 如果docker创建的容器保存/var文件夹下,如下图所示

Alt text

则需要给docker_container文件夹加上777权限,否则容器内创建文件需要sudo权限

2、Docker常用命令

查看容器

docker ps

查看所有容器(包括已停止的容器)

docker ps -a

查看镜像

docker images ls

启动已停止的容器

docker start name

停止容器

docker stop name

删除容器

docker rm name

进入容器

docker attach container_id

3、Docker使用注意事项

(1) 容器内/home文件夹下有三个文件夹,分别是data文件夹,share文件夹和xxx(用户名)文件夹,其中/home/data专门用于访问宿主机上的公开数据集,因为数据集是所有用户共用的,不必每个用户都在自己的容器内部存放一份,另外设为只读访问,只有宿主机中可以对其修改; /home/share用于用户分享自己的数据、文件到宿主机给其它用户访问。
(2) 容器默认安装cuda 11.4 如果需要其他版本cuda可以自行安装,安装时请务必取消安装驱动选项,如下图所示

Alt text

(3) 利用ssh连接容器时,conda是未激活的,直接执行conda activate base会提示如下错误

Alt text

这时先执行一下 source activate就可以了

Alt text

(4) 容器内系统时间不对,使用date -R查看,发现是时区错误,可通过如下方法修改
1、复制宿主机上的zoneinfo文件到容器下的/user/share/目录下

docker cp /usr/share/zoneinfo 容器名称:/usr/share/

2、进入容器当中,创建软连接,修改时区

sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime sudo echo "Asia/Shanghai" > /etc/timezone 执行sudo echo "Asia/Shanghai" > /etc/timezone命令是,可能会出现-bash: /etc/timezone: Permission denied的问题,原因是/etc文件夹下没有timezone文件。 建议在~路径下,先创建timezone文件,并写入Asia/Shanghai,再将该文件移动到/etc/

(4) 容器启动失败,手动启动容器发现端口被占用

执行 ps -aux | grep -v grep | grep docker-proxy 发现一些端口被占用 Alt text 解决方法: 依次执行

  • sudo service docker stop
  • sudo rm /var/lib/docker/network/files/local-kv.db
  • sudo service docker start