Docker常用命令[2]

Docker命令 基本都可以使用 --help查看,比如 docker --help;  docker run --help

 

帮助命令

docker version

docker info

docker --help  // 可以看到可用的命令及解释

镜像命令

  • 列出本机中的所有镜像
docker images [OPTIONS]

OPTIONS 说明:
-a 列出本地所有的镜像(含中间映射层)
-q 只显示镜像ID
--digests 显示镜像的摘要信息
--no-trunc 显示完整的镜像信息

这些参数可以使用--help查看,如 docker images --help
  • 查找镜像
docker search 镜像名称
  • 拉取镜像
docker pull 镜像名称[:TAG]

TAG没写,则默认拉取latest
  • 删除镜像
删除镜像 docker rmi 镜像名称/镜像id
删除单个 docker rmi [OPTIONS] 镜像ID
删除多个 docker rmi [OPTIONS] 镜像名1:TAG 镜像名2:TAG
删除全部 docker rmi -f $(docker images -qa)

OPTIONS 说明:
-f       Force removal of the image
--no-prune  Do not delete untagged parents
  • 创建镜像

   当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求,或者需要修改镜像时,我们可以通过以下两种方式对镜像进行更改。

    1、从已经创建的容器中更改镜像,并且提交这个镜像

docker commit -m=""提交的描述信息 -a="作者" 容器ID 要创建的目标镜像名:[标签名]

docker commit 提交副本使之成为一个新的镜像

    2、使用 Dockerfile 指令来创建一个新的镜像

    DockerFile解析[5]

 docker build 命令用于使用 Dockerfile 创建镜像。

docker build -t guiji/myCentos:v1 .      // 使用当前目录的 Dockerfile 创建镜像,标签为 guiji/myCentos:v1  
                         // 注意最后有个点,默认使用当前路径下的名为"Dockerfile"的文件进行构建
docker build github.com/creack/docker-firefox  // 使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像
docker build -f /opt/dockerTest/Dockerfile .   // 通过 -f Dockerfile 文件的位置
-f :指定要使用的Dockerfile路径;
-t: 镜像的名字及标签;
  • 镜像构建历史
docker history 镜像ID/镜像名  # 需要显示完整信息,加上--no-trunc=true
  • 更新镜像
在运行的容器内使用 apt-get update 命令进行更新。
在完成操作之后,输入 exit 命令来退出这个容器。
通过命令 docker commit 来提交容器副本
  • 推送镜像到仓库 
docker push

阿里云开发者云平台
https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
先创建命名空间,然后创建仓库名

从阿里云拉取镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/mycentos:[镜像版本号]
推送镜像:
docker login registry.cn-hangzhou.aliyuncs.com // 阿里云容器控制台,基本信息页面会有介绍 (输入阿里云账户全名,密码是镜像仓库的密码,不是阿里云登录密码!)
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/命名空间/mycentos:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/命名空间/mycentos:[镜像版本号]
  • 导出镜像
docker export
  • 导入镜像
docker import

容器命令

  • 查看容器
docker ps [OPTIONS]       // 查看当前运行中的容器
docker ps -a           // 查看所有容器
  • 运行容器

docker run --name demo_nginx -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
docker run -itd centos /bin/bash
docker run -d centos // 这样的话创建容器之后会立即关闭,docker ps -a进行查看,会发现容器已经退出。因为Docker容器后台运行,就必须有一个前台进程。

说明:
--name          给启动的容器指定一个名称,不指定的话会随机生一个
-i              以交互模式运行容器,通常与-t同时使用
-t              为容器重新分配一个伪输入终端,通常与-i同时使用
-d              后台运行容器,并返回容器ID,也即启动守护式容器
-p 8080:80      (小写p)宿主机端口:Docker容器内端口
-P:        (大写P)随机端口映射
/bin/bash: 放在镜像名后的是命令,这里我们希望有个交互式的shell。因此用的是 /bin/bash
-v         数据卷挂载 主机文件路径:容器内文件路径:ro (:ro 代表只读)
-e         环境变量 key=value 形式
  • 进入容器

  在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:  

docker attach [OPTIONS] CONTAINER
docker exec [OPTIONS] CONTAINER      // 推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

docker exec -it 6daa936f0564 /bin/bash
  • 退出容器
exit    // 容器停止退出;docker exec进入时,exit退出容器,容器不会停止

ctrl+P+Q  // 容器不停止退出
 
  • 查看容器日志
docker logs -f -t --tail 3 容器ID 

-t 是加入时间戳
-f 跟随最新的日志打印
--tail 数字显示最后多少条
  • 查看容器内的进程
docker top 容器ID
docker stats #查看各容器cpu、内存占用率
  • 查看容器内部细节
docker inspect 容器ID  // 返回的是个json格式的信息
  • 文件拷贝
docker cp 容器ID:容器内路径 目的主机路径
docker cp 宿主机文件路径 容器ID:容器内路径
  • 停止容器
docker stop 容器ID或容器签名(names)
docker kill 容器ID或容器签名(names) // 强制停止容器
  • 启动容器
docker start 容器ID或容器签名(names)
  • 重启容器
docker restart 容器ID或容器签名(names)
  • 删除容器
docker rm 容器ID或者容器签名(names)
docker rm -f $(docker ps -a -q) 删除全部容器

小总结:

 

原文地址:https://www.cnblogs.com/dong320/p/13871737.html