Docker快速入门—Docker简介
Docker快速入门——Docker简介一、Docker简介1、Docker简介Docker是Docker Inc公司开源的一项基于Ubuntu LXC技术构建的应用容器引擎,源代码托管在GitHub上,完全基于go语言开发并遵守Apache2.0协议开源。Docker可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux版本机器上,也可以实现虚拟化。Docker容器完全使用沙箱机制,容器相互之间不会有任何接口,并且容器性能开销极低。Docker最初是在Ubuntu 12.04上开发实现的,RedHat从RHEL6.5开始对Docker 进行支持。Docker最初基于LXC实现,从0.7版本后开始去除LXC,转而使用自行开发的libcontainer。从1.11开始,进一步演进为使用runC和containerd。Docker官网:http://www.docker.comGithub Docker源码:https://github.com/docker/docker
2、Docker引擎Docker引擎是一个客户端服务器应用程序,包含如下 ...
Dockerfile定制镜像
https://github.com/yeasy/docker_practice
Dockerfile定制镜像镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
此处以定制 nginx 镜像为例,使用 Dockerfile 来定制。
在一个空白目录中,建立一个文本文件,并命名为 Dockerfile :
123$ mkdir mynginx$ cd mynginx$ touch Dockerfile
其内容为:
12FROM nginxRUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
这个 Doc ...
Docker数据卷的使用
Docker数据卷的使用Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume)。数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。
数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。使用Docker的数据卷,类似在系统中使用 mount挂载一个文件系统。
1)一个数据卷是一个特别指定的目录,该目录利用容器的UFS文件系统可以为容器提供一些稳定的特性或者数据共享。数据卷可以在多个容器之间共享。
2)创建数据卷,只要在docker run命令后面跟上-v参数即可创建一个数据卷,当然也可以跟多个-v参数来创建多个数据卷,当创建好带有数据卷的容器后,就可以在其他容器中通过--volumes-froms参数来挂载该数据卷了,而不管该容器是否运行。也可以在Dockerfile中通过VOLUME指令来增加一个或者多个数据卷。
3)如果有一些数据想在多个容器间共享,或者想在一些临时性的容器中使用该数据,那么最好的方案就是你创建一个数据卷容器,然后从该临时性的容器中挂载 ...
修改docker默认的存储路径
修改docker默认的存储路径docker默认存储路径: /var/lib/docker,往往根目录的空间比较小,随着镜像的增加根目录空间会越来越小,这里将存储路径转移到home下。
12cd ~mkdir docker
修改docker的systemd的 docker.service的配置文件,查看该文件的位置可以用以下的命令
123systemctl disable dockersystemctl enable dockerfind / -name docker.service
通过上面的命令可以推测出该文件的路径
1/lib/systemd/system/docker.service
修改
1ExecStart=/usr/bin/dockerd --graph /home/xxx/docker
reload配置文件
1systemctl daemon-reload
重启docker
1systemctl restart docker.service
查看 Docker Root Dir: /var/lib/docker是否改成设定 ...
Docker命令大全
Docker命令大全容器生命周期管理Docker run 命令docker run: 创建一个新的容器并运行一个命令
语法1docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量; ...
docker管理工具
portainer Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。
rainbond Rainbond以应用为中心,通过“无侵入”架构,支撑应用开发、交付、运维,并可接管IaaS、虚拟机和物理服务器等各类底层资源。让用户专注于业务本身,不用关心底层复杂的技术。(k8s管理面板)
rancher Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。
shipyard hipyard是docker的web可视化界面管理工具,是建立在docker集群管理工具Citadel之上,可以管理镜像、容器、主机等资源的web图形化工具,包括core和extension两个版 ...
Ubuntu19.04安装Docker
https://docs.docker.com/install/linux/docker-ce/ubuntu/
Ubuntu19.04安装Docker清除旧版本/残缺版本1$ sudo apt-get remove docker docker-engine docker.io containerd runc
添加Docker仓库支持12345678910111213141516171819# 仓库(repository)组件$ sudo apt-get update$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common# 添加Docker仓库gpg公钥$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -$ sudo apt-key fingerprint 0EBFCD88 #该命令作用是验证公钥是 ...
Hello World
Welcome to note
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
Casbin面向对象权限ABAC
abac_model.conf1234567891011[request_definition]r = sub, obj, act[policy_definition]p = sub, obj,act[policy_effect]e = some(where (p.eft == allow))[matchers]m = r.sub.App == r.obj.App && r.sub.Type == r.obj.Type && r.sub.Method==r.obj.Method
main.go123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475package mainimport ( "fmt" "github.com/casbin/casbin")type User st ...
casbin 权限库
casbin 使用了 PERM 模型来表达权限, 并且提供了简单直接的 API.
核心概念model file用来定义具体的权限模型, 目前支持的模型基本覆盖了常见的所有场景:
ACL
ACL with superuser
ACL without users
ACL without resources
RBAC
RBAC with resource roles
RBAC with domains/tenants
ABAC
RESTful
model file 定义语法casbin 是基于 PERM 的, 所有 model file 中主要就是定义 PERM 4 个部分.
Request definition
12[request_definition]r = sub, obj, act
分别表示 request 中的
accessing entity (Subject)
accessed resource (Object)
the access method (Action)
Policy definition
123[policy_definition] ...
consul
Consul常用命令
agent 运行一个consul agent
consul agent -dev
join 将agent加入到consul集群
consul join IP
members 列出consul cluster集群中的members
consul members
leave 将节点移除所在集群
consul leave
Consul agent 命令详解输入consul agent --help ,可以看到consul agent 的选项
consul agent 命令的常用选项,如下:
-data-dir
作用:指定agent储存状态的数据目录
这是所有agent都必须的
对于server尤其重要,因为他们必须持久化集群的状态
-config-dir
作用:指定service的配置文件和检查定义所在的位置
通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)
-config-file
作用:指定一个要装载的配置文件
该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
...
consul使用手册
consul使用手册介绍Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性:
服务发现 Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程序可用很容易的找到他所依赖的服务.健康检查 Consul客户端可用提供任意数量的健康检查,指定一个服务(比如:webserver是否返回了200 OK 状态码)或者使用本地节点(比如:内存使用是否大于90%). 这个信息可由operator用来监视集群的健康.被服务发现组件用来避免将流量发送到不健康的主机.Key/Value存储 应用程序可用根据自己的需要使用Consul的层级的Key/Value存储.比如动态配置,功能标记,协调,领袖选举等等,简单的HTTP API让他更易于使用.多数据中心 Consul支持开箱即用的多数据中心.这意味着用户不需要担心需要建立额外的抽象层让业务扩展到多个区域. Consul面向DevOps和应用开发者友好.是他适合现代的弹性的 ...
css3
CSS3
html5标签
html5标签基础
标签
描述
<!DOCTYPE>
定义文档类型。 表示文档是HTML
<html>
定义 HTML 文档。 浏览器会以特殊的方式来使用标题,并且通常把它放置在浏览器窗口的标题栏或状态栏上。同样,当把文档加入用户的链接列表或者收藏夹或书签列表时,标题将成为该文档链接的默认名称。(提示:<title> 标签是<head> 标签中唯一要求包含的东西。)
<title>
定义文档的标题。
<body>
定义文档的主体。
<h1> to <h6>
定义 HTML 标题。
<p>
定义段落。p 元素会自动在其前后创建一些空白。浏览器会自动添加这些空间,您也可以在样式表中规定。
<br>
定义简单的折行。
<hr>
定义水平线。
<!--...-->
定义注释。
格式
标签
描述
<acronym>
定义只取首字母的缩写。(HTML5 中不支持 标签。请使用 ...
Code Highlight Style test
Make sure all the code blocks highlighted correctly. All the code samples are come from the demo of https://highlightjs.org
1Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
12345678910111213141516#[derive(Debug)]pub enum State { Start, Transient, Closed,}impl From<&& ...
Markdown Style test
This post is originated from here and is used for testing markdown style. This post contains nearly every markdown usage. Make sure all the markdown elements below show up correctly.
Headers1234567891011121314# H1## H2### H3#### H4##### H5###### H6Alternatively, for H1 and H2, an underline-ish style:Alt-H1======Alt-H2------
H1H2H3H4H5H6Alternatively, for H1 and H2, an underline-ish style:
Alt-H1Alt-H2Emphasis1234567Emphasis, aka italics, with *asterisks* or _underscores_.Strong emphasis, ak ...