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用户组