abner's Blog


  • 首页

  • 分类

  • 归档

  • 标签

docker日志管理

发表于 2017-05-07 | 分类于 学习总结 | 阅读次数

日志管理

1.查看容器日志

默认情况下, 执行docker logs <CONTAINER ID>可以看到一个容器的输入日志.其中包括STDOUT标准输出和STDERR标准错误输出.但是在有些情况下, 你可能无法查看到一些有用的信息.比如:

  • 如果你在容器中,将文件记录到某个文件,外部服务或者数据库中去.那么信息将无法通过标准输出和标准错误输出进行打印,自然也没法通过docker logs查看到.
  • 如果你的容器运行着一个非交互式进程(如WEB服务器或者数据库),该应用程序可能会将其输出发送到日志文件中去.

第一种情况下,你的日志可以通过其他方式进行处理,你可以不选择使用docker的日志模式输出.第二种情况下,一些官方的镜像解决了这个问题,比如nginx的官方镜像把/var/log/nginx/access.log软连接到了/dev/stdout设备上,并且把/var/log/nginx/error.log同时软连接到而来/dev/stderr设备上.官方的httpd服务则直接将标准输出,错误输出写到相应的设备上.

阅读全文 »

docker管理员手册

发表于 2017-05-07 | 分类于 学习总结 | 阅读次数

管理员手册

1.基础
  • 自定义docker服务的配置文件路径/etc/docker/daemon.json

    1
    2
    3
    4
    5
    6
    7
    8
    # 示例配置文件
    {
    "debug": true,
    "tls": true,
    "tlscert": "/var/docker/server.pem",
    "tlskey": "/var/docker/serverkey.pem",
    "hosts": "tcp://192.168.59.3:2376"
    }
  • 查看docker日志

    1
    journalctl -u docker.service
阅读全文 »

docker网络模式详解

发表于 2017-05-07 | 分类于 学习总结 | 阅读次数

docker网络环境详解

docker的四种网络模式

  • host模式,使用–net=host指定
  • container模式,使用–net=container:NAME_or_ID指定
  • none模式,使用–net=none指定
  • bridge模式,使用–net=bridge指定,默认设置
阅读全文 »

docker安装与系统配置

发表于 2017-05-07 | 分类于 学习总结 | 阅读次数

Docker从零开始


Docker环境

环境 版本
CentOS-7-x86_64-DVD-1611.iso CentOS Linux release 7.3.1611 (Core)
docker Docker version 17.03.1-ce, build c6d412e

Docker版本

docker目前提供企业版Docker Enterprise Edition (Docker EE)和
社区版Docker Community Edition (Docker CE)之分, 由于企业版需要付费支持, 以下内容均基于社区版。

安装docker

1.安装 yum-utils, 提供yum-config-manager命令:

1
$ sudo yum install -y yum-utils

2.设置yum安装源

1
2
3
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

阅读全文 »

flask利用flask-celery实现异步任务

发表于 2017-03-18 | 分类于 学习总结 | 阅读次数

利用celery实现异步ssh任务

以下内容适用于有一定flask和celery基础的同学,如果还不知道他们是什么,请戳这里 Flask中文文档 以及 celery 以及 flask-celery.

直奔主题,先看个最简单的例子,

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
import paramiko
from app import celery
@celery.task() #: 通过celery.task来把某个函数修饰成异步任务
def run_base_ssh_task(ip, cmd, user='root', password='root'):
'''通过paramiko库远程SSH连接某台主机,执行命令,返回结果'''
try:
ssh = paramiko.SSHClient() #: 创建对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #: 允许连接不在know_hosts文件中的主机
ssh.connect(ipaddr, 22, user, password) #: 通过指定 IP,端口,用户名,密码 进行连接
stdin, stdout, stderr = ssh.exec_command(cmd) #: 执行SSH命令
result_status = stdout.channel.recv_exit_status() #: 获取$?的值
return {
'result': True if result_status == 0 else False, #: 如果 $? == 0 ,则表示执行成功
#: 返回标准输出和错误输出内容
'detail': "##### 标准输出 #####\n%s##### 错误输出 #####\n%s" % \
(stdout.read().decode(), stderr.read().decode())
}
except Exception as e:
#: 返回false,并返回异常信息
return {
'result': False,
'detail': str(e),
}

阅读全文 »
abner

abner

扎实的运维体系知识+过硬的开发技能+英语=去Google SRE部门上班,目前=None.

5 日志
1 分类
7 标签
GitHub
友情链接
  • 腾讯
© 2017 abner
由 Hexo 强力驱动
主题 - NexT.Pisces