1. Docker应用:
镜像:包含了启动Docker容器所需要的文件系统层级及其内容;基于UnionFS采用分层结构实现;

bootfs,rootfs

registry:保存docker镜像及镜像层次结构和元数据;
repository:由具有某个功能的镜像的所有相关版本构成的集合;
index:管理用户的账号、访问权限、镜像及镜像标签等等相关的;
graph:从registry中下载的Docker镜像需要保存在本地,此功能即由graph完成;
/var/lib/docker/graph,

与镜像相关的命令:
images
search
pull
push
login
logout

创建镜像:commit, build
删除本地镜像:rmi

容器:
独立运行的一个或一组应用,以及它们运行的环境;

命令:
run, kill, stop, start, restart,log,export, import

启动方法:
通过镜像创建一个新的容器;run
启动一个处于停止状态的容器;start

run命令:
--name= Assign a name to the container
-i, --interactive=false Keep STDIN open even if not attached
-t, --tty=false Allocate a pseudo-TTY
--net=default Set the Network for the container
-d, --detach=false Run container in background and print container ID

步骤:
检查本地是否存在指定的镜像,不存在则从registry下载;
利用镜像启动容器
分配一个文件系统,并且在只读的镜像层之外挂载一个可读写层;
从宿主机配置的网桥接口桥接一个虚拟接口给此容器;
从地址池中分配一个地址给容器;
执行用户指定的应用程序;
程序执行完成后,容器即终止;

对于交互式模式启动的容器,终止可使用exit命令或ctrl+d组合键;

logs命令:获取一个容器的日志,获取其输出信息;

attach命令:附加至一个运行中的容器;

Docker Hub:
registry有两种:
docker hub:

private registry:
(1) 安装docker-registry程序包;
(2) 启动服务:
systemctl start docker-registry.service

(3) 建议使用nginx反代:使用ssl,基于basic做用户认证;

docker端使用私有仓库:
(1) 配置文件 /etc/sysconfig/docker
ADD_REGISTRY='--add-registry 172.16.100.68:5000'
INSECURE_REGISTRY='--insecure-registry 172.16.100.68:5000'

(2) push镜像
(a) tag命令:给要push到私有仓库的镜像打标签;
docker tag IMAGE_ID REGISRY_HOST:PORT/NAME[:TAG]
(b) push命令:
docker push REGISRY_HOST:PORT/NAME[:TAG]

(3) pull镜像
docker pull REGISRY_HOST:PORT/NAME[:TAG]

Docker的数据卷:
Data Volume

数据卷是供一个或多个容器使用的文件或目录,有多种特性:
可以共享于多个容器之间;
对数据卷的修改会立即生效;
对数据卷的更新与镜像无关;
数据卷会一直存在;

使用数据卷的方式:
(1) -v /MOUNT_POINT
默认映射的宿主机路径:/var/lib/docker/volumes/

(2) -v /HOST/DIR:/CONTAINER/DIR
/HOST/DIR: 宿主机路径
/CONTAINER/DIR :容器上的路径

(3) 在Dockerfile中使用VOLUME指令定义;

在容器之间共享卷:
--volumes-from=[] Mount volumes from the specified container(s)

后跟容器名;

删除卷:
docker rm -v CONTAINER_NAME
删除容器的同时删除其卷;
docker run --rm选项,表示容器关闭会被自动删除,同时删除其卷(此容器为最后一个使用此卷的容器时);

备份和恢复:
备份:
docker run --rm --volumes-from vol_container -v $(pwd):/backup busybox:latest tar cvf /backup/data.tar /data

docker的监控命令:
ps命令:
-a

images命令:
查看当前主机的镜像信息;

stats命令:
容器状态统计信息,实时监控容器的运行状态;

inspect命令:
查看镜像或容器的底层详细信息;
-f, --format
{{.key1.key2....}}

top命令:
用于查看正在运行的容器中的进程的运行状态;

port命令:
查看端口映射;

监控工具:google/cadvisor镜像

【Linux】【Services】【Docker】应用的更多相关文章

  1. 使用VS把ASP.NET 5的应用发布到Linux的Docker上

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...

  2. Linux(Manjaro) - Docker - MySQL 安装配置

    Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...

  3. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  4. 将自己的SpringBoot应用打包发布到Linux下Docker中

    目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...

  5. linux --- 9. docker 容器 和 rabbitmq 队列

    一. docker 容器 1.docker是什么? .linux下容器技术有很多,docker是做的最杰出的一款 .docker能够支撑阿里双十一,京东618的业务,说明,性能,安全性不得差 .doc ...

  6. Linux通过docker安装运行酷Q--用QQ骰子君进行跑团

    Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...

  7. vs2017创建netcore项目,部署到linux的docker容器里面

    开发环境 1.win10下面安装VS2017 2.linux安装Ubuntu16.4系统 步骤: 第一步:linux安装docker容器 docker中文文档,里面有详解的docker介绍及讲解,建议 ...

  8. Linux下docker的安装

    前言: 因为之前在自己的mac上直接使用HomeBrew的包管理安装的,使用brew install docker即可,这种方法简单,但最近想尝试在Linux下安装,费了一些时间,主要是启动docke ...

  9. 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上

    1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...

  10. Linux 使用 docker 下搭建xunsearch 搜索引擎服务

    Linux 使用 docker 下搭建 xunsearch 搜索引擎服务 安装 docker 环境(菜鸟教程有说明) 安装docker说明 下载并运行 xunsearch 的服务端:docker安装x ...

随机推荐

  1. 基于大量图片与实例深度解析Netty中的核心组件

    本篇文章主要详细分析Netty中的核心组件. 启动器Bootstrap和ServerBootstrap作为Netty构建客户端和服务端的路口,是编写Netty网络程序的第一步.它可以让我们把Netty ...

  2. 菜鸡的Java笔记 java基础类库 BaseClassLibrary

    java基础类库 BaseClassLibrary        StringBuffer 类的特点        StringBuffer,StringBuilder,String 类之间的关系   ...

  3. c语言循环位移(数字,字符串)

    C语言中没有提供循环移位的操作符,但可以通过简洁的方式实现循环移位 设一个操作数x有s位则循环左移n位的操作为: (x << n) | (x >> (s - n)); 同理右移 ...

  4. Spark-StructuredStreaming 下的checkpointLocation分析以及对接 Grafana 监控和提交Kafka Lag 监控

    一.Spark-StructuredStreaming checkpointLocation 介绍 Structured Streaming 在 Spark 2.0 版本于 2016 年引入, 是基于 ...

  5. [atARC061F]Card Game for Three

    记录每一次操作的玩家为操作序列(去掉第一次),需要满足:$a$的个数为$n$且以$a$为结尾,$b$和$c$的个数分别不超过$m$和$k$ 其所对应的概率:每一个字符恰好确定一张卡牌,因此即$3^{n ...

  6. Study Blazor .NET(二)安装

    翻译自:Study Blazor .NET,转载请注明. 安装 请根据下面步骤安装开始使用Blazor: 1.针对不同的操作系统,安装最新版.Net Core框架 [这里] 2.用.Net Core ...

  7. react之react Hooks

    函数组件,没有 class 组件中的 componentDidMount.componentDidUpdate 等生命周期方法,也没有 State,但这些可以通过 React Hook 实现. Rea ...

  8. 简单的MISC,writerup

    (Tips:此题是我自己出给新生写的题目) 解压压缩包,发现两个文件,一个压缩包一个图片 尝试解压,发现有密码,正常思路及密码被藏在了图片里 把图片拉进010editor,无发现,再拉进stegsol ...

  9. 测试平台系列(85) 把redis运用到实战中

    大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们让支持了前置条件 ...

  10. Ubuntu 彻底卸载 MySQL 数据库

    Ubuntu 18.04 彻底卸载MySQL 5.7.31 1. 查看MySQL的依赖项 dpkg --list|grep mysql 2. 卸载 mysql-common sudo apt remo ...