docker

DOCKER

简单理解为虚拟机,打开口,当作轻量级系统操作,弄乱了,可以删除,这样避免直接操作系统带来的冲突和损失。

image就是一个操作系统安装包,装了那个系统,开机就会进入安装好的系统,这个安装好的系统就可以理解为容器container。

以nvidia-docker为例:

举例: 使用一个opencv的镜像ichizero/cuda-opencv

  • 下载

    # docker需要在root用户运行,所以使用前先切换到root或者在命令前添加sudo,
    # 或者你也可以把当前用户添加进docker用户组
    # sudo usermod -aG docker $USER
    # tips: docker的命令跟git很相似
    docker pull ichizero/cuda-opencv
    
  • 启动

    docker run --runtime=nvidia -idt ichizero/cuda-opencv /bin/bash
    # --runtime=nvidia 开启显卡支持
    # -idt -i(iterative) 打开标准输入 -d(daemons) 启动之后挂起,类似于后台进程 
    # -t(tty) 分配一个伪终端
    
  • 查看

    [root@archlinux zengren]# docker container ls
    CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS               NAMES
    48872978f6ca        ichizero/cuda-opencv   "/bin/bash"              5 minutes ago  
    
  • 停止和再启动

    docker container stop 48872978f6ca
    
    docker container start 48872978f6ca
    
  • 进入容器

    # exec 要求容器必须在运行状态,如果不在运行状态要先start启动容器.
    # 还有一个同样功能的命令attach,有兴趣可以google了解一下区别,推荐使用exec
    docker exec -it 8d646 /bin/bash
    

  • 打包镜像

    docker save eb40dcf64078> /root/mydjango-save-1016.tar  将镜像保存为本地文件,其中eb40dcf64078为image id
    
  • 加载镜像

    docker load < /root/mydjango-save-1016.tar  
    
  • 运行

    使用docker run -itd django:latest加载进行,验证镜像是否能够成功的“run”
    

添加用户:
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $XXX docker #检测当前用户是否已经在docker用户组中,其中XXX为用户名,例如我的,liangll
sudo gpasswd -a $USER docker #将当前用户添加至docker用户组
newgrp docker #更新docker用户组

原文地址:https://www.cnblogs.com/heimazaifei/p/12641728.html