docker 命令大全_常用docker命令

docker 命令大全_常用docker命令文章目录Docker——Docker常用命令1、后台启动2、查看日志3、查看进程4、查看元数据5、在运行的容器中执行命令6、连接到正在执行的容器7、数据拷贝Docker——Docker常用命令1、后台启动语法:dockerrun-d镜像名使用实例:以后台方式运行一个容器:dockerrun-dcentos注意:当我们以后台方式启动一个容器时,就必须要有一个前台进程,否则docker容器发现没有应用,就会自动停止。如上图所示,我们在以后台方式运行一个容器后,再查看当

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Docker——Docker 常用命令

1、后台启动

语法:

docker run -d 镜像名

使用实例:

以后台方式运行一个容器:

docker run -d centos

在这里插入图片描述

注意:当我们以后台方式启动一个容器时,就必须要有一个前台进程,否则 docker 容器发现没有应用,就会自动停止。

如上图所示,我们在以后台方式运行一个容器后,再查看当前运行的容器,发现容器自动停止。

2、查看日志

docker logs : 获取容器的日志

语法:

docker logs [OPTIONS] CONTAINER

OPTIONS说明:

名称,简写 默认 描述
–details 显示提供给日志的额外详细信息
–follow , -f 跟踪日志输出
–since 显示自时间戳(例如 2013-01-02T13:23:37Z)或相关(例如 42m 为 42 分钟)以来的日志
–tail,-n all 从日志末尾显示的行数,传递负数或非整数时,默认为all
–timestamps,-t 显示时间戳
–until 在时间戳(例如 2013-01-02T13:23:37Z)或相关(例如 42m 为 42 分钟)之前显示日志

使用实例:

写一段shell脚本并运行:

docker run -d centos /bin/sh -c "while true;do echo wanliguyicheng;sleep 1;done"

运行成功:

在这里插入图片描述

跟踪查看最早的10条日志,并显示时间戳:

docker logs -tf --tail 10 f05c3273a591

在这里插入图片描述

查看最近10分钟的日志:

docker logs --since 10m 容器id

查看某个时间之后的日志:

docker logs -t --since="2021-11-23T10:38:37" 容器id

查看某时间段日志:

docker logs -t --since="2021-11-23T10:38:37" --until "2021-12-23T10:38:37" 容器id

3、查看进程

docker top :查看容器中运行的进程信息,支持 ps 命令参数。

语法:

docker top [OPTIONS] CONTAINER [ps OPTIONS]

容器运行时不一定有/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以使用docker top来实现查看container中正在运行的进程。

使用实例:

查看容器中进程信息:

docker top 0197c43d9498

在这里插入图片描述

查看所有运行容器的进程信息:

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

4、查看元数据

docker inspect : 获取容器/镜像的元数据

语法:

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS说明:

  • f :指定返回值的模板文件。
  • s :显示总的文件大小。
  • type :为指定类型返回JSON。

使用实例:

查看镜像 centos 的元数据:

[root@CHENG /]# docker inspect centos
[
    { 
   
        "Id": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
        "RepoTags": [
            "centos:latest"
        ],
        "RepoDigests": [
            "centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2021-09-15T18:20:05.184694267Z",
        "Container": "9bf8a9e2ddff4c0d76a587c40239679f29c863a967f23abf7a5babb6c2121bf1",
        "ContainerConfig": { 
   
            "Hostname": "9bf8a9e2ddff",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/bash\"]"
            ],
            "Image": "sha256:f5b050f177fd426be8fe998a8ecf3fb1858d7e26dff4080b29a327d1bd5ba422",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": { 
   
                "org.label-schema.build-date": "20210915",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "DockerVersion": "20.10.7",
        "Author": "",
        "Config": { 
   
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "sha256:f5b050f177fd426be8fe998a8ecf3fb1858d7e26dff4080b29a327d1bd5ba422",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": { 
   
                "org.label-schema.build-date": "20210915",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 231268856,
        "VirtualSize": 231268856,
        "GraphDriver": { 
   
            "Data": { 
   
                "MergedDir": "/var/lib/docker/overlay2/d255cc6c74c735197fa066b58845c6e297ce05c1340149b6ed409e5ad8f62efc/merged",
                "UpperDir": "/var/lib/docker/overlay2/d255cc6c74c735197fa066b58845c6e297ce05c1340149b6ed409e5ad8f62efc/diff",
                "WorkDir": "/var/lib/docker/overlay2/d255cc6c74c735197fa066b58845c6e297ce05c1340149b6ed409e5ad8f62efc/work"
            },
            "Name": "overlay2"
        },
        "RootFS": { 
   
            "Type": "layers",
            "Layers": [
                "sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59"
            ]
        },
        "Metadata": { 
   
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

查看正在运行的容器 centos 的 IP:

[root@CHENG /]# docker inspect --format='{ 
   {range .NetworkSettings.Networks}}{ 
   {.IPAddress}}{ 
   {end}}' 0197c43d9498
172.17.0.2

5、在运行的容器中执行命令

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

语法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

  • -d :分离模式: 在后台运行
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端

使用实例:

先查看当前运行的容器,进入运行中容器,并在容器中开启一个交互模式的终端::

docker exec -it 0197c43d9498 /bin/bash

在这里插入图片描述

6、连接到正在执行的容器

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

语法:

docker attach [OPTIONS] CONTAINER

OPTIONS说明:

名称,简写 默认 描述
–detach-keys 覆盖用于分离容器的键序列
–no-stdin 不要附加标准输入
–sig-proxy true 将所有接收到的信号代理到进程

使用实例

连接到正在运行中的容器:

docker attach 0197c43d9498

在这里插入图片描述

docker exec 和 docker attach 的区别

docker exec 和 docker attach 命令都可以进入容器内部;

docker exec -it 命令进入容器如果输入exit命令直接退出container,但是不会使得container停止,平时用这个命令比较多。

docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中使用exit或按CTRL-D,会导致容器的停止。

测试1:先使用 docker attach 连接到容器,使用exit退出,再查看当前正在运行中的容器,发现容器停止了。

在这里插入图片描述

测试2:先使用 docker exec -it 连接到同一个容器,使用exit退出,再查看当前正在运行中的容器,发现容器还在运行。

在这里插入图片描述

7、数据拷贝

docker cp :用于容器内数据拷贝到主机上。

语法:

docker cp  容器id:容器内路径 主机路径

使用实例:拷贝容器内的文件到主机上

首先进入容器,在centos容器内创建一个空文件:

在这里插入图片描述

返回主机,执行拷贝命令:

docker cp 0197c43d9498:/home/test1.md /home

在这里插入图片描述

拷贝成功!

菜鸟教程Docker命令大全:https://www.runoob.com/docker/docker-command-manual.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192614.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • docker(2)CentOS 7安装docker环境[通俗易懂]

    docker(2)CentOS 7安装docker环境[通俗易懂]前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

  • docker 镜像构建_docker生成镜像

    docker 镜像构建_docker生成镜像前言如果我们已经安装了一个python3的环境,如果另一台机器也需要安装同样的环境又要敲一遍,很麻烦,这里可以配置Dockerfile文件,让其自动安装,类似shell脚本Dockerfile编写

  • fast known when vm/docker failover to another machine (Linux exp)

    fast known when vm/docker failover to another machine (Linux exp)

  • docker 访问宿主局域网_docker链接宿主数据库

    docker 访问宿主局域网_docker链接宿主数据库展开全部例如你的62616964757a686964616fe4b893e5b19e31333433626437docker环境的虚拟IP是192.168.99.100,那么宿主机同样会托管一个和192.168.99.100同网段的虚拟IP,并且会是主IP:192.168.99.1,那么就简单了,在容器中访问192.168.99.1这个地址就等于访问宿主机。注意,通过192.168.99.1访问宿…

  • 宿主机ping不通docker容器_kali虚拟机ping不通

    宿主机ping不通docker容器_kali虚拟机ping不通问题描述:  Docker网络模式分为四种,一般我们不设置时默认为bridge单桥模式,容器使用独立的networkNamespace,并连接到docker0虚拟网卡中。通过docker0网桥以及Iptablesnat表配置与宿主机通信。  此时在堡垒机上进行测试,利用busybox进行测试:#拉取镜像dockerpullbusybox#运行容器dockerrun-itd–namebusy_bridgebusybox  指令dockernetworkinspect

  • Docker 导出/导入镜像[通俗易懂]

    Docker 导出/导入镜像[通俗易懂]如果服务器网络不好或者pull不下来镜像,只能在其它网络比较好的机器上pull下来镜像,导出成一个文件,再下载上传到网络不好的机器上,然后再从文件中导出来,这样在网络不好的机器上也能使用docker镜像了。1、导出镜像首先使用dockerimages查看本机镜像,找到他的镜像id,如图所示:然后执行以下命令通过镜像id导出镜像到宿主机$dockersav…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号