常用参数

docker build

  • -f:指定要使用的dockerfile的文件路径
  • -t/--tag:镜像的名字及标签,比如 x_webapp:v1

docker run

  • -d:让容器在后台运行,并返回容器ID;没这个run的时候会进入容器内
  • -i:以交互模式运行容器,通常与 -t 同时使用
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • --name:为容器命名,比如 --name python_flask表示将该容器命名为python_flask
  • -p:端口映射(宿主机端口:容器端口),-p 8080:22 表示把容器内的22端口映射到宿主机上的8080端口
  • --gpus:将宿主机上的GPU资源加载到容器中,--gpus all 表示加载所有可用GPU。
  • --privileged:给容器权限去连接主机上的其他设备,就像使用这些设备或资源的主机一样,比如连接到nvidia的GPU资源。
  • -m:设置容器能用的内存最大值
  • -v:挂载一个路径地址,比如 -v /root/xxx/docker_tuto : /workspace 表示将宿主机上/root/xxx/docker_tuto/文件夹地址挂载(视为镜像)到容器内的/workspace上

常用场景案例

  1. 手动建立镜像
    docker build -f Dockerfile -t python_flask:v1 .
  2. 容器化并运行
    docker run -d -p 8090:8090 --name flask_app python_flask:v1
  3. 容器化并运行(同步容器内时间与宿主机系统时间一致)
    docker run -d -p 8090:8090 -v /etc/localtime:/etc/localtime --name flask_app python_flask:v1
  4. 容器化并运行(使用gpu资源,挂载文件路径,使用远程hub的pytorch/pytorch镜像)
    docker run -p 10001:22 --gpus all -itd --name pytorch_gpu --privileged=true -v /root/xxx/docker_tuto:/workspace pytorch/pytorch /bin/bash
  5. 查看正在使用的容器
    docker ps
  6. 查看所有容器
    docker ps -a
  7. 查看所有镜像
    docker images
  8. 查看容器logs(下述xxx用containerID前三位替代)
    docker logs xxx
  9. 交互模式去容器中操作命令行(下述xxx用containerID前三位替代)
    docker exec -it xxx bash
  10. 停止容器(下述xxx用containerID前三位替代)
    docker stop xxx
  11. 删除容器(下述xxx用containerID前三位替代)
    docker rm xxx
  12. 删除镜像(下述xxx用imageID前三位替代)
    docker rmi xxx

额外参考