docker 快速查询容器是否正常启动

简介: docker 快速查询容器是否正常启动

目录

一、docker基础命令(运维版)

1.1 docker——run 指令

1.2 查看docker版本命令——docker version/docker -v

1.3 查看docker信息——docker info

1.4 查看镜像——docker images

1.5 查看所有状态容器——docker ps -a

1.6 docker帮助命令文档——docker --help

二、docker 镜像操作

2.1 搜索镜像(公共仓库)——docker search

2.2 下载镜像——docker pull

2.3 查看镜像列表——docker images

2.4 获取镜像信息——-docker inspect

2.5 添加镜像标签——docker tag

2.6 删除镜像——docker rmi

2.7 批量删除镜像

2.8 导出/导入镜像——docker save/load

三、容器操作

1、查询所有容器运行状态——docker ps -a

2、创建容器——docker create

3、 启动容器——docker start

4、 启动容器(一次性执行)—— docker run

5、查看容器ip地址——docker inspect

6、进入容器——docker exec

7、容器导出/导入——docker export

8、删除容器——docker rm -f

9、查看docker消耗的资源状态

总结

1、如果镜像优化?

2、怎么看当下有多大号容器,怎么看当下所有容器占用的I/O有多少,占用内存多少?

3、容器有哪些状态?

4、overlay2由哪几部分组成 ?

一、docker基础命令(运维版)
1.1 docker——run 指令
docker run hello-world

run指令 运行

检测本地有没有该镜像(没有的话直接到docker hub上下载)

②create(将镜像创建为容器)+ start 将创建好的容器运行起来
1.
2.
3.
4.
5.
6.
7.

工作流程

docker client客户端连接到了服务端(服务端是以一个守护进程的形式跑在操作系统里面的) restful api典型的c/s架构
由docker服务端的守护进程从docker hub 上下载了镜像(Ps:服务端会先检查本地系统是否有这个镜像)
服务端创建了一个新的容器,然后从拉去的这个镜像启动了一个容器,容器执行了脚本/可执行程序让我们可以查看/使用(client)
docker 服务端把这些信息流(传递)返回到客户端并展示出来,(展示在终端上)docker client可以是多种形式,比如"docker"命令工具所在的终端
1.2 查看docker版本命令——docker version/docker -v
docker version
docker -v
1.
2.

1.3 查看docker信息——docker info
[root@docker ~]#: docker info

可以用该命令统计每一个状态的容器有多少个

Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
scan: Docker Scan (Docker Inc., v0.17.0)

Server:
Containers: 1 #容器的链接数量
Running: 0 #正在运行的容器数量
Paused: 0 #暂停的容器数量
Stopped: 1 #停止的容器数量
Images: 1 #统计的容器数量
Server Version: 20.10.17 #docker的版本

Storage Driver: overlay2 #存储引擎,早期有一段用的是aufa存储引擎,可以把多个目录叠在在一起后挂载到同一个目录一下

Backing Filesystem: xfs #后端文件系统
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs #linux中资源控制,资源管理的驱动:cgroupfs
Cgroup Version: 1
Plugins: #插件
Volume: local

镜像默认保存位置。可以不保存在本地,docker是以引擎的方式架设在linux之上的。

Network: bridge host ipvlan macvlan null overlay

所支持的默认的网络类型。bridge(桥接)、host(主机)、ipvlan(三层模式划分vlan)、macvlan(二层模式划分vlan)、null(躺平:不与别人交互)、overlay(叠加网络)

Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
Default Runtime: runc #默认运行时的版本
Init Binary: docker-init
containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc version: v1.1.2-0-ga916309
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-957.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2 #总计CPU
Total Memory: 3.683GiB #总计内存
Name: docker
ID: CTMC:DX4A:IMJD:XGTA:HOGY:PQP2:TIX6:P7GX:OQM3:PHBZ:SXQD:FSQY
Docker Root Dir: /var/lib/docker #docker家目录
Debug Mode: false
Registry: https: //index.docker.io/v1/ #默认仓库
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8

Live Restore Enabled: false

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.

1.4 查看镜像——docker images

查看下载到本地的所有镜像

docker images
1.
2.

REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像,经过md5方式加密过;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;
1.5 查看所有状态容器——docker ps -a
docker ps -a #-a 选项可以显示所有的容器
1.

字段说明 CONTAINER

ID:容器的ID号
IMAGE:加载的镜像
COMMAND :运行的程序
CREATED :创建时间
STATUS:当前的状态
PORTS:端口映射
NAMES:名称
1.6 docker帮助命令文档——docker --help
docker --help
1.
二、docker 镜像操作
2.1 搜索镜像(公共仓库)——docker search
默认是在公共仓库找,如果有私有仓库,会在私有仓库找

格式:docker search 关键字

示例:

docker search nginx
docker search centos:7
——》同时我们也可以自己制作镜像推送到docker hub上
1.
2.
3.
4.
5.

2.2 下载镜像——docker pull

格式:docker pull 仓库名称[:标签]

如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。

docker pull centos:7
docker pull nginx
1.
2.
3.
4.

2.3 查看镜像列表——docker images
docker images
1.

2.4 获取镜像信息——-docker inspect

格式:docker inspect 镜像ID

示例:查看nginx镜像信息

docker inspect 41b0e86104ba
1.
2.
3.

2.5 添加镜像标签——docker tag

格式:docker tag 名称:[旧标签] 新名称:[新标签]

示例:

docker tag nginx:latest nginx:lnmp #给nginx打上标签lnmp,原来的标签是latest
1.
2.
3.

2.6 删除镜像——docker rmi
docker rmi是docker rm image的简写

格式:

docker rmi 仓库名称:标签 #当一个镜像有多个标签时,只是删除其中指定的标签
docker rmi 镜像ID号 #会彻底删除该镜像
1.
2.
3.

2.7 批量删除镜像

docker images -q 可以加载镜像id

批量删除所有镜像

docker rmi docker images -q

批量删除nginx镜像

docker rmi docker images|grep "nginx"
1.
2.
3.
4.
5.
6.
7.

2.8 导出/导入镜像——docker save/load

导出镜像

格式:docker save -o 存储文件名 存储的镜像

docker save -o nginx_v1 nginx:latest #存出镜像命名为nginx存在当前目录下
scp nginx_v1 @root:192.168.59.111:/opt #将导出的镜像以scp方式导到别的服务器上

导入镜像,可以异地导入,但是必须要有docker引擎,并且版本不可以差太多

格式:docker load < 存出的文件

docker load < nginx_v1
1.
2.
3.
4.
5.
6.
7.
8.

导出镜像

导入镜像

三、容器操作
1、查询所有容器运行状态——docker ps -a
docker ps -a
1.

2、创建容器——docker create
新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

格式:docker create [选项] 镜像

常用选项:

-i:让容器的输入保持打开
-t:让 Docker 分配一个伪终端

示例:

docker create -it nginx:latest /bin/bash
1.
2.
3.
4.
5.
6.
7.
8.
9.

3、 启动容器——docker start

格式:docker start 容器的ID/名称

docker start b2a57b3ea48a
docker ps -a
1.
2.
3.

4、 启动容器(一次性执行)—— docker run

加 -d 选项让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。

示例1:

docker run -itd nginx:latest /bin/bash

示例2:执行后退出

docker run centos:7 /usr/local/bash -c ls /

示例3:执行后不退出,以守护进程方式执行持续性任务

docker run -d centos:7 /usr/local/bash -c "while true;do echo hello;done"
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
示例1:

示例2:

示例3:

5、查看容器ip地址——docker inspect

格式:docker inspect 容器id

docker ps -a #先查看运行时容器的id
docker inspect ba8d61d35e32
1.
2.
3.

先查看运行时容器的id

查看容器ip地址

6、进入容器——docker exec
进入容器的容器状态必须是up状态

和shell 是两种运行模式

docker run -it会创建前台进程,但是会在输入exit后终止进程。
docker attach会通过连接stdin,连接到容器内输入输出流,会在输入exit后终止容器进程
docker exec -it 会连接到容器,可以像sSH一样进入容器内部,进行操作,可以通过exit退出容器,不影响容器运行。

需要进入容器进行命令操作时,可以使用 docker exec 命令进入运行着的容器。

格式:docker exec -it 容器ID/名称 /bin/bash

-i 选项表示让容器的输入保持打开;
-t 选项表示让 Docker 分配一个伪终端。

示例:进入(三种方式)

docker run -itd centos:7 /bin/bash #先运行容器
docker ps -a
①使用run进入,可以使用ctrl+d退出,直接退出终端
docker run -it centos:7 /bin/bash

②想永久性进入,退出后还是运行状态,用docker exec
docker ps -a
docker exec -it b99e0771c4e1 /bin/bash

③docker attach,会通过连接stdin,连接到容器内输入输出流,公在输入exit后终止容器进程(临时性的,不推荐)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
①使用run进入,是一次性进入

②永久性进入,用docker exec

7、容器导出/导入——docker export
用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。

导出格式:docker export 容器ID/名称 > 文件名

docker export b99e0771c4e1 > centos_7

导入格式:cat 文件名 | docker import – 镜像名称:标签

法①
docker import centos_7 centos:v1 #导入后会生成镜像,但不会创建容器
法②
cat centos_7 |docker import - centos:v2
1.
2.
3.
4.
5.
6.
7.
8.

导出

导入

法①:

法②:

8、删除容器——docker rm -f

格式:docker rm [-f] 容器ID/名称

1.#不能删除运行状态的容器,只能-f强制删除,或者先停止再删除
docker rm 3224eb044879

2.#已经退出的容器,可以直接删除
docker rm 1270a6791069

3.#基于名称匹配的方式删除
docker rm -f distracted_panini

4.#删除所有运行状态的容器
docker rm -f docker ps -q

5.#删除所有容器
docker rm -f docker ps -aq

6.#有选择性的批量删除 (正则匹配)
docker ps -a l awk ' {print "docker rm "$1}'l bash

7.#删除退出状态的容器
for i in `dockef ps -a l grep -i exit / awk '{print $1}' '; do docker rm -f $i;done
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
1.#不能删除运行状态的容器,只能-f强制删除,或者先停止再删除

2.#已经退出的容器,可以直接删除

9、查看docker消耗的资源状态
docker stats
1.

总结
1、如果镜像优化?
有效减少镜像大小(dockerfile 优化方向-》对于部分企业而言,是一种升阶面试题)
2、怎么看当下有多大号容器,怎么看当下所有容器占用的I/O有多少,占用内存多少?
使用docker stats命令查看

3、容器有哪些状态?
Docker容器可以有四种状态:

运行
已暂停
重新启动
已退出
4、overlay2由哪几部分组成 ?
LowerDir

MergedDir

UpperDir

WorkDir

docker 快速查询容器是否正常启动 docker如何查看容器
https://blog.51cto.com/u_14555/6468616

目录
相关文章
|
19天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
164 77
|
27天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
5天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
48 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
11天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
35 3
实战~如何组织一个多容器项目docker-compose
|
5天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
24 4
|
20天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
66 3
|
27天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
64 3
|
27天前
|
存储 安全 数据安全/隐私保护
Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。
在数字化时代,Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。本文探讨了 Docker 应用的备份与恢复策略,涵盖备份的重要性、内容、方法及常见工具,制定备份策略,恢复流程及注意事项,并通过案例分析和未来趋势展望,强调备份与恢复在保障应用安全中的重要性。
35 2
|
27天前
|
存储 安全 数据中心
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
45 1
|
27天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
67 7