Docker常用命令

本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2022-07-06

帮助启动类命令

  • 启动docker:systemctl start docker
  • 停止docker: systemctl stop docker
  • 重启docker: systemctl restart docker
  • 查看docker状态:systemctl status docker
  • 开启启动:systemctl enable docker
  • 查看docker概要信息:docker info
  • 查看docker总体帮助文档:docker help
  • 查看docker命令帮助文档:docker 具体命令 --help

镜像命令

docker images

列出本地主机上的镜像:docker images-a列出本地所有镜像,-q只显示镜像id,-qa显示本地所有镜像的id。

  • REPOSITORY: 镜像的仓库源;
  • TAG: 镜像的版本号
  • IMAGE ID: 镜像id
  • CREATED: 镜像创建时间
  • SIZE: 镜像大小

查找某个镜像(在远程仓库上查找)docker search 镜像名字,使用 docker search --limit 5 镜像名字 只列出前5条。

  • NAME:镜像名字
  • DESCRIPTION: 镜像说明
  • STARS: 点赞数量
  • OFFICIAL: 是否是官方的
  • AUTOMATED: 是否是自动构建的
  • 拉取某个镜像:docker pull 镜像名字[:TAG],不使用TAG,默认下载最新版latest。
  • 查看镜像/容器/数据卷所占的空间:docker system df
  • 删除某个镜像:docker rmi 镜像名字/id,加-f可强制删除,删除多个docker rmi -f 镜像名1:TAG 镜像名2:TAG,删除全部docker rmi -f $(docker images -qa)

虚悬镜像

即仓库名和标签都是都是<none>的镜像。

容器命令

docker run

新建、启动容器

# 如果本地没有对应镜像 会自动去远程拉取 所以可以直接run 而不用先pull
docker run [OPTIONS] IMAGES [COMMAND] [...ARGS]

options说明如下:

  • –name=“容器新名字”:为容器指明一个名称,不指定系统随机分配一个
  • -d: 后台运行并返回容器id,也即启动守护式容器(后台运行);
  • -i: 以交互模式运行容器,通常与-t同时使用
  • -t: 为容器重新分配一个伪输入终端,通常与-i同时使用,两者结合即启动交互式容器,前台有伪终端等待交互
  • -P: 随机端口映射,大写P。
  • -p: 指定端口映射,小写p,如-p 8080:80,宿主机端口:容器端口。

示例如下:

# 交互模式启动一个容器(根据redis镜像),并在容器内执行bash命令
docker run -it redis bash
docker run -it redis /bin/bash
docker run -it redis redis-cli

docker ps

列出所有正在运行的容器

  • -a: 列出当前所有正在运行的容器+历史上运行过的
  • -l: 显示最近创建的容器
  • -n: 显示最近n个创建的容器,docker ps -n 1
  • -q: 静默模式,只显示容器编号

exit

退出容器

  • exit: run进去容器,exit退出,容器停止
  • ctrl+p+q: run进去容器,ctrl+p+q退出,容器不停止。

docker start

启动已停止运行的容器:docker start 容器名/容器ID

docker restart

重启容器:docker restart 容器名/容器ID

docker stop

停止容器:docker stop 容器名/容器ID

docker kill

强制停止容器:docker kill 容器名/容器ID

docker rm

删除已停止的容器:docker rm 容器名/容器ID-f 强制删除,强制删除所有容器docker rm -f $(docker ps -qa) 或者使用管道符 docker ps -qa | xargs docker rm -f

docker logs

查看容器日志:docker logs 容器id

docker top

查看容器内运行的进程:docker top 容器id

docker inspect

查看容器内部细节:docker inspect 容器id

docker exec

进入正在运行的容器并以命令行交互:docker exec -it 容器id bash,还有一个docker attach 容器id。区别在于,attach直接进入容器启动命令的终端,不会启动新的进程,使用exit退出会导致容器停止。exec是在容器中打开新的终端,并且可以启动新的进程,使用exit退出,不会导致容器的停止。

docker cp

从容器内拷贝文件到宿主机上:docker cp 容器id:容器内路径 主机目录

# 将容器上的a.txt拷贝到 /opt目录下
docker cp 容器id:/tmp/a.txt /opt

从宿主机拷贝文件到容器上:docker cp 主机目录 容器id:容器内路径

# 拷贝某个文件到 /usr/dist牡蛎下
docker cp /opt/test.js  容器id:/usr/dist

# 拷贝opt整个文件夹 到容器/usr/dist 目录下
docker cp /opt  容器id:/usr/dist

# 拷贝opt下所有文件到容器 /usr/dist 目录下
docker cp /opt/. 容器id:/usr/dist

docker export / docker import

导出: docker export 容器id > xx.tar,导出到当前目录。 导入:cat xx.tar | docker import - 镜像用户/镜像名:镜像版本号

docker stats

查看容器的CPU、内存以及网络流量等数据:docker stats