文章目录
- 前言
- Docker图形化工具
- 1.查看portainer镜像
- 2.portainer镜像下载
- 3.启动dockerui容器
- 4.浏览器访问
- 5.单机版Docker,直接选择Local ,点击连接
- 6.使用即可
- Docker Compose
- 思考
- 简介
- 描述
- Docker Compose安装与卸载
-
- Docker Compose使用
-
- Docker-compose 常用命令
-
- Docker仓库
- Tomcat搭建集群
- Redis集群搭建
- 1、创建Redis节点安装目录
- 2、依次创建文件夹。并依次修改配置文件
- 3、依次创建文件夹。并依次修改配置文件
- 4、编写docker-compose文件内容
- 5、启动并测试
- 6、创建集群
- 7、Redis Cluster集群验证
前言
未讲解,水文
Docker图形化工具
docker 图形页面管理工具常用的有三种,DockerUI ,Portainer ,Shipyard 。DockerUI 是 Portainer 的前身,这三个工具通过docker api来获取管理的资源信息。平时我们常常对着shell对着这些命令行客户端,审美会很疲劳,如果有漂亮的图形化界面可以直观查看docker资源信息,也是非常方便的。今天我们就搭建单机版的三种常用图形页面管理工具。这三种图形化管理工具以Portainer最为受欢迎。
1.查看portainer镜像
docker search portainer
2.portainer镜像下载
docker pull portainer/portainer
3.启动dockerui容器
docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
4.浏览器访问
http://106.15.239.153:9000/
![在这里插入图片描述](https://img-blog.csdnimg.cn/d1c59de95edc4e309882604043b28902.png)
5.单机版Docker,直接选择Local ,点击连接
![在这里插入图片描述](https://img-blog.csdnimg.cn/29dd79044a7c4b85a573cb9f25cc6a53.png)
6.使用即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/dced57708a1946c188edc2f2f8f7536b.png)
Docker Compose
思考
前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run -d --name -p等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知
使用Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具
简介
Docker Compose
是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。
描述
Compose
项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack中的 Heat
十分类似。
其代码目前在 https://github.com/docker/compose 上开源。
Compose
定位是 「定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)」,其前身是开源项目 Fig。
通过第一部分中的介绍,我们知道使用一个 Dockerfile
模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,
除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
Compose
恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml
模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Compose
中有两个重要的概念:
- 服务 ( service ):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
- 项目 ( project ):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
Compose
的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。
Compose
项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台
支持 Docker API,就可以在其上利用 Compose
来进行编排管理。
Docker Compose安装与卸载
Compose 支持 Linux、macOS、Windows 10 三大平台。
Compose 可以通过 Python 的包管理工具 pip 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行。
Docker for Mac、Docker for Windows自带 docker-compose。
二进制文件,安装 Docker 之后可以直接使用
官方安装
mv docker-compose-Linux-x86_64 /usr/local
mv docker-compose-Linux-x86_64 docker-compose
chmod 777 docker-compose
mv docker-compose /usr/local/bin/
![在这里插入图片描述](https://img-blog.csdnimg.cn/fc23e91f0a7146cf88dbe4c2b3b8d063.png)
或通过 curl的方式下载。https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname - s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
docker-compose version 1.25.5, build 1110ad01
卸载
sudo rm /usr/local/bin/docker-compose
sudo pip uninstall docker-compose
Docker Compose使用
术语
首先介绍几个术语。
服务 ( service ):一个应用容器,实际上可以运行多个相同镜像的实例。
项目 ( project ):由一组关联的应用容器组成的一个完整业务单元。
可见,一个项目可以由多个服务(容器)关联而成, Compose 面向项目进行管理。
Docker-compose创建容器
通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
yml格式描述:
1、yml文件以缩进代表层级关系
2、缩进不允许使用tab只能使用空格
3、空格的个数不重要,只要相同层级的元素左对齐即可(建议2个)
4、大小写敏感
5、数据格式为,名称:(空格)值
server:
port: 8083
path: /helloBoot
animal:
- cat
- dag
示例1
用compose的方式管理一个Tomcat容器和MySQL
mkdir -p /opt/docker_mysql_tomcat/
编写 docker-compose.yml 文件,这个是 Compose 使用的主模板文件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0e382f40dbd47fe99e32f6838cf8e45.png)
docker-compose up -d
docker-compose -f 文件名.后缀名 up –d
连接访问测试Tomcat
连接访问测试MySQL
sudo docker exec -it 7f /bin/bash
mysql -u root -p
use mysql;
grant all privileges on *.* to 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
docker-compose up -d
docker-compose down
docker-compose stop
docker-compose start
docker-compose ps
docker-compose logs -f
Docker-compose 常用命令
build 构建或重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器
down
常用命令示例:
docker-compose up -d nginx 构建启动nignx容器
docker-compose exec nginx bash 登录到nginx容器中
docker-compose down 删除所有nginx容器,镜像
docker-compose ps 显示所有容器
docker-compose restart nginx 重新启动nginx容器
docker-compose run --no-deps --rm php-fpm php -v 在php-fpm中不启动关联容器,并容器执行php -v 执行完成
后删除容器
docker-compose build nginx 构建镜像 。 docker-compose build --no-cache nginx 不带缓存的构建。
docker-compose logs nginx 查看nginx的日志
docker-compose logs -f nginx 查看nginx的实时日志
docker-compose config -q 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配
置错误,输出错误信息。
docker-compose events --json nginx 以json的形式输出nginx的docker日志
docker-compose pause nginx 暂停nignx容器
docker-compose unpause nginx 恢复ningx容器
docker-compose rm nginx 删除容器(删除前必须关闭容器)
docker-compose stop nginx 停止nignx容器
docker-compose start nginx 启动nignx容器
Docker仓库
- 国内 Docker 仓库
阿里云
网易云
时速云
DaoCloud - 国外 Docker 仓库
Docker Hub Quay
Tomcat搭建集群
1、创建指定管理目录
mkdir /opt/docker-tomcat-cluster
cd /opt/docker-tomcat-cluster
2、编写docker-compose.yml
version: '3.1'
services:
tomcat-8080:
restart: always
image: tomcat
container_name: tomcat-8080
ports:
- 8080:8080
environment:
TZ: Asiz/Shanghai
volumes:
- /opt/docker-tomcat-cluster/tomcat-8080/webapps:/usr/local/tomcat/webapps
- /opt/docker-tomcat-cluster/tomcat-8080/logs:/usr/local/tomcat/logs ......................................
3、测试 在每一个tomcat下创建ROOT/index.html。用于访问即可。
cp -r ROOT/ /opt/docker-tomcat-cluster/tomcat-8081/webapps
Redis集群搭建
![在这里插入图片描述](https://img-blog.csdnimg.cn/e48d6dff174f45c398761c47a823b3d5.png)
1、创建Redis节点安装目录
mkdir docker-redis-cluster
2、依次创建文件夹。并依次修改配置文件
创建文件夹 6381-6386
mkdir redis-6381
复制redis.conf到此目录下
cp redis.conf /opt/docker-redis-cluster/redis-6381/
protected-mode no
port 6381
cluster-enabled yes
pidfile /var/run/redis_6381.pid
masterauth guoweixin
requirepass guoweixin
3、依次创建文件夹。并依次修改配置文件
按如上方式。修改6份。分别为 6381-6386。
4、编写docker-compose文件内容
version: '3'
services:
redis-6381:
container_name: redis-6381
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6381/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6381/data:/data
redis-6381:
container_name: redis-6381
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6381/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6381/data:/data
5、启动并测试
在/opt/docker-redis-cluster目录下 启动:
docker-compose up -d
查看是否全部启动成功。如未成功,需要排查错误(再执行下一步)
docker-compose ps
可通过远程工具连接任意一节点,看是否密码有效。
6、创建集群
Redis 5版本后 通过redis-cli 客户端命令来创建集群。
创建集群的命令
--cluster create
--cluster-replicas 1
docker exec -it redis-6381 redis-cli --cluster create -a guoweixin 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --cluster-replicas 1
7、Redis Cluster集群验证
在某台机器上(或)连接集群的6381端口的节点:
普通Redis方式:
redis-cli -h 127.0.0.1 -c -p 6381 -a guoweixin :加参数 -c 可连接到集群
Docker方式:
docker exec -it redis-6381 redis-cli -h 127.0.0.1 -c -p 6381 -a guoweixin
redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据
基本命令
info replication通过Cluster Nodes命令和Cluster Info命令来看看集群效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/2f7c625068404c08ac2ef3d2de9e9cff.png)
输入命令 cluster nodes
![在这里插入图片描述](https://img-blog.csdnimg.cn/5d87a983232f4afd85335e8658553761.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)