• C/S架构:

    •   客户端发出命令给服务器端(内含守护进程),守护进程执行命令后将结果传回给客户端。(可以远程访问,可以本地访问)
  • 容器内部操作:

  

可写层下面都是只读的,操作时需要什么文件会被复制到可写层,原来只读的文件会被隐藏

Docker的操作

  • service docker start #启动服务

  • docker search tutorial       #寻找名字叫做tutorial的镜像名称

容器的操作

  花式启动:

  • docker run learn/tutorial echo 'fuck the world' #利用指定镜像启动一个容器,并执行指定命令
  • docker run learn/tutorial apt-get install ping   #利用指定镜像启动一个容器,并安装软件,此处操作均位于读写层
  • docker run 镜像名字 命令 命令的参数              #这种执行过一次命令之后容器就停止了
  • docker run --name=自定义容器名  -i -t ubuntu /bin/bash      #自定义容器的名字,利用ubuntu镜像启动交互式容器
  • docker run  -i -t image  /bin/bash                       #启动一个交互式的容器,这样可以不断交互的使用容器 -i是启动输入 -t是分配tty
  • docker exec -it 容器ID  bash

  查看容器与情况

  • docker ps -l  或 -a         # -l是查看最新运行的容器,还可以看到容器的状态、执行的命令, -a是查看所有的容器
  • docker ps                      #查看正在运行的容器
  • docker inspect 16cce3a57417 #后接容器名字或ID。查看容器的参数,包括执行的命令、对应的物理路径
  • docker logs [-t 时间戳][-f  一直跟随日志][--tail 10  只显示最新的10条] 容器名或ID   #查看容器内部运行情况(命令和输出)
  • docker top 容器名或ID      #查看容器内的进程情况

  容器的其他操作

  • docker start -i 容器名字或ID   #启动已停止的容器  -i为交互式
  • docker rm 容器ID或名字        #删除已经停止的容器
  • docker  start/stop/restart  -i  容器名字或ID   #重启、停止
  • docker kill 容器名字或ID      #强行直接停止容器

  有关守护模式

  • docker 进入容器后  按下ctrl+P  和ctrl+Q来以守护模式运行docker。守护模式不可交互,通常用来运行应用或者服务
  • docker attach  容器名或ID  从守护模式中重新进入交互模式
  • docker run -d ubuntu  /bin/sh  -c "while 1;do echo fucktheword;sleep 1;done"    # -d代表deattach,从镜像中后台运行,相当于守护模式
  • docker exec -it -d  容器ID或名字  /bin/bash           #在正在运行的容器里增加进程 (-i -t 启用输入、tty  -d:dettach 后台运行)可配合监控服务来监督docker,补刀一个命令

容器的端口映射

  • docker run -P -i  -t ubuntu /bin/bash   #自动随机映射端口
  • # 指定映射端口,如果不指定 在第二次运行容器时容器的IP、宿主机被映射的端口会改变
  • docker run --name='fuck' -p 8188:80 -p 8187:443 -i -t webdevops/php-nginx /bin/bash  #通过-p可以连续指定多个端口映射,是最常用的宿主机/容器映射方法
  • docker port ID或容器名   #查看映射情况

镜像的操作      存储:/var/lib/docker  修改源环境:https://blog.csdn.net/michel4liu/article/details/80747676

cat  /etc/docker/daemon.json
{
"registry-mirrors": ["https://0gkz13he.mirror.aliyuncs.com"]
}

  概念:仓库(repostoary)、源(register)、TAG,仓库:tag可以表示唯一镜像。这里一个一个源头是众多仓库的集合,一个仓库可以有很多镜像(用tag区分),即便一个镜像也可以有不同tag

  • docker pull learn/tutorial   #下载对应的镜像,这里包括  用户名/镜像名
  • docker commit 16cce3a57417 learn/ping    #根据容器更改提交一个镜像,后面接目前容器的ID和 自定义的镜像名字
  • docker images 镜像ID或仓库:tag              #查看对应的镜像
  • docker images                #查看当前有哪些镜像,分别有镜像ID、名称、时间、大小
  • docker  rmi  仓库名:TAG   #仅删除当前TAG
  • docker rmi    镜像ID          # 直接删除镜像及其所有TAG
  • docker push learn/ping #将镜像上传到docker hub或其他镜像仓库
  • docker search  [-s 3]  镜像名       #寻找镜像,对应的 -s 3 寻找3星以上的仓库
  • docker pull   [-a]    仓库名:TAG     #下载对应的仓库和TAG  不添加TAG默认拉latest,加上-a默认拉仓库的所有tag

容器及镜像的备份迁移:

  • docker commit -p 233afe104f41(容器ID)  nginxbackup(自拟定)    #将容器备份成镜像
  • docker save -o ~/nginxback.tar  nginxbackup            #将镜像打包为tar文件存到指定目录
  • docker load -i  ~/nginxback.tar           #将备份的文件恢复为镜像

Docker 备忘的更多相关文章

  1. GIS部分理论知识备忘随笔

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...

  2. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

  3. Vi命令备忘

    备忘 Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所 ...

  4. ExtJs4常用配置方法备忘

    viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { b ...

  5. [备忘] Automatically reset Windows Update components

    这两天遇到Windows 10的更新问题,官方有一个小工具,可以用来修复Windows Update的问题,备忘如下 https://support.microsoft.com/en-us/kb/97 ...

  6. ECMAScript 5(ES5)中bind方法简介备忘

    一直以来对和this有关的东西模糊不清,譬如call.apply等等.这次看到一个和bind有关的笔试题,故记此文以备忘. bind和call以及apply一样,都是可以改变上下文的this指向的.不 ...

  7. MFC通过txt查找文件并进行复制-备忘

    MFC基于对话框的Demo txt中每行一个23位的卡号. 文件夹中包含以卡号命名的图像文件.(fpt或者bmp文件) 要求遍历文件夹,找到txt中卡号所对应的图像文件,并复制出来. VC6.0写的. ...

  8. php 相关模块备忘

    在安装php的时候,不管是编译安装: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  9. 『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因

    近来研究 HttpWebRequest —— 辅助类完成时,POST JSON数据 总会 丢失标头(Headers). HttpWebRequest POST JSON数据,分如下几步: > 将 ...

随机推荐

  1. react+laravel与服务端渲染的几点思考

    一.前后端完全分离 1.用React.js做MVC中的V,剩下的交给Laravel 2.Laravel用来做API接口开发. 3.好处:实现了前后端开发的分离,从而加快前后端开发效率.另外若是多端的如 ...

  2. UiUtils

    import android.app.Activity; import android.app.Dialog; import android.content.Context; import andro ...

  3. 02 MySQL之数据表的基本操作

    01-创建数据表 # 切换数据库 use test_db; # 创建数据表 语法规则如下: create table 表名 ( 字段名1, 数据类型 [列级别约束条件] [默认值], 字段名2, 数据 ...

  4. Linux下通过crontab命令来实现定时任务

    一.crond的介绍 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cr ...

  5. Linux系统管理_主题02 :管好文件(1)_2.4 链接文件_ln

    在 Linux 中,链接有两种:符号链接(symbolic link)和硬链接(hard link).  删除一个符号链接不会影响到这个符号链接指向的目标文件或目 录:  反过来,删除.移动或者重 ...

  6. vue如何获取并操作DOM元素

    原文地址 方法一: 直接给相应的元素加id,然后再document.getElementById("id");获取,然后设置相应属性或样式 方法二: 使用ref,给相应的元素加re ...

  7. 解读Vue.use()源码

    Vue.use() vue.use()的作用: 官方文档的解释: 安装 Vue.js 插件.如果插件是一个对象,必须提供 install 方法.如果插件是一个函数,它会被作为 install 方法.i ...

  8. 【VS开发】【C/C++开发】传递双重指针申请内存,典型用法

    传递双重指针申请内存,典型用法 指针参数是如何传递内存的? 如果函数的参数是一个指针,不要指望用该指针去申请动态内存.如下示例中,Test函数的语句GetMemory(str, 100)并没有使str ...

  9. 使用logstash迁移elasticsearch数据

    支持同集群复制和跨集群复制 优点:通过简单配置即可实现.零编码. 缺点:logstash 单点运行迁移,速度一般. 以es2.2.1  logstash2.2.1 为例 以下logstash 配置功能 ...

  10. python 之魔法方法

    描述符就是将某种特殊类型的类的实例指派给另一个类的属性 例如下面的示例 class MyDecriptor(): def get(self,instance,owner): print("g ...