镜像

查看本地所有镜像

  1. docker images

拉取远程镜像

  1. docker pull centos/mysql-57-centos7

搜索镜像

  1. docker search 镜像名称

docker删除镜像

  1. docker rmi 镜像ID # 删除一个镜像
  2. docker rmi `docker images -q` # 删除所有

save和export区别:

  1. docker save保存的是镜像(image),docker export保存的是容器(container);
  2. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
  3. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。

导入镜像

  1. docker load -i *.tar

导出镜像

后面的镜像名称不能使用id代替,否则导入的时候会没有名称

  1. docker save -o redis.tar redis:4.0

容器

查看容器

  1. docker ps # 正在运行的
  2. docker ps a # 所有的

创建容器

  1. docker run -di --name=容器名称 镜像名称:标签
  2. # 目录挂载和映射(创建容器的时候)
  3. docker run -di \
  4. -m 300M \ # 最大内存
  5. --cpus=21 \ # 最大使用21个核
  6. -v /usr/local/myhtml:/usr/local/myhtml \ # 文件映射
  7. -p 6379:6379 \ # 端口映射
  8. --name=mycentos3 \ # 起名字
  9. centos:7 # 镜像

一次性容器:有时候我们希望推出容器立即删除,添加—rm参数即可。

  1. docker run -it --rm hub.baidubce.com/paddlepaddle/paddle:latest-dev /bin/bash

启动-停止-删除

  1. docker start 容器名称(或者容器ID
  2. # 停止容器
  3. docker stop 容器名称(或者容器ID
  4. # 删除
  5. docker rm 容器名称(容器ID

登录容器

  1. # 登录容器
  2. docker exec -it 容器名称 (或者容器ID) /bin/bash

查看单个容器信息

  1. docker inspect 容器名称(容器ID
  2. # 直接查看ip:
  3. docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID

复制文件

  1. # 复制到容器
  2. docker cp 需要拷贝的文件或目录 容器名称:容器目录
  3. # 从容器中复制出来
  4. docker cp 容器名称:容器目录 需要拷贝的文件或目录

日志

  1. docker logs 容器名

监视容器资源

  1. # 查看容器消耗资源情况
  2. docker stats name # 查看单个容器实时情况
  3. docker stats --no-stream name # 查看单个容器当时情况
  4. docker stats $(docker ps --format={{.Names}}) # 查看所有容器情况

容器导出

  1. docker export b91d9ad83efa > tomcat80824.tar

容器导入

  1. docker import tomcat80824.tar
  2. docker import export.tar <IMAGE NAME>:<IMAGE TAG>

容器转新镜像

commit会在当前环境内,把容器理解生成一个新的镜像

  1. docker commit <CONTAINER ID> <IMAGE NAME>:<IMAGE TAG>
  2. docker commit b0cb1543380d elasticsearch:latest

容器打标签

  1. docker tag <IMAGE ID> <IMAGE NAME>:<IMAGE TAG>

指定 GPU

  1. docker run -it --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=1 需要启动的docker名称 bash
  2. 也可以--gpus=all