Docker
从无到有搭建服务器Docker环境至少需要有以下步骤:
①下载安装Docker
②添加Docker用户组
③设置Docker镜像加速
④安装Docker GPU支持(nvidia container toolkit)
镜像
查找镜像:
从docker hub手动寻找需要的镜像
或
用docker search指令查找镜像
关于image_name,有两种方式指定image,一种是REPOSITORY:TAG;另一种是IMAGE ID
docker search image_name
拉取镜像:
(国内需要先配置docker镜像加速)
docker pull image_name
查看镜像:
docker image ls
删除镜像:
docker rmi image_name
容器
创建容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-it:进入容器bash(注意:用此方法进入容器bash后,exit会使容器关闭)
-d:后台运行容器
--name:命名容器
-P:容器内部端口映射到指定主机端口
-p:容器内部端口映射到指定主机端口(可以映射多个,使用多个-p映射)
--gpus all:添加GPU支持(需要安装nvidia-container-toolkit)(也可用指定固定gpu --gpus="1")
-v:挂载服务器路径到容器路径(容器路径若不存在会自动创建)
示例:
docker run --gpus all -p 主机端口:容器端口 -v 主机路径:容器路径 --name container_name -d -t image_name
查看运行中的容器:
docker ps
查看现存容器:
docker ps -a
启动容器:
docker start container_name
进入运行中的容器:
# 以此指令进入时,exit不会关闭container
docker exec -it container_name /bin/bash
# 以此指令进入时,exit会关闭container
docker attach container_name
退出容器 bash:
exit
停止容器:
docker stop container_name
删除容器:
docker rm container_name
将容器保存为镜像:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
示例:
docker commit container_name pepository_name:tag
拷贝宿主机文件到容器(文件夹也是同样操作,另想从容器拷到宿主机只需调换顺序即可)
当拷贝文件夹时,无法覆写,需要先删除docker原有的文件夹:
docker cp SRC_PATH CONTAINER:DEST_PATH
查看容器日志:
docker logs container_name
清理缓存
docker system prune --volumes
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all volumes not used by at least one container
- all dangling images
- all dangling build cache