Merge branch 'master' of github.com:heibaiying/Full-Stack-Notes
This commit is contained in:
@ -14,8 +14,8 @@ Docker 是一个构建,发布和运行应用程序的开放平台。Docker 以
|
||||
|
||||
Docker 使用 Go 语言进行开发,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。
|
||||
|
||||
- runc :是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。
|
||||
- containerd :是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
|
||||
- **runc** :是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。
|
||||
- **containerd** :是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
|
||||
|
||||
下图体现了 Docker 和传统虚拟化方式的不同之处:传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,再在该系统上运行所需应用进程;而 Docker 容器内的应用进程则是直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此要比传统虚拟机更为轻便。
|
||||
|
||||
@ -79,10 +79,10 @@ Docker 提供了大量命令用于管理镜像、容器和服务,命令的统
|
||||
|
||||
列出所有顶层镜像的相关信息。常用参数如下:
|
||||
|
||||
- -a :显示所有镜像,包括中间隐藏的镜像
|
||||
- -q :只显示镜像 ID
|
||||
- --digests :显示摘要信息
|
||||
- --no-trunc :显示完整镜像信息
|
||||
- **-a** :显示所有镜像,包括中间隐藏的镜像
|
||||
- **-q** :只显示镜像 ID
|
||||
- **--digests** :显示摘要信息
|
||||
- **--no-trunc** :显示完整镜像信息
|
||||
|
||||
#### 3. docker pull 镜像名 [:TAG]
|
||||
|
||||
@ -98,23 +98,23 @@ Docker 提供了大量命令用于管理镜像、容器和服务,命令的统
|
||||
|
||||
run 是 docker 中最为核心的一个命令,用于新建并启动容器,其拥有众多可用参数,可以使用`docker run --help`查看所有可用参数。常用参数如下:
|
||||
|
||||
+ -i :表示使用交互模式,始终保持输入流开放;
|
||||
+ -t :表示分配一个伪终端,通常和`-i`结合使用,表示使用伪终端与容器进行交互;
|
||||
+ -d :以后台方式运行容器;
|
||||
+ --name :指定容器启动容器的名字,如果不指定,则由 docker 随机分配;
|
||||
+ -c :用于给运行在容器中的所有进程分配 CPU 的 shares 值,这是一个相对权重,实际的处理速度与宿主机的 CPU 相关;
|
||||
+ -m :用于限制为容器中所有进程分配的内存总量,以B、K、M、G为单位;
|
||||
+ -v :用于挂载数据卷 volume,可以用多个`-v`参数同时挂载多个 volume。volume 的格式为:`[host-dir]:[container-dir]:[rw:ro]`,`[rw:ro]`用于指定数据卷的模式,`rw`代表读写模式,`ro`代表只读模式。
|
||||
+ -p :用于将容器的端口暴露给宿主机的端口,格式为:`hostPort:containerPort`,通过端口的暴露,可以让外部主机能够访问容器内的应用。
|
||||
+ **-i** :表示使用交互模式,始终保持输入流开放;
|
||||
+ **-t** :表示分配一个伪终端,通常和`-i`结合使用,表示使用伪终端与容器进行交互;
|
||||
+ **-d** :以后台方式运行容器;
|
||||
+ **--name** :指定容器启动容器的名字,如果不指定,则由 docker 随机分配;
|
||||
+ **-c** :用于给运行在容器中的所有进程分配 CPU 的 shares 值,这是一个相对权重,实际的处理速度与宿主机的 CPU 相关;
|
||||
+ **-m** :用于限制为容器中所有进程分配的内存总量,以B、K、M、G为单位;
|
||||
+ **-v** :用于挂载数据卷 volume,可以用多个`-v`参数同时挂载多个 volume。volume 的格式为:`[host-dir]:[container-dir]:[rw:ro]`,`[rw:ro]`用于指定数据卷的模式,`rw`代表读写模式,`ro`代表只读模式。
|
||||
+ **-p** :用于将容器的端口暴露给宿主机的端口,格式为:`hostPort:containerPort`,通过端口的暴露,可以让外部主机能够访问容器内的应用。
|
||||
|
||||
#### 2. docker ps [OPTIONS]
|
||||
|
||||
列出当前所有正在运行的容器。常用参数如下:
|
||||
|
||||
- -a :列出所有容器,包括运行的和已经停止的所有容器
|
||||
- -n :显示最近创建的 n 个容器
|
||||
- -q :只显示容器编号
|
||||
- --no-trunc :不要截断输出信息
|
||||
- **-a** :列出所有容器,包括运行的和已经停止的所有容器
|
||||
- **-n** :显示最近创建的 n 个容器
|
||||
- **-q** :只显示容器编号
|
||||
- **--no-trunc** :不要截断输出信息
|
||||
|
||||
#### 3. 启动\重启\停止\强制停止容器
|
||||
|
||||
@ -131,8 +131,8 @@ run 是 docker 中最为核心的一个命令,用于新建并启动容器,
|
||||
|
||||
想要退出正在运行的容器,有以下两种常用方法:
|
||||
|
||||
+ exit :退出并停止容器;
|
||||
+ ctrl+P+Q :退出。
|
||||
+ **exit** :退出并停止容器;
|
||||
+ **ctrl+P+Q** :退出。
|
||||
|
||||
#### 6. docker rm 容器名或ID
|
||||
|
||||
@ -150,12 +150,12 @@ docker inspect --format='{{.NetworkSettings}}' 32cb3ace3279
|
||||
|
||||
可以使用`docker logs [OPTIONS] CONTAINER`查看容器中进程的运行日志,常用参数如下:
|
||||
|
||||
- --details :显示日志详情
|
||||
- -f :跟随日志输出显示
|
||||
- --tail :从末尾开始显示指定行的数据
|
||||
- -t :显示时间戳
|
||||
- --since :开始时间
|
||||
- --until : 结束时间
|
||||
- **--details** :显示日志详情
|
||||
- **-f** :跟随日志输出显示
|
||||
- **--tail** :从末尾开始显示指定行的数据
|
||||
- **-t** :显示时间戳
|
||||
- **--since** :开始时间
|
||||
- **--until** : 结束时间
|
||||
|
||||
## 四、DockerFile
|
||||
|
||||
|
@ -143,6 +143,7 @@ rabbitmqctl set_cluster_name my_rabbitmq_cluster
|
||||
除了可以使用命令行外,还可以使用打开任意节点的 UI 界面进行查看,情况如下:
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-集群模式.png"/> </div>
|
||||
|
||||
### 2.5 配置镜像队列
|
||||
|
||||
#### 1. 开启镜像队列
|
||||
@ -508,6 +509,7 @@ systemctl start keepalived
|
||||
此时只有 hadoop001 上是存在虚拟 IP 的,而 hadoop002 上是没有的。
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-keepalived-vip2.png"/> </div>
|
||||
|
||||
### 4.6 验证故障转移
|
||||
|
||||
这里我们验证一下故障转移,因为按照我们上面的检测脚本,如果 HAProxy 已经停止且无法重启时 KeepAlived 服务就会停止,这里我们直接使用以下命令停止 Keepalived 服务:
|
||||
|
84
notes/installation/Nginx编译方式安装.md
Normal file
84
notes/installation/Nginx编译方式安装.md
Normal file
@ -0,0 +1,84 @@
|
||||
# Nginx 编译方式安装
|
||||
|
||||
## 一、安装依赖
|
||||
|
||||
+ **PCRE**:安装 PCRE 库来支持正则表达式,它主要被 NGINX Core 和 Rewrite 模块所需要:
|
||||
|
||||
```shell
|
||||
# PCRE库的编译需要该组件,所以需要预先安装
|
||||
$ yum -y install gcc-c++
|
||||
|
||||
$ wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
|
||||
$ tar -zxf pcre-8.42.tar.gz
|
||||
$ cd pcre-8.42
|
||||
$ ./configure
|
||||
$ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
+ **zlib** :安装 zlib 库来支持 header 头压缩,它主要被 NGINX Gzip 模块所依赖:
|
||||
|
||||
```shell
|
||||
$ wget http://zlib.net/zlib-1.2.11.tar.gz
|
||||
$ tar -zxf zlib-1.2.11.tar.gz
|
||||
$ cd zlib-1.2.11
|
||||
$ ./configure
|
||||
$ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
+ **OpenSSL**:安装 OpenSSL 库来支持 HTTPS 协议,它主要被 NGINX SSL 模块和其他模块所依赖:
|
||||
|
||||
```shell
|
||||
yum install openssl openssl-devel
|
||||
```
|
||||
|
||||
## 二、安装 Nginx
|
||||
|
||||
### 2.1 下载并解压
|
||||
|
||||
下载所需版本的 Nginx 并进行解压,Nginx 版本号的规则为:`主版本号.次版本号.修订号`,其中稳定版的次版本号为偶数,测试版的次版本号为奇数,生产环境下应尽量下载稳定版:
|
||||
|
||||
```shell
|
||||
$ wget https://nginx.org/download/nginx-1.16.1.tar.gz
|
||||
$ tar -zxvf nginx-1.16.1.tar.gz
|
||||
```
|
||||
|
||||
### 2.2 编译安装
|
||||
|
||||
按需编译 Nginx,可以使用 `--with` 来包含非默认安装的模块,或使用 `--without` 来排除默认安装的模块。关于全部模块的信息,可以使用 ` ./configure --help` 命令进行查看或查阅官方文档:https://nginx.org/en/docs/configure.html :
|
||||
|
||||
```shell
|
||||
$ cd nginx-1.16.1
|
||||
|
||||
$ ./configure \
|
||||
--prefix=/usr/app/nginx-1.16.1 \
|
||||
--with-pcre=/usr/app/pcre-8.42 \
|
||||
--with-zlib=/usr/app/zlib-1.2.11 \
|
||||
--with-http_ssl_module \ # 启用HTTPS支持
|
||||
--with-stream \ # 启用TCP和UDP代理功能
|
||||
--with-mail=dynamic # 启用邮件代理功能
|
||||
|
||||
$ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
### 2.3 配置环境变量
|
||||
|
||||
```shell
|
||||
$ vim /etc/profile
|
||||
```
|
||||
|
||||
增加如下配置:
|
||||
|
||||
```shell
|
||||
export NGINX_HOME=/usr/app/nginx-1.16.1
|
||||
export PATH=${NGINX_HOME}/sbin:$PATH
|
||||
```
|
||||
|
||||
使得配置的环境变量立即生效:
|
||||
|
||||
```shell
|
||||
$ source /etc/profile
|
||||
```
|
||||
|
Reference in New Issue
Block a user