d1. docker 启动image,如果启动gpu 版本必须用nvidia-docker, -d detach, -i interactive, -t with fake terminal , -network=host 与本机一样的网络
nvidia-docker run -dit --name icdl --network=host
连接到已有容器 sudo docker exec -it 775c7c9ee1e1 /bin/bash
2.用docker 代替nvidia-docker 启动带有gpu, cuda 的container
docker run --device=/dev/nvidiactl --device=/dev/nvidia-uvm --device=/dev/nvidia0 -v nvidia_driver_367.48:/usr/local/nvidia:ro -dit --name=test7 --network=host docker.io/bvlc/caffe:gpu /bin/bash
新版不用这么麻烦了,按照https://github.com/NVIDIA/nvidia-docker,只需docker --runtime=nvidia ...
3.带gdb支持的container, run 时候加上--cap-add=SYS_PTRACE
echo 0 /proc/sys/kernel/yama/ptrace_scope
4. docker attach 以后,使用Ctrl+P and Ctrl+Q离开
5.docker 离线安装 1)https://download.docker.com/linux/static/stable/x86_64/ 下载后,解压到/usr/local/bin下面,2)然后
vi
/etc/fstab
#在结尾添加
none
/sys/fs/cgroup
cgroup defaults 0 0
重启
3)如果使用gpu, 就用2中命令启动container
6.有哪些container: docker ps -a
7.有哪些image: docker images
8.删除不用的container: docker rm -f face/face1:version1
9.删除image : docker rmi
10.将当前container 保存成image, commit部分,face/face1是仓库名称,version1是tag
docker commit c3f279d17e0a face/face1:version1
将image 导出成压缩包:docker save -o /home/sam/aa.tar face/face1:version1
导入压缩包到image :docker load --input aa.tar
11.直接把container 导出,然后导入,这样文件大小会大大缩小
docker export test20 -o ./faceexport.tar
gzip --best faceexport.tar
cat /home/faceexport.tar | docker import - face:latest
ln -s /u01 /var/lib/docker/volumes/volu01
docker volume create volu01
docker run -dit --mount source=volu01,target=/u01 --name icdl1 --network=host 93682a1555c1 bash
如果只是-d 没有it,是无法启动的, volu01后边逗号后不能有空格
13.开机启动, 之前已经对卷建立软连接,ln -s /u01 /var/lib/docker/volu01
在/etc/rc.local里面加入如下行
systemctl start docker
docker volume create volu01
docker start icdl1
docker exec -d icdl1 starticdl.sh
其中,starticdl.sh位于container内部/usr/bin/目录下面,内容如下,其中server.py里面,加入了守护程序
#!/bin/bash
cd /idcardDriverlisenceRecog/src/ && python server.py
守护程序部分见:https://blog.csdn.net/northeastsqure/article/details/90515122
14. alpine极简版linux,含有busybox
安装bash: RUN apk add --update bash && rm -rf /var/cache/apk/*
内无管理员权限,在dockerfile里面:USER root
15.docker内部程序开机启动:
cd /idcardDriverlisenceRecog/src/
python /idcardDriverlisenceRecog/src/IDcardVehiclelisenceRecog_facepp_youtu.py
exit 0
16. 让docker 某 container 与docker 一同起来,即永远不停机
docker update CONTAINER --restart always
17. 制作ubuntu1604,docker
从这里连接制作,跟着18命令,https://github.com/tianon/docker-brew-ubuntu-core/tree/010bf9649b1d10e2c34b159a9a9b338d0fdd4939/xenial
18. 从dockerfile得到docker image
docker build --tag='ubuntu1604:Dockerfile' .
19. 运行docker命令,比如docker ps,遇到:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json: dial unix /var/run/docker.sock: connect: permission denied
把当前用户加入到docker组,然后重新登录
sudo usermod -a -G docker $USER
relogin
20. 把文件夹复制到docker container里面,或者拷贝出来
docker cp src/opencv-2.4.13.6 seetaface_ubuntu1604:/
两个参数倒过来,就是拷出来