子曰,温故而知新

今日,再次看书之际,又寻得docker的几条使用命令,用小本本记下来

配置docker镜像源

当我们在拉去一些共有镜像时,默认,docker会向docker.io去获取,如果在拉取的过程中出现下载速度慢的情况呢,其实可以试试用一些国内的镜像源,例如:daocloud镜像站
官方文档: https://www.daocloud.io/mirror
仅需要一条明明足以

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

当前命令适用于Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1
执行完毕后,需要重启一下docker

# systemctl restart docker

如果在重启的过程中报错:

Apr  :: localhost systemd: Starting Docker Application Container Engine...
Apr  :: localhost dockerd-current: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '}' looking for beginning of object key string
Apr  :: localhost systemd: docker.service: main process exited, code=exited, status=/FAILURE

这是由于配置json文档的格式出错了

,则需要将/etc/docker/daemon.json文件中后面那个,号给删掉即可,例如

修改前:

{"registry-mirrors": ["http://f8214db2.m.daocloud.io"],}

修改后:

{"registry-mirrors": ["http://f8214db2.m.daocloud.io"]}

再次重启docker即可

查看docker 最新的log
使用docker logs -ft 即可
-f: 动态输出
-t: 增加时间戳
--tail n: 获取最新输出的n条
例如:

# docker logs -ft -- centos_name_1
--20T13::.366905000Z
--20T13::.368079000Z lo: flags=<UP,LOOPBACK,RUNNING> mtu
--20T13::.368478000Z inet 127.0.0.1 netmask 255.0.0.0
--20T13::.368746000Z inet6 :: prefixlen  scopeid 0x10<host>
--20T13::.369000000Z loop txqueuelen  (Local Loopback)
--20T13::.371869000Z RX packets  bytes  (0.0 B)
--20T13::.374114000Z RX errors  dropped  overruns  frame
--20T13::.374525000Z TX packets  bytes  (0.0 B)
--20T13::.374886000Z TX errors  dropped  overruns  carrier  collisions
--20T13::.375426000Z

查看docker进程
使用docker top命令可以查看docker中的进程
例如:

# docker top centos_name_1
UID PID PPID C STIME TTY TIME CMD
root    : pts/ :: /bin/bash
#

查看docker容器的负载

# docker stats centos_name_1

CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
centos_name_1  KiB /  MiB  MB /  kB  MB 

docker自重启
在docker run 时,加入--restart=[always,on-failure:[number]]
--restart=always :docker 自动重启
--restart=on-failure :docker 只有在退出码非0的时候才会重启
--restart=on-failure:3 在退出码状态为非0的时候,重启,最多重启3次

例子 --restart=always :

# docker run -d --restart=always  nginx

创建一个docker 容器,现在来删除它

# ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'

#
# ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'

# docker ps
ONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
d1ed69cb3238        nginx                minutes ago       Up  seconds       ->/tcp   affectionate_wiles
# 

我们可以发现,kill后进程又起来了

例子 --restart=--restart=on-failure:

# docker run -d --restart=on-failure: nginx
6fabc743a488a857909ac4f1472a7f1012e2224e300da70aa15c1cb8f5db0767
# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
6fabc743a488        nginx                seconds ago       Up  seconds        /tcp              cocky_heisenberg
# 
#  ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'

#
#  ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'

#
#  ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'

#
#  ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
# 

发现,在重启两次后,该容器不重启了。

其实基础真的很重要~~~

再谈docker基本命令的更多相关文章

  1. CI Weekly #6 | 再谈 Docker / CI / CD 实践经验

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  2. 再谈 Go 语言在前端的应用前景

    12 月 23 日,七牛云 CEO & ECUG 社区发起人许式伟先生在 ECUG Con 2018 现场为大家带来了主题为<再谈 Go 语言在前端的应用前景>的内容分享. 本文是 ...

  3. 七、docker基本命令

    Docker 基本命令 docker的基本命令 docker version :查看docker的版本号,包括客户端.服务端.依赖的Go等 [root@centos7 ~]# docker versi ...

  4. Docker 基本命令和使用

    Docker 基本命令 systemctl start docker : 启动 Docker systemctl stop docker : 停止 Docker systemctl restart d ...

  5. [转载]再谈百度:KPI、无人机,以及一个必须给父母看的案例

    [转载]再谈百度:KPI.无人机,以及一个必须给父母看的案例 发表于 2016-03-15   |   0 Comments   |   阅读次数 33 原文: 再谈百度:KPI.无人机,以及一个必须 ...

  6. Support Vector Machine (3) : 再谈泛化误差(Generalization Error)

    目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...

  7. Unity教程之再谈Unity中的优化技术

    这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体   这一步主要是为了针对性能瓶颈中的”顶点 ...

  8. 浅谈HTTP中Get与Post的区别/HTTP协议与HTML表单(再谈GET与POST的区别)

    HTTP协议与HTML表单(再谈GET与POST的区别) GET方式在request-line中传送数据:POST方式在request-line及request-body中均可以传送数据. http: ...

  9. 15个Docker基本命令及用法

    Docker入门教程:15个Docker基本命令及用法   本文中,我们将学习15个Docker命令以及命令的用法和功能,并通过实践学习它是如何工作的. AD:51CTO 网+ 第十二期沙龙:大话数据 ...

随机推荐

  1. ARTS打卡计划第一周-Share-系统字典模块的设计

    在软件开发的过程,经常有一些类型的字段信息:性别.学历.职级.车辆类别.公司类型.结算类型等.这些字段有2个特征:1是字段可选的类型是有限,2是字段可能会变化,我们把这种字段描述为字段字段.  本篇文 ...

  2. MySQL 自带4个默认数据库

    默认数据库分类: information_schema performance_schema mysql test informance_schema 保存了MySQl服务所有数据库的信息. 具体My ...

  3. ES中的分词器

    基本概念: 全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Token(词元), 这些算法称为Tokenizer(分词器), 这些Token会被进一步处理, 比如转成小写等, 这 ...

  4. MySQL实现批量检查表并进行repair与optimize的方法

    这篇文章主要介绍了MySQL实现批量检查表并进行repair与optimize的方法,结合实例形式分析了MySQL批量修复与优化表的相关技巧,需要的朋友可以参考下 本文实例讲述了MySQL实现批量检查 ...

  5. js事件不能触发

    在span标签添加了个onclick事件,捣腾了半天触发不了,设置z-index:1000也没用. 最后发现是元素没设置宽度width导致的,压根儿没往这方面想. 因为添加onclick的span标签 ...

  6. 项目中PO、PM的职责区分

    PO是product owner,是一个role,负责与stakeholders打交道,提炼stakeholders的需求,按照需求的价值以及紧急程度安排优先级.PO是一个角色,对product ba ...

  7. 切面编程AOP之KingAOP

    1. 在Nuget上安装KingAOP 2. 创建一个新的类 public class Test : IDynamicMetaObjectProvider { public DynamicMetaOb ...

  8. WebSocket 实现链接 群聊(low low low 版本)

    py 文件: """ 下载 gevent-websocket 0.10.1 基于Flask + geventWebSocket 建立连接,发送消息,实现群消息功能. &q ...

  9. functools 之 partial(偏函数)

    当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单.当然,decorator(装饰器) 也可以实现, ...

  10. JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)

    面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...