Docker的常用命令

2020-05-16  本文已影响0人  程序员小杰

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 命令用来显示容器使用的系统资源

image.png

删除<none>镜像

docker rmi $(docker images -f "dangling=true" -q)
上一篇 下一篇

猜你喜欢

热点阅读