Docker高级管理(实例演示!!!)

发布时间:2020-02-25 07:00:54 作者:caozhengtao1213
来源:网络 阅读:492

Docker网络通信

Docker单机网络拓扑图:

Docker高级管理(实例演示!!!)

端口映射:

docker run -d -P httpd:centos
docker run -d -p 49888:80 httpd:centos

容器互联

实现容器互联

docker run -d -P --name web1 httpd:centos
docker run -d -P --name web2 --link web1:web1
httpd:centos
docker exec -it web2 /bin/bash
ping web1

Docker Compose容器编排

Docker Compose环境安装

[root@localhost ~]# curl -Lhttps://github.com/docker/compose/releases/download/1.21.1 /docker-compose-`uname -s`-`uname -m`-o /usr/local/bin/docker-compose
[root@localhost ~ ]# chmod +x /usr/local/bin/docker-compose
[root@localhost ~ ]# docker-compose -v

Docker Compose文件结构

[root@localhost compose_ Inmp]# vim docker-compose.yml

Docker Compse配置常用字段:

字段 描述
build dockerfile context 指定Dockerfile文件名构建镜像上下文路径
image 指定镜像
command 执行命令,覆盖默认命令
container name 指定容器名称,由于容器名称时唯一的,如果指定自定义名称,则无法scale
deploy 指定部署和运行服务相关配置,只能在Swarm模式使用
environment 添加环境变量
networks 加入网络
ports 暴露容器端口,与-p相同,但端口不能低于60
volumes 挂载宿主机路径或命令卷
restart 重启策略,默认no,always,no -failure,unless-stoped
hostname 容器主机名

Docker Compse常用命令:

字段 描述
build 重新构建服务
ps 列出容器
up 创建和启动容器
exec 在容器里面执行命令
scale 指定一个服务容器启动数量
top 显示容器进程
logs 查看容器输出
down 删除容器/网络/数据卷和镜像
stop/start/restart 停止/启动/重启服务

Compose命令说明

docker-compose [options] [COMMAND] [ARGS...]

Docker consul容器服务更新与发现

Consul

一、安装Docker-ce引擎

#安装依赖包
yum install yum-utils device-mapper-persistent-data lvm2 -y

#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装Docker-ce
yum install -y docker-ce

#关闭防火墙及增强型安全功能
systemctl stop firewalld.service
setenforce 0

#启动Docker并设置为开机自启动
systemctl start docker.service
systemctl enable docker.service

#检查相关进程开启情况
ps aux | grep docker

#重载守护进程
systemctl daemon-reload

#重启服务
systemctl restart docker

二、部署docker-compose

#下载安装compose
curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#提权方便调用
chmod +x /usr/local/bin/docker-compose

#建立compose站点
mkdir /root/docker_compose

三、部署nginx+Tomcat

#建立compose文件
vim /root/docker-compose/docker-compose.yml
#compose版本号,有1、2、3
version: '3.3'
#服务名称
services:
  nginx:
#主机名
    hostname: nginx
#建立镜像需要的目录、dockerfile脚本名
    build:
      context: ./nginx
      dockerfile: Dockerfile
#映射宿主机端口
    ports:
     - 1216:80
     - 1200:443
#工作组:同一集群一个名字
    networks:
     - test
#建立数据集的目录
    volumes:
     - ./wwwroot:/usr/local/nginx/html
  tomcat:
    hostname: tomcat
    build:
      context: ./tomcat
      dockerfile: Dockerfile
    ports:
     - 888:8080
    networks:
     - test
networks:
  test:

#需要建立新镜像的服务需要放在compose工作站点中
[root@localhost docker_compose]# ls
docker-compose.yml  nginx  tomcat

#建立容器
“-f”  指定compose文件
docker-compose -f docker-compose.yml up -d

四、docker-consul+template

实验环境

名称 角色 IP地址 所需环境包
centos7-1 master 192.168.142.128 Docker-ce、Compose 、Consul、Consul-template
centos7-2 slave1 192.168.142.129 Docker-ce、registrator
centos7-min slave2 192.168.142.130 Docker-ce、registrator

#移动文件,方便识别
[root@localhost consul]# mv consul /usr/bin/

#设定代理并后台启动
[root@localhost consul]# consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.142.128 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &

#查看后台进程
[root@localhost consul]# jobs
[1]+ 运行中 consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=192.168.142.128 -client=0.0.0.0 -node=consul-server01 &>/var/log/consul.log &

“agent” 使用agent代理功能

“-server” 提供server功能

“-bootstrap” 参与选举为领袖

“-ui” 提供用户界面

“-data-dir” 参数存储位置

“-bind” 绑定地址

“-node” 定义节点名称

- 检查群集状态
```shell
#查看群集信息
[root@localhost consul]# consul members
Node             Address              Status  Type    Build  Protocol  DC
consul-server01  192.168.142.128:8301  alive   server  0.9.2  2         dc1

#过滤leader信息
[root@localhost consul]# consul info | grep leader
        leader = true
        leader_addr = 192.168.142.128:8300
curl 127.0.0.1:8500/v1/status/peers #查看集群server成员

curl 127.0.0.1:8500/v1/status/leader #集群Raf leader

curl 127.0.0.1:8500/v1/catalog/services #注册的所有服务。

curl 127.0.0.1:8500/v1/catalog/nginx #查看nginx服务信息

curl 127.0.0.1:8500/v1/catalog/nodes #集群节点详细信息
#安装registrator(注册器)
#该工具可检查容器运行状态自动 进行注册,还可注销docker容器的服务
[root@localhost ~]# docker run -d \
--name=registrator \
--net=host \
-v /var/run/docker.sock:/tmp/docker.sock \
--restart=always \
gliderlabs/registrator:latest \
-ip=192.168.142.129 \
consul:#192.168.142.128:8500
[root@localhost ~]# docker run -itd -p:83:80 --name test-01 -h test01 nginx
[root@localhost ~]# docker run -itd -p:84:80 --name test-02 -h test02 nginx
[root@localhost ~]# docker run -itd -p:85:80 --name test-03 -h test03 httpd
[root@localhost ~]# docker run -itd -p:86:80 --name test-04 -h test04 httpd

server {
listen 110;
server_name localhost 192.168.142.128; #master端地址
access_log /var/log/nginx/kgc.cn-access.log;
index index.html index.php;
location / { #请求头部信息的设定
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr; #后端服务器IP
proxy_set_header Client-IP $remote_addr; #client的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #forward跳转地址
proxy_pass http:#http_backend; #请求跳转给http_backend服务器池
}
}


- 修改配置文件

```shell
#更改nginx配置文件
[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
#在18行下插入以下内容
include     vhost/\*.conf;                    #添加include方便nginx识别模板生成的配置文件

#此时还没有这个文件,需要去创建
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/conf/
[root@localhost conf]# mkdir vhost      #创建虚拟机目录

#启用template模板(启用后会进入监控模式)
[root@localhost ~]# consul-template -consul-addr 192.168.142.128:8500 \
-template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \
--log-level=info
“-consul-addr” #指定consul端地址

“-template” #后方从左到右分别为:模板文件路径、生成的配置文件名称、重载nginx

“–log-level” #写入日志的等级

谢谢阅读!!!

推荐阅读:
  1. PHP laravel框架Redis门面的误用
  2. phpMyAdmin报错整理

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker高级管理 docker-compose docker-consul

上一篇:有哪些实用却冷门的网站?这五个网站不可错过,第二个程序员的天

下一篇:做个有理想的精致码农,写出行云流水的代码

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》