文章目录

  • 前言
  • 一、查看已有镜像和容器
  • 二、导出和导入一个容器
  • 1. 容器导出docker export
  • 2. 镜像导入docker import
  • 三、创建一个新容器
  • 1. DockerHub拉取合适镜像
  • 关于镜像的命令
  • 2.创建docker
  • docker run命令及详解
  • 3. 新容器创建后需要安装的基础包
  • 4. docker常用命令总结
  • 四、jupyter notebook的安装和使用
  • 五、端口被占用问题
  • 六、vim编辑器的使用
  • 八、查看环境配置的命令
  • 九、ssh指令和Xshell远程连接服务器



前言


跑深度学习模型离不开服务器,尤其用容器配置环境是必不可缺的,这里总结我在配置环境时遇到的指令和问题,不断更新


一、查看已有镜像和容器

# 查看已有镜像
docker images -a 查看所有镜像
# 查看正在运行的docker
sudo docker ps 查看正在运行的docker
# 查看所有docker
sudo docker ps -a 查看所有docker

二、导出和导入一个容器

1. 容器导出docker export

导出的容器快照将保存在当前文件夹中
语法:docker export $container_id > 容器快照名

docker export aa811ef96092 > pytorch17.tar

2. 镜像导入docker import

cat命令与import命令连用

cat /datastore/pytorch17.tar | docker import - ubuntu/pytorch17:v1.1

三、创建一个新容器

上面导入和导出容器的指令可能只在要备份docker内容以免丢失的时候用到,一般不会用到,我们在配置一个新容器和环境的时候只需要去dockerhub里拉取合适的镜像,然后新建容器就可以了

1. DockerHub拉取合适镜像

DockerHub官网:https://hub.docker.com/r/pytorch/pytorch/tags 找到合适的版本,复制指令,粘贴到terminal里执行就可以了

docker实际应用 docker 实用_docker

关于镜像的命令

docker images -a 查看所有镜像
docker rmi ubuntu/pytorch17 删除单个镜像

2.创建docker

docker run命令及详解

sudo docker run -it --gpus all --network=host -v /datastore/nnunet:/data --name="pytorch17_nnunet"  --ipc=host  ubuntu/pytorch17:v1.1 /bin/bash

命令解释:

  • -it 为容器分配一个伪终端且以交互模式运行
  • –gpus all 使容器可以使用gpu
  • –network=host 指定容器的网络模式为host模式,即不会获得独立的IP和虚拟网卡,而是使用宿主机的ip和端口
  • -v /mnt/data:/data 左边是外部路径(本地目录),右边是内部路径(容器目录),例如我的文件放在/mnt/data下,需要挂载到docker内部的路径是/data
  • name=“pytorch17_nnunet” 新创建的容器的名称
  • –ipc=host 设置ipc模式为host,即在容器内使用宿主机的命名空间
  • ubuntu/pytorch17:v1.0 使用的镜像地址名称
  • /bin/bash 载入容器后运行bash,因为docker中必须要保持一个进程的运行,要不然整个容器就会退出

3. 新容器创建后需要安装的基础包

apt-get update
apt-get install sudo
apt-get install git
conda install jupyter notebook
sudo apt-get install unzip
sudo apt-get install zip
sudo apt-get install vim

4. docker常用命令总结

sudo docker ps 查看正在运行的docker
sudo docker ps -a 查看所有docker
sudo docker rm pytorch17 删除容器
sudo docker restart hungry_pascal 重启docker
sudo docker exec -it pytorch17  bash  进入docker
sudo docker stop pytorch17 关闭docker

在容器内部退出容器:
1. Ctrl+D或者exit 退出并关掉容器
   想再次进入需要重新启动docker start XXX
2. Ctrl+C 退出不关掉容器

三、查看docker服务状态

docker服务启动:
systemctl start docker 启动docker服务
systemctl restart docker 重启docker服务
systemctl stop docker 停止docker服务
systemctl status docker 查看docker服务是否启动

四、jupyter notebook的安装和使用

conda install jupyter notebook 安装
jupyter notebook --allow-root --ip=* 启动
ps -ef | grep jupyter       检查jupyter进程是否存在

启动jupyter notebook后按理说只要复制网址到浏览器的地址栏就可以打开jupyter notebook开始使用了(如下图1),但是往往显示服务器拒绝访问而无法使用(如下图2),这时候就要配置端口或者修改域名了

docker实际应用 docker 实用_运维_02


docker实际应用 docker 实用_服务器_03


解决办法:

  1. 修改网址中的域名:
    如上图本来复制的网址应该是:

    只需要把红圈中的ip地址改成服务器的ip地址就可以了
http://XXX.XXX.X.XX:XXXX/?token=......
  1. 如果还不行需要在Xshell中配置隧道

    然后浏览器中ip那里改成localhost
    http://localhost:7777/?token=…

五、端口被占用问题

sudo netstat -anp | grep 8888 查看8888端口是否被占用
lsof -i :8888 查看占用端口的进程id
sudo kill -9 116462 杀掉占用进程
六、vim编辑器的使用
apt-get install vim
vim .bashrc
按i进入编辑模式 
按Esc键退出编辑模式,然后输入:wq退出并保存
八、查看环境配置的命令
uname -a 查看ubuntu版本
nvcc --version 查看cuda版本
nvidia-smi 显示显卡信息
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2查看cudnn版本
九、ssh指令和Xshell远程连接服务器