一、docker基础概念
镜像(images):静态的镜像文件。
容器(container):基于镜像创建的动态系统,类似于虚拟机,可以在里面叠加配置环境、依赖库,并运行代码。
dockerhub:各种镜像源的开放网站,类似于github。
二、docker下载
1、下载
略,待补充
2、验证
在终端输入:
sudo docker run hello-world
运行结果如下表示docker正确安装
3、一些附加内容
(1)nvidia-docker(Ubuntu)
前提:装好docker,有显卡及显卡驱动(nvidia-smi)
sudo apt-get update
sudo apt-get install -y nvidia-docker2
三、docker镜像与容器使用
1、镜像常用命令
(1)查看所有镜像:
docker images
(2)删除某个镜像:
docker rmi image-id
注:image-id为该镜像的id号,删除镜像前需要保障基于该镜像创建的容器被停止并删除
(3)拉取远端镜像,一般在dockerhub中找需要的镜像,如anaconda镜像:
docker pull continuumio/anaconda3
2、容器常用命令
(1)使用docker run命令创建容器
docker run --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,utility --net=host -e NVIDIA_VISIBLE_DEVICES=all -v /home/zhang224-lyzzz/Pycharm-Projects/affineTransform:/home -it --name affinetransform 7c2d99b7e0c6 /bin/bash
docker run --network=host --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all -v /home/docker-code/sdfstudio:/home/colmap-sdf -it --name colmap-sdfstudio e29170b1b6b0 /bin/bash
其中,
--runtime 、-e是对显卡的设置,具体还不太懂,不用改
--name () 为容器的名称
-v (路径):/home 为容器映射的路径
7c2d99b7e0c6 为镜像ID
/bin/bash 为command
(2)查看所有容器:
docker ps -a
(3)查看运行中的容器:
docker ps
(4)启动并连接容器
docker start container-id #启动容器,container-id为容器id
docker attach container-id #连接容器,container-id为容器id
注:需要先用start启动,再用attach连接才能正常进入容器内部操作。
(5)终止容器
docker stop container-id # 停止容器,container-id为容器id
注:直接关闭当前容器的终端窗口并不会终止容器,必须使用此命令。
(6)删除容器
docker rm container-id # 删除容器,container-id 为容器id
四、导入与导出
1、容器导出为镜像
docker export f299f501774c > name.tar
根据容器 ID 将镜像导出镜像tar文件
2、已有镜像(.tar)导入为容器
docker import - image_name < name.tar