- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目的是检查给定的容器是否正在运行。为了执行此操作,请使用docker-py SDK。
cli = docker.APIClient()
cli.inspect_container('festive_bell').items()
[(u 'Platform', u 'linux'), (u 'State', {
u 'Status': u 'running',
u 'Pid': 21095,
u 'OOMKilled': False,
u 'Dead': False,
u 'Paused': False,
u 'Running': True,
u 'FinishedAt': u '2020-04-07T05:44:04.870560348Z',
u 'Restarting': False,
u 'Error': u '',
u 'StartedAt': u '2020-04-07T06:01:38.336911997Z',
u 'ExitCode': 0
}), (u 'Config', {
u 'Tty': False,
u 'Cmd': [u '/usr/sbin/apache2', u '-D', u 'FOREGROUND'],
u 'Volumes': None,
u 'Domainname': u '',
u 'WorkingDir': u '',
u 'Image': u 'clever',
u 'Hostname': u 'ce631de52650',
u 'StdinOnce': False,
u 'ArgsEscaped': True,
u 'Labels': {},
u 'AttachStdin': False,
u 'User': u '',
u 'Env': [u 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', u 'APACHE_RUN_USER=www-data', u 'APACHE_RUN_GROUP=www-data', u 'APACHE_LOG_DIR=/var/log/apache2', u 'APACHE_PID_FILE=/var/run/apache2/apache2.pid', u 'APACHE_RUN_DIR=/var/run/apache2', u 'APACHE_LOCK_DIR=/var/lock/apache2'],
u 'ExposedPorts': {
u '80/tcp': {}
},
u 'OnBuild': None,
u 'AttachStderr': True,
u 'Entrypoint': None,
u 'AttachStdout': True,
u 'OpenStdin': False
}), (u 'ResolvConfPath', u '/var/snap/docker/common/var-lib-docker/containers/ce631de52650bd33aba64de9e68140910782c31a1909c3e1c94c68ca77706166/resolv.conf'), (u 'HostsPath', u '/var/snap/docker/common/var-lib-docker/containers/ce631de52650bd33aba64de9e68140910782c31a1909c3e1c94c68ca77706166/hosts'), (u 'Args', [u '-D', u 'FOREGROUND']), (u 'Driver', u 'overlay2'), (u 'Path', u '/usr/sbin/apache2'), (u 'HostnamePath', u '/var/snap/docker/common/var-lib-docker/containers/ce631de52650bd33aba64de9e68140910782c31a1909c3e1c94c68ca77706166/hostname'), (u 'RestartCount', 0), (u 'Name', u '/festive_bell'), (u 'Created', u '2020-04-07T05:24:21.897139852Z'), (u 'ExecIDs', None), (u 'GraphDriver', {
u 'Data': {
u 'MergedDir': u '/var/snap/docker/common/var-lib-docker/overlay2/c3af8ddc069aa1c926535d78b0d5c1e07f177536acb45368cc8444f4d502da97/merged',
u 'WorkDir': u '/var/snap/docker/common/var-lib-docker/overlay2/c3af8ddc069aa1c926535d78b0d5c1e07f177536acb45368cc8444f4d502da97/work',
u 'LowerDir': u '/var/snap/docker/common/var-lib-docker/overlay2/c3af8ddc069aa1c926535d78b0d5c1e07f177536acb45368cc8444f4d502da97-init/diff:/var/snap/docker/common/var-lib-docker/overlay2/8138af7982723c810f02f1b707acd275d9261c62d1e6f4c67d6e3589cf83b63f/diff:/var/snap/docker/common/var-lib-docker/overlay2/14fb3837a32f4f3dd05b270c5c811994f4e033625f9dc8f94cfd9f10cbff9966/diff:/var/snap/docker/common/var-lib-docker/overlay2/a23e9c1df228dc61c6c98ab47dd39729b3e9d554a24109727f6aa8d7cefa9df7/diff:/var/snap/docker/common/var-lib-docker/overlay2/94b00ce80624bc73432ff46ed34360add6307440ae9cb83b8719d8049f9cb41a/diff:/var/snap/docker/common/var-lib-docker/overlay2/ac84626aeb7897672ba3ba127c3349b2a1f89e86fff2c471845638b6979ab63b/diff:/var/snap/docker/common/var-lib-docker/overlay2/4812aae566b997946c099442700d04921177dc3a76404cbabe18cc19c0e355b2/diff:/var/snap/docker/common/var-lib-docker/overlay2/38b9a57fff02beffc436c62583b2e0303a28ffecc58a41d45070989cbfa21632/diff:/var/snap/docker/common/var-lib-docker/overlay2/386f2a9643abd098b7a0696efa94c02abcbaeea392e2e80a3370a420735967bd/diff',
u 'UpperDir': u '/var/snap/docker/common/var-lib-docker/overlay2/c3af8ddc069aa1c926535d78b0d5c1e07f177536acb45368cc8444f4d502da97/diff'
},
u 'Name': u 'overlay2'
}), (u 'Mounts', []), (u 'ProcessLabel', u ''), (u 'NetworkSettings', {
u 'Bridge': u '',
u 'Networks': {
u 'bridge': {
u 'NetworkID': u 'c5e2bf0a28cd19b4bf5ab5bb502b81a1643b4557dd2597b0cb33cefc30207142',
u 'MacAddress': u '02:42:ac:11:00:02',
u 'GlobalIPv6PrefixLen': 0,
u 'Links': None,
u 'GlobalIPv6Address': u '',
u 'IPv6Gateway': u '',
u 'DriverOpts': None,
u 'IPAMConfig': None,
u 'EndpointID': u 'e52af7f500ff3656706ee4f6025fc07d6f8ab05d6291e3f962f903291382ac87',
u 'IPPrefixLen': 16,
u 'IPAddress': u '172.17.0.2',
u 'Gateway': u '172.17.0.1',
u 'Aliases': None
}
},
u 'SecondaryIPv6Addresses': None,
u 'LinkLocalIPv6Address': u '',
u 'HairpinMode': False,
u 'IPv6Gateway': u '',
u 'SecondaryIPAddresses': None,
u 'SandboxID': u '20eb8b028235cdefbca4567b1514eb36938467d3ccd3e5b36bcd3a587e98f10e',
u 'MacAddress': u '02:42:ac:11:00:02',
u 'GlobalIPv6Address': u '',
u 'Gateway': u '172.17.0.1',
u 'LinkLocalIPv6PrefixLen': 0,
u 'EndpointID': u 'e52af7f500ff3656706ee4f6025fc07d6f8ab05d6291e3f962f903291382ac87',
u 'SandboxKey': u '/var/snap/docker/423/run/docker/netns/20eb8b028235',
u 'GlobalIPv6PrefixLen': 0,
u 'IPPrefixLen': 16,
u 'IPAddress': u '172.17.0.2',
u 'Ports': {
u '80/tcp': [{
u 'HostPort': u '9091',
u 'HostIp': u '0.0.0.0'
}]
}
}), (u 'AppArmorProfile', u 'docker-default'), (u 'Image', u 'sha256:dbce8a6db15151a8d96fbdd7abe60a9e0e5d628f33d7cc9923856316b365ac4c'), (u 'LogPath', u '/var/snap/docker/common/var-lib-docker/containers/ce631de52650bd33aba64de9e68140910782c31a1909c3e1c94c68ca77706166/ce631de52650bd33aba64de9e68140910782c31a1909c3e1c94c68ca77706166-json.log'), (u 'HostConfig', {
u 'CpuPeriod': 0,
u 'MemorySwappiness': None,
u 'ContainerIDFile': u '',
u 'KernelMemory': 0,
u 'Memory': 0,
u 'CpuQuota': 0,
u 'UsernsMode': u '',
u 'AutoRemove': False,
u 'BlkioDeviceReadIOps': None,
u 'Dns': [],
u 'ExtraHosts': None,
u 'PidsLimit': 0,
u 'DnsSearch': [],
u 'Privileged': False,
u 'IOMaximumIOps': 0,
u 'CpuPercent': 0,
u 'NanoCpus': 0,
u 'Ulimits': None,
u 'CpusetCpus': u '',
u 'DiskQuota': 0,
u 'CgroupParent': u '',
u 'BlkioWeight': 0,
u 'MemorySwap': 0,
u 'RestartPolicy': {
u 'MaximumRetryCount': 0,
u 'Name': u 'no'
},
u 'OomScoreAdj': 0,
u 'BlkioDeviceReadBps': None,
u 'VolumeDriver': u '',
u 'ReadonlyRootfs': False,
u 'CpuShares': 0,
u 'PublishAllPorts': False,
u 'MemoryReservation': 0,
u 'BlkioWeightDevice': [],
u 'ConsoleSize': [0, 0],
u 'NetworkMode': u 'default',
u 'BlkioDeviceWriteBps': None,
u 'Isolation': u '',
u 'GroupAdd': None,
u 'ReadonlyPaths': [u '/proc/bus', u '/proc/fs', u '/proc/irq', u '/proc/sys', u '/proc/sysrq-trigger'],
u 'CpuRealtimeRuntime': 0,
u 'Devices': [],
u 'BlkioDeviceWriteIOps': None,
u 'Binds': None,
u 'CpusetMems': u '',
u 'Cgroup': u '',
u 'UTSMode': u '',
u 'PidMode': u '',
u 'Runtime': u 'runc',
u 'VolumesFrom': None,
u 'CapDrop': None,
u 'DnsOptions': [],
u 'ShmSize': 67108864,
u 'Links': None,
u 'CpuRealtimePeriod': 0,
u 'IpcMode': u 'shareable',
u 'MaskedPaths': [u '/proc/asound', u '/proc/acpi', u '/proc/kcore', u '/proc/keys', u '/proc/latency_stats', u '/proc/timer_list', u '/proc/timer_stats', u '/proc/sched_debug', u '/proc/scsi', u '/sys/firmware'],
u 'PortBindings': {
u '80/tcp': [{
u 'HostPort': u '9091',
u 'HostIp': u ''
}]
},
u 'SecurityOpt': None,
u 'CapAdd': None,
u 'CpuCount': 0,
u 'DeviceCgroupRules': None,
u 'OomKillDisable': False,
u 'LogConfig': {
u 'Config': {},
u 'Type': u 'json-file'
},
u 'IOMaximumBandwidth': 0
}), (u 'Id', u 'ce631de52650bd33aba64de9e68140910782c31a1909c3e1c94c68ca77706166'), (u 'MountLabel', u '')]
def checkContainerStatus(containers):
container_status = {}
active=[]
inactive=[]
not_found=[]
if containers:
for container in containers:
inspect_dict = cli.inspect_container('festive_bell')
state = inspect_dict['State']
is_running = state['Status'] == 'running'
if is_running:
active.append(container)
else:
inactive.append(container)
container_status= {'active':active,'inactive':inactive,'not_found':not_found }
print(container_status)
最佳答案
您想要由State
给出的inspect
字段,该字段应类似于:
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 10268,
"ExitCode": 0,
"Error": "",
"StartedAt": "2020-04-07T06:56:19.940744112Z",
"FinishedAt": "0001-01-01T00:00:00Z"
}
Status
或
Running
检查容器是否正在运行:
cli = docker.APIClient()
inspect_dict = cli.inspect_container('festive_bell')
state = inspect_dict['State']
is_running = state['Status'] == 'running'
# or
is_running = state['Running'] == 'true'
if is_running:
print("My container is running!")
关于python - 需要检查容器是否在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61074074/
我需要根据需要动态设置文本区域,但它不想正常工作。 JQuery 会自行检查,但无法检查是否已检查。但是当您在第二个单选框内单击时,始终需要文本区域。我尝试了很多次让它工作,但它仍然有问题。我添加了“
我需要在 Django 中进行 API 调用(某种形式),作为我们所需的自定义身份验证系统的一部分。用户名和密码通过 SSL 发送到特定 URL(对这些参数使用 GET),响应应该是 HTTP 200
我将在我的可移植 C 代码中使用 #warning 来生成编译时警告。但并非所有平台都支持 #warning。有什么方法可以找到该平台是否支持 #warning。 #ifdef warning
我编写了一个函数来检查某个数字是否存在于某个区间内。停止搜索的最佳方法是什么?这个: for (i = a; i <= b; i++) { fi = f(i); if (fi == c) {
我想知道在 c 中是否有一种方法可以检查,例如在 for 函数中,如果变量等于或不等于某些字符,而不必每次都重复进行相等性检查。如果我没记错的话,以这种方式检查相等性是不正确的: if (a == (
我有如下日志功能 void log_error(char * file_name, int line_num, int err_code) { printf("%s:%d:%s\n", fil
使用 ssh-keygen 生成的 key 对在 macOS 上可以有不同的格式。 macOS 可读的标准 PEM ASN.1 对象 SecKey API 带有文本标题的 PEM OpenSSH ke
我正在尝试编写一个 excel if 语句。我不熟悉使用 Excel 具有的所有额外功能。我正在使用一个名为 importXML() 的函数.我正在尝试检查我正在使用的函数是否生成“#VALUE!”错
有没有办法检查是否没有 AIO 写入给定文件?我在我的 Unix 类(class)上制作了一个项目,该项目将是一个上下文无关(基于 UDP)的国际象棋服务器,并且所有数据都必须存储在文件中。应用程序将
我有一个如下所示的函数: public Status execute() { Status status = doSomething(); if (status != Stat
我正在使用 Composer,我不希望 PhpStorm 在 vendor 文件夹上运行任何错误检查或检查,因为它对 vendor/中的某些代码显示误报composer/autoload_static
Chapel 的一个很好的特性是它区分了数组的域和它的分布。检查两个数组是否具有相同的域和分布(通常想要的)的最佳方法是什么? 我能看到的最好的方法是检查 D1==D2和 D1.dist==D2.di
在我的 JavaScript 函数中,我为所有输入、文本区域和选择字段提供实际值作为 initial_value: $('input, textarea, select').each(function
我正在编写一个分解为几个简单函数的 PHP 类。在构造函数中,它调用另一个名为 processFile 的函数。该函数调用 5 个私有(private)函数并进行检查。如果检查失败,它会将消息分配给
这个问题已经有答案了: How to detect if user it trying to open a link in a new tab? (2 个回答) 已关闭 7 年前。 我认为 JavaS
我正在浏览我们的代码库并看到很多这样的测试: declare @row_id int = ... declare @row_attribute string select @row_attribu
我正在声明一个用作比较的函数。我的问题是: 为什么条件充当语句? 为什么第 4 行可以工作,而第 5 行却不行? 我知道这段代码不切实际且未使用,但为什么编译器允许这种语法? 谷歌没有找到答案。但话又
到目前为止,我有一个带有空文本字段的 PHP Kontaktform,并使用以下命令检查了所需的字段: $name = check_input($_POST['name'], "请输入姓名。"); 现
目前,我能想到的合理检查的唯一方法没有臃肿的逻辑: if ( $value > 0 ) { // Okay } else { // Not Okay } 有没有更好的办法? 最佳答案
我正在尝试运行一个脚本,如果 i 存在(意味着存在 i 值,任何值)或其他部分,我希望运行其中的一部分如果i没有值就运行,有人可以启发我吗? 我说的是 for 循环,比如 for (var i=0;
我是一名优秀的程序员,十分优秀!