zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Docker---Docker基本命令

2023-03-14 22:53:51 时间

帮助命令

  • docker version

显示docker的版本信息

  • docker info

显示docker的系统信息,包括镜像和容器的数量

  • docker 命令 --help

帮助命令,可查看命令的所有操作

中文文档地址https://www.runoob.com/docker/docker-command-manual.html

官方文档地址https://docs.docker.com/reference/

镜像命令

  • docker images

查看所有本地主机上的镜像

-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

–digests :显示镜像的摘要信息;

-f :显示满足条件的镜像;

–format :指定返回值的模板文件;

–no-trunc :显示完整的镜像信息;

-q :只显示镜像ID。

image

各参数含义:

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

  • docker search 搜索镜像

–automated :只列出 automated build类型的镜像;

–no-trunc :显示完整的镜像描述;

-f <过滤条件>:列出收藏数不小于指定值的镜像。

image

各参数含义:

NAME: 镜像仓库源的名称

DESCRIPTION: 镜像的描述

OFFICIAL: 是否 docker 官方发布

stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

AUTOMATED: 自动构建。

  • docker pull 镜像下载

-a :拉取所有 tagged 镜像

–disable-content-trust :忽略镜像的校验,默认开启

image

默认下载最新版本,也可以规定下载版本(前提是官网有)

docker pull 镜像:版本号

  • docker rmi 删除镜像

-f :强制删除;

–no-prune :不移除该镜像的过程镜像,默认移除;

image

删除所有容器

docker rmi -f $(docker images -aq)

容器命令

  • docker run 新建并启动容器

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-P: 随机端口映射,容器内部端口随机映射到主机的端口

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

–name=“nginx-lb”: 为容器指定一个名称;

–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

-h “mars”: 指定容器的hostname;

-e username=“ritchie”: 设置环境变量;

–env-file=[]: 从指定文件读入环境变量;

–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;

-m :设置容器使用内存最大值;

–net=“bridge”: 指定容器的网络连接类型,支持bridge/host/none/container: 四种类型;

–link=[]: 添加链接到另一个容器;

–expose=[]: 开放一个端口或一组端口;

–volume , -v: 绑定一个卷

image

也可以绑定容器的 8080 端口,并将其映射到本地主机的 80 端口上。

docker run -p 127.0.0.1:80:8080/tcp centos bash

退出正在运行的容器

exit 容器停止退出

Ctrl + P + Q 容器不停止退出

  • docker ps 列出正在运行的容器

-a :显示所有的容器,包括未运行的。

-f :根据条件过滤显示的内容。

–format :指定返回值的模板文件。

-l :显示最近创建的容器。

-n :列出最近创建的n个容器。

–no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小。

image

各参数含义:

CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

  • docker rm 删除容器

-f :通过 SIGKILL 信号强制删除一个运行中的容器。

-l :移除容器间的网络连接,而非容器本身。

-v :删除与容器关联的卷。

image

删除所有已停止的容器

docker rm $(docker ps -a -q)

  • docker start 启动容器
    image
  • docker restart 重启容器
    image
  • docker stop 停止容器
    image
  • docker kill 杀死正在使用的容器
    image

其他命令

日志

  • docker logs 查看日志

-f : 跟踪日志输出

–since :显示某个开始时间的所有日志

-t : 显示时间戳

–tail :仅列出最新N条容器日志

image

进程信息

  • docker top 查看容器进程信息
    可使用ps命令参数
    image
    查看所有容器进程信息

for i in docker ps |grep Up|awk '{print $1}';do echo &&docker top $i; done

查看元数据

  • docker inspect 查看容器或镜像的元数据

-f :指定返回值的模板文件。

-s :显示总的文件大小。

–type :为指定类型返回JSON。

image

进入容器

  • docker exec 在运行的容器中执行命令

-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

image

  • docker attach 连接到正在运行中的容器。

千万不要用它来测在执行死循环操作的容器,官方文档说可以ctrl + c 强制退出,实则退出不了。

  • 两种进入容器方法的比较

docker exec 进入一个新的终端,可以再里面进行操作 (常用)

docker attach 进入容器正在执行的终端,不会产生新的进程

拷贝文件

  • docker cp 在容器和主机之间进行数据拷贝

-L :保持源目标中的链接

这里就不放图了,权限不够被禁止拷贝了。