超值!Docker 常用命令汇总

Posted CSDN云计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超值!Docker 常用命令汇总相关的知识,希望对你有一定的参考价值。

作者 | 步尔斯特

来源 | CSDN博客

帮助命令

docker version

docker info

docker --help

镜像命令

2.1 列出镜像

docker images [OPTIONS] [REPOSITORY[:TAG]]

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

OPTIONS说明:

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

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

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

当前支持的过滤配置的key为:

  • dangling:显示标记为空的镜像,值只有true和false

docker images -f dangling=true
  • label:这个是根据标签进行过滤,其中lable的值,是docker在编译的时候配置的或者在Dockerfile中配置的

  • before:这个是根据时间来进行过滤,其中before的value表示某个镜像构建时间之前的镜像列表

docker images -f before=true
  • since:跟before正好相反,表示的是在某个镜像构建之后构建的镜像 reference:这个是添加正则进行匹配

docker images -f since=true
  • reference:这个是添加正则进行匹配

docker images --filter reference=*:*

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

docker images --format ".ID\\t.Repository"

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

-q :只显示镜像ID。

2.2 查找镜像

docker search [OPTIONS] TERM

  1. docker search 镜像名字

  2. docker search [OPTIONS] 镜像名字

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

-s : 列出收藏数不小于指定值的镜像。

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

--filter , -f:基于给定条件过滤输出

--format:使用模板格式化显示输出

--limit:Max number of search results ,默认值25

--no-trunc:禁止截断输出

2.3 下载镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

  1. docker pull 镜像名字

  2. docker pull 镜像名字[:TAG]

2.4 删除镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]

  1. docker rmi -f 镜像ID

  2. docker rmi -f 镜像名1:TAG 镜像名2:TAG

  3. docker rmi -f $(docker images -qa)

容器命令

为了更好的学习和演示,我在这里下载一个ubuntu的镜像:

3.1 创建新容器并运行

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

-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: 绑定一个卷

实例

  • 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run --name mynginx -d nginx:latest
  • 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

docker run -P -d nginx:latest
  • 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest
  • 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。

docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
  • 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

docker run -it nginx:latest /bin/bash
  • 启动交互式容器

docker run -it centos /bin/bash

3.2 列出容器

docker ps [OPTIONS]

OPTIONS说明:

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

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

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

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

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

--no-trunc :不截断输出。

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

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

3.3 退出容器

  • 容器停止退出

exit

  • 容器不停止退出

ctrl+P+Q

3.4 启动容器

docker start 容器ID或者容器名

3.5 重启容器

docker restart 容器ID或者容器名

3.6 停止容器

docker stop 容器ID或者容器名

3.7 强制停止容器

docker kill 容器ID或者容器名

3.8 删除已停止的容器

docker rm 容器ID

一次性删除多个容器:

  1. docker rm -f $(docker ps -a -q)

  2. docker ps -a -q | xargs docker rm

3.9 启动守护式容器

docker run -d 容器名

使用镜像ubuntu:latest以后台模式启动一个容器 docker run -d ubuntu

问题:docker ps -a 进行查看, 会发现容器已经退出

很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.

容器运行的命令如果不是那些 一直挂起的命令 (比如运行top,tail),就是会自动退出的。

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。

例如 service nginx start

但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,

这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.

所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行

3.10 查看容器日志

docker logs -f -t --tail 容器ID

  • -t 是加入时间戳

  • -f 跟随最新的日志打印

  • --tail 数字 显示最后多少条

3.11 查看容器内运行的进程

docker top 容器ID

3.12 查看容器内部细节

docker inspect 容器ID

3.13 进入正在运行的容器并以命令行交互

docker exec -it 容器ID bash

重新进入docker attach 容器ID

上述两个区别

  1. attach 直接进入容器启动命令的终端,不会启动新的进程

  2. exec 是在容器中打开新的终端,并且可以启动新的进程

3.14 从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 目的主机路径

命令汇总

项目Value
attach Attach to a running container当前 shell 下 attach 连接指定运行镜像
build Build an image from a Dockerfile通过 Dockerfile 定制镜像
commit Create a new image from a container changes提交当前容器为新的镜像
cp Copy files/folders from the containers filesystem to the host path从容器中拷贝指定文件或者目录到宿主机中
create Create a new container创建一个新的容器,同 run,但不启动容器
diff Inspect changes on a container’s filesystem查看 docker 容器变化
events Get real time events from the server从 docker 服务获取容器实时事件
exec Run a command in an existing container在已存在的容器上运行命令
export Stream the contents of a container as a tar archive导出容器的内容流作为一个 tar 归档文件[对应 import ]
history Show the history of an image展示一个镜像形成历史
images List images列出系统当前镜像
import Create a new filesystem image from the contents of a tarball#从tar包中的内容创建一个新的文件系统映像[对应export]
info Display system-wide information#显示系统相关信息
inspect Return low-level information on a container查看容器详细信息
kill Kill a running containerkill 指定 docker 容器
load Load an image from a tar archive从一个 tar 包中加载一个镜像[对应 save]
login Register or Login to the docker registry server注册或者登陆一个 docker 源服务器
logout Log out from a Docker registry server从当前 Docker registry 退出
logs Fetch the logs of a container输出当前容器日志信息
port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT查看映射端口对应的容器内部源端口
pause Pause all processes within a container暂停容器
ps List containers列出容器列表
pull Pull an image or a repository from the docker registry server从docker镜像源服务器拉取指定镜像或者库镜像
push Push an image or a repository to the docker registry server推送指定镜像或者库镜像至docker源服务器
restart Restart a running container重启运行的容器
rm Remove one or more containers移除一个或者多个容器
rmi Remove one or more images移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run Run a command in a new container创建一个新的容器并运行一个命令
save Save an image to a tar archive保存一个镜像为一个 tar 包[对应 load]
search Search for an image on the Docker Hub在 docker hub 中搜索镜像
start Start a stopped containers启动容器
stop Stop a running containers停止容器
tag Tag an image into a repository给源中镜像打标签
top Lookup the running processes of a container查看容器中运行的进程信息
unpause Unpause a paused container取消暂停容器
version Show the docker version information查看 docker 版本号
wait Block until a container stops, then print its exit code截取容器停止时的退出状态值

往期推荐

Kubernetes 上调试 distroless 容器

「云」上玩法虽多,小心水土不服!

Redis 内存满了怎么办?这样置才正确!

谁还没经历过死锁呢?

点分享

点收藏

点点赞

点在看

以上是关于超值!Docker 常用命令汇总的主要内容,如果未能解决你的问题,请参考以下文章

docker常用命令汇总

Docker 命令以及常用实例汇总

Docker容器常用命令

docker常用命令

Docker 容器 如何用java读取宿主机里的文件?

docker常用命令