【Docker教程】Docker Linux网络命名空间

前言

到现在我们已经了解到Docker的镜像、容器等概念,我们可以在一台宿主机上运行一个或者多个容器,也可以将不同的容器运行在不同的宿主机上,那么这些容器是怎样进行互相通信呢?本文将介绍Linux网络命名空间概念,来帮助读者更好地了解到Docker容器之间的通信。

容器之间的通信(同一台宿主机上)

默认情况下,在同一台宿主机上的多个容器是可以互相访问的,容器的网络命名空间和宿主机的网络命名空间是相互独立隔离的

查看宿主机的网络命名空间

查看更多

【Docker教程】Docker 数据持久化

介绍

Docker 容器一旦删除,那么我们在容器内的一切操作将不复存在,比如我们在容器内存储的数据等;为了解决这个问题,Docker 提出了数据卷概念,就像我们运行一个mysql容器,我们需要存储我们的数据,日志之类,想要他们不会随着容器的删除而销毁,或者我们需要在各个容器间共享数据,那么这些数据卷或者数据卷容器都能做到。

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除
  • 数据卷的生命周期一直持续到没有容器使用它为止

数据卷的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷

查看更多

【Docker教程】Docker 容器

介绍

Docker 容器是用于运行镜像的沙箱环境,它是 Docker 镜像的运行实例;容器都是相互隔离、互不可见的,我们可以理解为:镜像是Docker生命周期的打包和构建阶段,而容器是Docker的启动和执行阶段。

容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。

镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。

数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器删除或者重新运行之后,数据却不会丢失。

查看更多

【Docker教程】Docker 镜像发布

介绍

如果我们自己在本地制作一个镜像,想提供给他人使用或者作为自己的日常学习,那么我们可以把我们制作的镜像发布到DockerHub上,这样不管是其它人还是我们自己就可以直接使用 docker pull 命令获取到我们发布的镜像,这样我们再也不用担心一不小心把本地镜像删除了;
当然发布到DockerHub上的镜像是公开的,每个人都能获取,如果我们希望我们发布的镜像是私有的只有我们自己可以看见,我们可以利用官方提供的registry镜像来搭建自己私有的镜像仓库,当然我们也还可以使用Harbor来搭建企业级私有仓库服务器

查看更多

【Docker教程】Docker 镜像加速器

介绍

由于国内访问官方(DockerHub)的镜像比较慢,可以使用阿里云和DaoCloud为我们提供的镜像

本文笔者会分别介绍MacOs平台和Centos7平台下配置这两种的镜像加速器地址

查看更多

【Docker教程】Docker 镜像

获取镜像

官方的 DockerHub 上有很多开源的高质量镜像,可以直接供我们使用

  • 使用docker pull 命令直接从 DockerHub 上获取

格式:

1
docker pull [选项] [docker registry 地址]:<仓库名>:<标签>

示例:

1
2
3
4
5
6
7
8
9
# 获取nginx镜像
$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
2a72cbf407d6: Pull complete
fefa2faca81f: Pull complete
080aeede8114: Pull complete
Digest: sha256:c4ee0ecb376636258447e1d8effb56c09c75fe7acf756bf7c13efadf38aa0aca
Status: Downloaded newer image for nginx:latest

查看更多

【Docker教程】Docker 初识

介绍

Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。

系统架构

查看更多

【Docker教程】Docker 安装

导读

本系列的docker学习笔者均采用Vagrant和VirtualBox进行,下面我会给出这两款工具的简单介绍。

Vagrant

介绍

Vagrant是hashicorp这家公司的产品,是一个让你可以方便设置你想要的虚拟机的便携式工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。

我们可以通过Vagrant提供的命令行工具vagrant,可以快速启动根据我们事先定义好的Vagrantfile文件,来创建一个或者多个虚拟机。

Vagrantfile是用来定义vagrant project的,使用ruby语法。

查看更多

Charles进行HTTPS抓包

介绍

Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。charles有Window版本和Mac OS版本,也同时支持ios和Android手机系统

下载

百度云Charles 4.2.1 Mac破解版

环境

  • Charles 4.2.1
  • Iphone 7P ios 11.0.1

查看更多

ELK(5.6.3)技术栈集群搭建

1、ElasticSearch单节点和集群搭建

系统环境

系统/软件 版本
centos 7
jdk # es 依赖jdk 8
node # es 安装head插件需要 8.2.1
elasticsearch 5.6.3
logstash 5.6.3
kibana 5.6.3

查看更多