我们为什么需要Docker? 没有docker遇到的问题:
docker和虚拟机的区别:
从图中可以看到,docker比虚拟机更省内存。
流程为:你可以通过Docker Client要求Docker daemon运行某一个image,daemon就会在系统查找这个image,如果找到了就 run the container forked from that image,否则pull the image from the Docker registry and create a container from the image.
如上图所示是Docker client要求daemon: pull a Redis image、run the Ubuntu image. 这些交流是通过Docker server提供的APIs完成的。
docker的内容默认保存到 /var/lib/docker
查看保存路径 docker info | grep "Docker Root Dir"
这里是三个比较权威的安装教程,你也可以选择直接看我给出的代码块
# Ubuntu
#卸载旧版本docker
sudo apt-get remove docker docker-engine docker-ce docker.io
#清空旧版docker占用的内存
sudo apt-get remove --auto-remove docker
#更新系统源
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#更新
sudo apt-get update
# 查看有哪些可以安装的版本
apt-cache madison docker-ce
#安装5:19.03.6~3-0~ubuntu-bionic版
sudo apt-get install -y docker-ce=5:19.03.6~3-0~ubuntu-bionic
# 重启docker
sudo systemctl restart docker
# 配置阿里云镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7ixh250y.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证
sudo docker version
sudo docker run hello-world
# 安装docker-compose
sudo apt install python3-pip
sudo apt-get update
sudo pip3 install --upgrade pip
sudo pip3 install docker-compose
docker-compose --version
# 安装NVIDIA Container Toolkit
# 首先要确保已经安装了nvidia driver
# 添加源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
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 && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
# 测试 NVIDIA gpu
# 其中最后的参数nvidia/cuda:10.0-base 是Nvidia官方的镜像,
# 需要根据工作站主机中实际安装的cuda版本进行修改,版本可以用nvcc -V查看。
# 进入容器之后可以跑一下nvidia-smi命令看看
sudo docker run -it --name test_nvidia_docker -p 26006:6006 --gpus all nvidia/cuda:10.0-base