docker ubuntu 安装
apt install docker
nvidia docker 安装
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
docker 容器安装
docker pull ubuntu 默认安装ubuntu最新版本 也可以加版本号 docker pull ubuntu:16.04
这个时候可以使用docker images 命令查看拉取docker 镜像
接着要创建容器 docker run -p 8080:8080 -it ubuntu "/bin/bash" 创建好就直接进入了
如果需要映射多个端口可以在加一个-p 111:1111
需要退出执行 exit 如果退出时不想容器停止运行可以 Ctrl + P + Q
这个时候使用docker ps -a 查看创建的容器
如果要再次进入容器先执行 docker start 容器ID 在执行 docker attach 容器ID 这个时候再次敲下回车就进入了容器
删除容器 docker rm 容器ID
如果想要保存当前的修改内容使用 docker commit 容器ID 镜像:版本(这个是可以自己命名例如:mydocker:1.0)
在执行docker images 就能看到了
提交到镜像服务器 docker push 镜像:版本
容器打标签 docker tag 镜像:版本 新镜像:版本
删除镜像 docker rmi 镜像:版本
如果需要打包docker 镜像 可以执行 docker save -o 镜像名字.tar 镜像:版本(mydocker:1.0)
加载镜像 docker load --input 镜像名字.tar
以上就是docker 使用的完整流程
容器开启启动 --restart=always
设置内存和cpu -m 1024M --cpus=0.2
如果需要更新已启动的容器配置参数 执行 docker update --restart=always 容器ID
自己的容器如果不加-it 为啥启动不起来https://www.jianshu.com/p/f1e7a1630c64
多个docker 之间使用进程通信,首先需要使用 docker run -v /docker_root:/docker_root 把同一个宿主机上的文件目录挂在到多个不同的docker 这样多个docker 就可以实现共享数据了,如果使用有名管道就可以在多个docker 之间进行通信了
docker 查看本地镜像服务器所有容器 curl http://192.168.8.45:5000/v2/_catalog
docker 查询镜像所有标签(版本) curl -XGET http://192.168.8.45:5000/v2/镜像名称/tags/list
另外现在最新版本的docker 19.03.8 执行的时候已经可以不用加sudo 了
启动 sudo systemctl start docker
守护进程重启 sudo systemctl daemon-reload
重启docker服务 sudo systemctl restart docker
重启docker服务 sudo service docker restart
关闭docker sudo service docker stop
关闭docker sudo systemctl stop docker
另外 docker run , exec , attach 的区别
- docker run;创建和启动一个新的容器实例,操作对象是镜像,选项较多,如果你要创建和启动一个容器,只能用run;
- docker exec: 在已运行的容器中,执行命令,操作对象是容器,如果你要进入已运行的容器,并且执行命令,用exec;
- docker attach: 同样操作的是已运行的容器,可以将本机标准输入(键盘输入)输到容器中,也可以将容器的输出显示在本机的屏幕上,如果你想查看容器运行过程中产生的标准输入输出,用attach;
nvidia docker : https://hub.docker.com/r/nvidia/cuda/tags