Docker的常用命令
docker info
显示 Docker 系统信息,包括镜像和容器数。
docker --help
帮助命令
docker images [OPTIONS] [REPOSITORY[:TAG]] 列出本地镜像
[root@iZm5eeq7orgtvuxpgma2f4Z ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 84164b03fa2e 2 months ago 456MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB
[root@iZm5eeq7orgtvuxpgma2f4Z ~]#
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
OPTIONS说明:
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像ID。
docker search [OPTIONS] 名称 搜索镜像
OPTIONS说明:
-f 根据提供的条件过滤输出
--limit 限制最大搜索结果数(默认值25)
---no-trunc 不截断输出
网站地址:https://hub.docker.com/
[root@iZm5eeq7orgtvuxpgma2f4Z ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9500 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3444 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 696 [OK]
[root@iZm5eeq7orgtvuxpgma2f4Z ~]# docker search mysql -f stars=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9500 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3444 [OK]
参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
docker pull [OPTIONS] NAME[:TAG] : 从镜像仓库中拉取或者更新指定镜像
OPTIONS说明:
-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启
-q, --quiet 禁止详细输出
:TAG 可以指定版本拉取,默认为latest
docker rmi [OPTIONS] IMAGE [IMAGE...] : 删除本地一个或多少镜像。
OPTIONS说明:
-f :强制删除;
--no-prune :不移除该镜像的过程镜像,默认移除;
[root@iZm5eeq7orgtvuxpgma2f4Z ~]# docker rmi -f hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b
docker rmi -f $(docker images -qa) 删除全部
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 run -it 470671670cac
查看启动的容器 docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
退出容器 exit
容器停止退出 ctrl +P + Q 容器不停止退出
启动容器 docker start [OPTIONS] <容器id,名称>
OPTIONS说明:
-a, --attach=false 将标准输入、标准输出、标准错误连接到容器,传递所有信号。
-i, --interactive=false 激活标准输入
重启容器 docker restart <容器id,名称>
停止容器 docker stop <容器id,名称>
强制停止容器 docker kill <容器id,名称>
删除容器 docker rm <容器id,名称>
强制删除容器 docker rm -f <容器id,名称>
删除多个容器 docker rm -f ${docker ps -aq}
查看容器日志 docker logs -f -t --tail <容器id>
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
#查看指定时间后的日志,只显示最后30行:
docker logs -f -t --since="2018-02-08" --tail=30<容器id>
#查看最近30分钟的日志:
docker logs --since 30m <容器id>
查看容器内运行的进程 docker top <容器id>
查看容器内部细节 docker inspect <容器id>
进入正在运行的容器并以命令行交互
docker exec -it <容器id> bashShell
[root@iZm5eeq7orgtvuxpgma2f4Z ~]# docker exec -it b05ea3b133be ls -l /tmp
total 8
-rwx------ 1 root root 671 Jan 13 21:49 ks-script-_srt3u3c
-rwx------ 1 root root 1379 Jan 13 21:49 ks-script-gpqu_kuo
[root@iZm5eeq7orgtvuxpgma2f4Z ~]# docker exec -it bfaba42c7727 /bin/bash
[root@bfaba42c7727 /]# ls
bin containerValue dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@bfaba42c7727 /]#
docker attach <容器id>
[root@iZm5eeq7orgtvuxpgma2f4Z ~]# docker attach 92262ecfae22
[root@92262ecfae22 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@92262ecfae22 /]#
区别:
attach: 直接进入容器启动命令终端,不会启动新的进程
exec 是否容器内打开新的终端,并且可以启动新的进程
docker cp 用于容器与主机之间的数据拷贝
将主机/gj/log/gj.log拷贝到容器92262ecfae22的/gj目录下。
docker cp /gj/log/gj.log 92262ecfae22:/gj/
将容器92262ecfae22的/gj/123.log拷贝到主机的/opt目录中。
docker cp 92262ecfae22:/tmp/123.log /opt
提交容器 docker commit -m="提交的描述信息" -a="作者" <容器id> 要创建的目标镜像名:[TAG]
docker stats 命令用来显示容器使用的系统资源

删除<none>镜像
docker rmi $(docker images -f "dangling=true" -q)