Docker常用命令
帮助命令
- docker version ## 显示Docker版本信息
- docker info ## 显示Docker系统信息,包括镜像数、容器数、正在运行的镜像数、暂停的镜像数、停止的镜像数等
- docker –help ## 显示docker指令的信息
- docker 指令 –help ## 显示具体某一个docker指令的可选项docker 指令 –help ## 显示具体某一个docker指令的可选项
镜像命令
docker images
- docker images ## 显示你本地主机上(买的服务器或安装的Linux虚拟机)所有下载的镜像信息
执行该指令之后,信息显示如上图所示,对每个标签的解释如下:
- REPOSITORY ## 镜像的仓库源(也就是镜像名)
- TAG ## 镜像的标签(也就是镜像的版本,如果不指定,则默认为lastest,也就是最新版)
- IMAGE ID ## 镜像的ID(同一个镜像的不同版本,拥有不同的镜像ID)
- CREATED ## 镜像的创建时间
- SIZE ## 镜像的大小
通过docker images –help可以看到该指令的一些可选项,现对几个常用的可选项做一解释:
- -a ## 列出本地所有镜像
- -q ## 只列出镜像的ID
- --digests ## 显示镜像的摘要信息
docker search
- docker search 某个镜像的名称 ## 搜索镜像,例如:docker search mysql
- NAME ## 镜像名
- DESCRIPTION ## 镜像描述
- STARS ## 收藏数(类似于GitHub上的STARS,STARS越多,表示越受欢迎,下载次数越多)
如果我们只想搜索STARS不小于5000的镜像呢?我们可以采用一些过滤条件。
通过docker search –help指令来查看一些可选参数。从图中可以看出,我们可以采用-f或–filter filter指令来进行过滤。
- 以下四种方式均可
- docker search –filter=stars=5000 mysql
- docker search –filter stars=5000 mysql
- docker search -f=stars=5000 mysql
- docker search -f stars=5000 mysql
docker pull
- docker pull mysql ## 下载镜像(这里如果不指定TAG,默认就是lastest最新版)
- docker pull mysql:5.7 需要注意的是,这个镜像的版本一定得是DockerHub上有的版本。不然会下载
docker rmi
首先使用docker rmi –help来看一下这个命令都有哪些可选项。如下图所示:
可以看到有-f参数
- 删除镜像
- docker rmi -f 镜像id ## 删除单个镜像
- docker rmi -f 镜像名:tag 镜像名:tag ## 删除多个
- docker rmi -f $(docker images -qa) ## 删除全部
容器命令
有镜像才能创建容器,我们这里使用centos的镜像来测试,就是虚拟一个centos
新建容器并启动(docker run)
docker run命令就是docker create和docker start命令的组合
docker run [OPTIONS] 镜像名 [COMMAND][ARGS…]
常用可选参数以及解释
--name ## 给容器取一个名字
--rm ## 容器退出后,自动删除容器
-i ## 以交互模式运行容器,通常与-t同时使用,即-it
-t ## 分配一个虚拟的终端,在docker中启动bash就会有提示符,通常与-i通知使用,即-it
-d ## 在后台运行容器。等同于进入容器后按Ctrl+P+Q。所以可以docker attach回去。在后台运行的容器,只能通过网络和它交互。
-p ## 设置端口转发。-p:hostport:containerport
测试如下:
使用centos进行交互模式启动容器,在容器内执行/bin/bash命令
由上图可以看出,地址已经变成容器内部了。
列出所有运行的容器(docker ps)
- docker ps [OPTIONS]
我们首先使用docker ps –help指令来看一下都有哪些可选参数:
- -a ## 列出所有正在运行的容器 + 历史运行过的容器
- -l ## 列出最近创建的一个容器以及该容器的信息
- -n int ## 列出最近n个创建的容器以及容器的信息
- -q ## 列出容器的编号
- -s ## 列出容器的大小
容器退出(exit、Ctrl+P+Q)
- exit ## 容器停止并退出
- Ctrl + P + Q ## 容器不停止退出,也就是进入后台模式,等同于docker run的参数 -d
删除容器(docker rm)
- docker rm 容器id ## 删除指定容器
- docker rm -f $(docker ps -aq) ## 删除所有容器(常用)
- docker ps -aq xargs docker -rm ## 删除所有容器(不常用)
常用其他命令
后台启动容器 (-d)
- docker run -d 容器名 ## 后台启动容器
- 问题: 使用docker ps 查看,发现容器已经退出了!
- 解释:Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令,就会自动退出。
- 比如,你运行了nginx服务,但是docker前台没有运行应用,这种情况下,容器启动后,会立即自杀,因为他觉得没有程序了,所以最好的情况是,将你的应用使用前台进程的方式运行启动。
查看日志(docker logs)
- docker logs 容器id
docker logs有以下可选参数:
- -t ## 显示时间戳
- -f ## 打印最新的日志
- --tail 数字 ## 数字—显示多少条
查看容器中运行的进程信息(docker top)
- docker top 容器id
查看容器 / 镜像的元数据(docker inspect)
- docker inspect 容器id
进入正在运行的容器
docker exec
这个命令是用已经运行的容器执行命令。需要注意的是,如果容器关闭后再次运行,那么用exec命令执行的命令是不会自己再次执行的
- docker exec 容器id
- -d ## 让命令在后台执行
- -e ## 设置环境变量
- -it ## 使用交互模式进入
- -u -w ## 分别设置命令运行的用户和work directory。也就是如果要改变用户或者工作目录,就是用-u或-w
docker attach
attach命令把一个后台运行的容器搞到前台来,这样就可以看到他们的输出,并且使用输入了。
- docker attach 容器id
attach命令的可选参数如下:
- --no-stdin ## 关闭输入
- --sig-proxy ## 信号转发,默认开启,这样DMD进程就可以收到你的信号了
区别
exec是在容器中打开新的终端,并且可以启动新的进程
attach是直接进入容器启动命令的终端,不会启动新的进程
从容器内拷贝文件到主机上(docker cp)
docker cp 容器id:容器内路径 目的主机路径
例如:
docker cp f261f17bb39d:/home/f1 /home
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2021/09/14/dockerml/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!