Skip to content

查看连接到某个bridge的容器列表

  • 命令:docker network inspect docker-network,docker-network为bridge的名称

  • 示例:Containers下就是连接到此bridge的容器信息,注意Name是连接到bridge时起的别名

    json
    [
        {
            "Name": "docker-network",
            "Id": "4ea6303b9e76af77019a5838f806bc911e2938f3060cd6f9800527c5f1ba3ef3",
            "Created": "2025-06-18T07:32:25.61475669Z",
            "Scope": "local",
            "Driver": "bridge",
            "EnableIPv4": true,
            "EnableIPv6": false,
            "IPAM": {
                "Driver": "default",
                "Options": {},
                "Config": [
                    {
                        "Subnet": "172.18.0.0/16",
                        "Gateway": "172.18.0.1"
                        ]
                    },
                    "Internal": false,
                    "Attachable": false,
                    "Ingress": false,
                    "ConfigFrom": {
                    	"Network": ""
                    },
            "ConfigOnly": false,
            "Containers": {
                "9c824dbf9ba7470466a026d4d6a5b7189e446a041f66c2cc983b9d4d341efc14": {
                    "Name": "carb_ignite_api",
                    "EndpointID": "2fc3fa7ffa88bcce205b910a611157cd9ee7b80ee574cbd9a4a2aeb11490f6f3",
                    "MacAddress": "6e:e4:64:da:39:6d",
                    "IPv4Address": "172.18.0.3/16",
                    "IPv6Address": ""
                },
                "b8bcc1fbbcf68b9739653e340c246b320e970920f8dc2c6bb54b65e3808ab64f": {
                    "Name": "mysql",
                    "EndpointID": "2cb1b55c11bc80634a19090280fb93697fde27f45b80fb3039864a852e793690",
                    "MacAddress": "b2:0d:b5:b2:cd:82",
                    "IPv4Address": "172.18.0.2/16",
                    "IPv6Address": ""
                }
            },
            "Options": {
                "com.docker.network.enable_ipv4": "true",
                "com.docker.network.enable_ipv6": "false"
            },
            "Labels": {}
        }
    ]

docker pull命令常用参数详解

  • 基本语法

    shell
    docker pull [选项] [镜像名[:标签]]
  • 参数详解

    • --all-tags:指定拉取该镜像的所有标签
    • --quiet:只显示拉取过程中的简要信息
    • --registry-mirror:指定一个镜像仓库的地址
    • --registry:指定一个完整的镜像仓库地址,需要包含协议和端口号
  • docker pull类图

    image-20250725112638566

docker run命令常用参数详解

  • -d:在后台以守护进程模式运行容器

    shell
    # 示例
    docker run -d image_name
  • -it:以交互模式运行容器

    shell
  • --name xxx:指定容器名称

    shell
    # 示例
    docker run --name container_name image_name
  • -p 80:8080:将主机端口80映射到容器端口8080,这样用户可以通过访问http://localhost:80来访问容器中8080端口的服务

    shell
    # 示例
    docker run -p host_port:container_port image_name
  • -v:挂载主机的文件或者目录到容器内部

    shell
    # 示例
    docker run -v host_path/container_path image_name
  • -e或者--env:设置容器环境变量

    shell
    # 示例
    docker run -e =value image_name
  • --restart

镜像相关

  • 查看当前镜像

    shell
    docker images
  • 删除指定镜像(该镜像未被容器使用)

    shell
    docker rmi <image_id>
     docker rmi <image_name>:<image_tag>
  • 删除指定镜像(该镜像正在被某个容器使用)

    shell
    docker rmi -f <image_id>
     docker rmi -f <image_name>:<image_tag>
  • 查找并删除所有包含关键字的镜像

    shell
    docker images | grep "关键字" | awk '{print $3}' | xargs docker rmi -f
    shell
    # 更简洁的写法
    docker rmi -f $(docker images | grep "关键字" | awk '{print $3}')
  • 注意:删除镜像后,如果该镜像仍被容器使用,则该容器无法运行

  • 保存镜像

    • docker save:将一个或多个镜像保存成一个tar归档文件

      shell
      # 语法
      docker save -o <保存路> <镜像名>:<>
      shell
      # 示例: 将名为 nginx 的镜像保存为 nginx.tar
      docker save -o nginx.tar nginx:latest
  • 加载镜像

    • docker load:从tar文件中加载镜像

      shell
      # 语法
      docker load -i <保存路>
      shell
      # 从 nginx.tar 文件中加载镜像
      docker load -i nginx.tar

容器相关

  • 查看所有容器(包括正在运行的和停用的)

    shell
    docker ps -a
  • 查看当前正在运行的容器

    shell
    docker ps
  • 查看当前正在运行的容器名称

    shell
    docker ps --format "{{.Names}}"
  • 查看所有容器名称(包括已停止的)

    shell
    docker ps -a --format "{{.Names}}"
  • 查看容器详细信息

    shell
    docker inspect --format="{{.Name}}" <container_id>
  • 停止容器

    shell
    docker stop <container_id>
  • 删除容器(停止容器后,删除)

    shell
    docker rm <container_id>
  • 删除容器(容器正在运行,强制删除)

    shell
    docker rm -f <container_id>
  • 删除关联的数据卷(删除容器的同时删除和容器关联的数据卷)

    shell
    docker rm -v <container_id>

日志相关

  • 查看容器日志

    shell
    docker logs <container_id>
  • 查看容器日志(实时查看容器日志,他的作用是持续跟踪并输入出指定容器的日志内容)

    shell
    docker logs -f <container_id>
  • 查看容器日志(限制显示日志行数)

    shell
    # 查看最新10行日志并实时更新
    docker logs -f --tail=10 <container_id>
  • 查看容器日志(包含指定字符串的上下文各20行的日志)

    shell
    docker logs <container_id> | grep -C 20 "查询关键字"
    • 特殊情况:当查看的关键字为 "-----" 时,grep会将它解释为一个选项,而不是要查找的文本,所以会报错 grep: unrecognized option '------',解决方法:使用 -- 参数声明该关键字不是命令行选项

      shell
      docker logs <container_id> | grep -C 20 -- "------"
  • 查看容器日志(包含指定字符串的上下文的前几行和后几行分别指定)

    shell
    # 匹配行前10行后20行上下文的日志
    docker logs <container_id> | grep -B 10 -A 20 "查询关键字"

重启策略 --restart

  • Docker容器重启策略

    • --restart=no 默认策略,在容器退出时不重启容器
    • --restart=on-failure 在容器非正常退出(退出状态非0)时重启容器
    • --restart=on-failure:n 在容器非正常退出(退出状态非0)时重启容器,并且指定重启次数,如果不指定次数,则会一直重启
    • --restart=always 只要容器退出就重启容器
    • --restart=unless-stopped 在容器退出时总是重启容器,但是 Docker 守护进程启动之前就已经停止运行的容器不算在内
  • 设置重启策略

    • 在创建容器时指定重启策略

      shell
      docker run --name <container_name> --restart=always <image_name>
    • 修改已经创建好的容器的重启策略

      shell
      docker update --restart=always <container_name>
    • 如果使用了Docker Compose管理容器,可以修改docker-compose.yml里面的值

      yaml
      version: '3'
      services:
      	my_service:
      		image: my_image
      		restart: always

MIT版权,未经许可禁止任何形式的转载