一、Docker网络

1.相关命令

docker network --helpconnect 将某个容器连接到一个docker网络
create 创建一个docker局域网络
disconnect 将某个容器退出某个局域网络
inspect 显示某个局域网络信息
ls 显示所有docker局域网络
prune 删除所有未引用的docker局域网络
rm 删除docker网络

2.能干什么

容器间的互联和通信以及端口映射

容器IP变动时候可以通过服务名直接网络通信而不受到影响

3.网络模式

bridge模式:使用--network  bridge指定,默认使用docker0
host模式:使用--network host指定
none模式:使用--network none指定
container模式:使用--network container:NAME或者容器ID指定

4.自定义网络

自定义桥接网络,自定义网络默认使用的是桥接网络bridge

新建自定义网络 docker network create smh_network

新建容器加入上一步新建的自定义网络
docker run -d -p 8081:8080 --network smh_network  --name tomcat81 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --network smh_network  --name tomcat82 billygoo/tomcat8-jdk8

互相ping测试

进入tomcat81容器   ping tomcat82
进入tomcat82容器   ping tomcat81

真正工作中,多台docker容器要用自定义网络

自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)

二、Docker-compose容器编排

1是什么,能干嘛,去哪下

Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

简单来说,spring通过applicationContext管理bean对对象, Docker通过Docker-compose管理多个容器实例

官网 https://docs.docker.com/compose/compose-file/compose-file-v3/

官网下载 https://docs.docker.com/compose/install/

安装步骤
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose --version

2Compose核心概念

一文件 docker-compose.yml

两要素

服务(service)   一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器。
工程(project)   由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

3Compose使用的三个步骤

编写Dockerfile定义各个微服务应用并构建出对应的镜像文件

使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。

最后,执行docker-compose up命令 来启动并运行整个应用程序,完成一键部署上线

4Compose常用命令

docker-compose -h # 查看帮助
docker-compose up # 启动所有docker-compose服务
docker-compose up -d # 启动所有docker-compose服务并后台运行
docker-compose down # 停止并删除容器、网络、卷、镜像。
docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps # 展示当前docker-compose编排过的运行的所有容器
docker-compose top # 展示当前docker-compose编排过的容器进程

docker-compose logs yml里面的服务id # 查看容器输出日志
docker-compose config # 检查配置
docker-compose config -q # 检查配置,有问题才有输出
docker-compose restart # 重启服务
docker-compose start # 启动服务
docker-compose stop # 停止服务

5Compose编排微服务

1.编写docker-compose.yml文件

version: "3"services:microService:image: smh:1.6container_name: ms01ports:- "6001:6001"volumes:- /app/microService:/datanetworks: - smh_network depends_on: - redis- mysqlredis:image: redis:6.0.8ports:- "6379:6379"volumes:- /app/redis/redis.conf:/etc/redis/redis.conf- /app/redis/data:/datanetworks: - smh_networkcommand: redis-server /etc/redis/redis.confmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: 'root'MYSQL_ALLOW_EMPTY_PASSWORD: 'no'MYSQL_DATABASE: 'db2021'MYSQL_USER: 'smh'MYSQL_PASSWORD: 'root'ports:- "3306:3306"volumes:- /app/mysql/db:/var/lib/mysql- /app/mysql/conf/my.cnf:/etc/my.cnf- /app/mysql/init:/docker-entrypoint-initdb.dnetworks:- atguigu_netcommand: --default-authentication-plugin=mysql_native_password #解决外部无法访问networks: smh_network:
编写一个简单的springboot微服务
建Module    改POM     写YML      主启动      业务类,    测试没问题package打成jar包
数据库查询,然后redis做缓存
本地测试没问题后,打包上传
具体步骤
把jar包传上去, build成镜像        docker build -t smh_docker:1.6 .
然后检查docker-compose.yml  编写是否有误; 命令  docker-compose config -q
然后启动docker-compose up -d如果数据库出现java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)  这种错误授权使Mysql被允许远程访问
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;   //立即生效

Docker网络、容器编排相关推荐

  1. Docker 多容器编排Swarm(六)

    docker swarm简介 Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机 ...

  2. 浅述 Docker 的容器编排

    作者 | 天元浪子 来源 | CSDN博客 概述 作为容器引擎,Docker为容器化的应用程序提供了开放标准,使得开发者可以用管理应用程序的方式来管理基础架构,实现快速交付.测试和部署代码.随着容器的 ...

  3. docker Swarm容器编排工具

    目录 一.什么是docker swarm 二.Docker Swarm 基本结构 三.Swarm的几个关键概念 四.swarm的调度策略 五.Swarm Cluster模式特性 六.搭建docker ...

  4. Docker网络容器通信

    Docker网络&容器通信 docker网络 原生网络 自定义网络 docker容器通信 ip通信 Docker DNS Server joined容器 link docker跨主机通信 容器 ...

  5. Docker compose 容器编排

    1. 概述 问题:如果要使用 Docker 运行 LNMP 架构,那么 Nginx.MySQL.PHP. Linux三个服务运行在一个容器里,还是运行在多个容器里呢? 答案是都可以. 你可以分别放在三 ...

  6. Docker学习(六):docker compose容器编排

    Docker-compose 实现对容器集群的快速编排 多服务部署的管理工具 定义docker-compose.yml文件,写好容器之间的调用关系,通过命令完成多个容器的同时启动关闭 解决了容器与容器 ...

  7. Docker网络---容器互联

    前言: 虽然每个docker容器之间都能通过ip来进行互联,但当容器重新启动,ip就会被重新分配给重新启动的容器,这时同个容器由于重启导致ip不一样了,这时就会导致开发和运维的困难程度大大增加,这时候 ...

  8. Docker Compose 容器编排基础使用

    Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务.然后,使用一个命令,就可以从 YML 文件配置中创建并启 ...

  9. Docker Compose容器编排

    Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用.你需要定义一个 YAML 格式的配置文件docker-compose.yml, 写好多个容器之间 ...

  10. 这就是你日日夜夜想要的docker!!!---------Docker Compose容器编排理论+实操

    文章目录 一.Compose简介 1.在Compose中有两个重要的概念 2.docker,dockerfile与docker-compose区别 二.Compose安装与卸载 1.Centos系统安 ...

最新文章

  1. 蜜罐技术——通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析...
  2. node进程管理——pm2
  3. R语言进阶 | 变量赋值背后的机制与R语言内存优化
  4. mock 生成在线图片
  5. 判断linux进程是否存在
  6. 互联网为什么要版权,我支持资源共享。
  7. Android Studio Flutter 调试技巧 Flutter Inspector 提升你的维护开发效率 轻松定位复杂嵌套Widget代码位置
  8. python异常值处理实例_python-异常值:(“ 08001”,“ [08001] [unixODBC]...
  9. MySQL添加唯一约束和联合唯一约束(建表后添加)
  10. Java 调用 pytorch_5分钟!用Java实现目标检测 | PyTorch
  11. Java突击学习 Day2 Part1
  12. 基于STM32设计的宠物投喂器
  13. leaflet 加载海量点位,点击marker 查看详情功能
  14. 解决Office2007安装时出现错误1706的方法(转载)
  15. recover 没有捕获异常_Go的异常处理defer, panic, recover以及错误处理
  16. 注意力机制-多头注意力
  17. 顶级赛事|2021 CCF大数据与计算智能大赛重磅来袭!
  18. alertmanager 简介
  19. Context R-CNN一种基于注意力机制的视频检测算法
  20. ShardingSphere分库分表核心原理精讲第十一节 分布式事务详解

热门文章

  1. Nginx的介绍与使用
  2. 小程序博客(云开发)
  3. DecisionTreeRegressor参数详解
  4. 77道JVM系列面试题总结(2万字解析)
  5. 【THREE.JS学习(3)】使用THREEJS加载GeoJSON地图数据
  6. Webpack 新功能 Module Federation 深入解析
  7. 【算法训练营学习笔记-Week01】数组和链表的比较以及LeetCode的做题反思
  8. Parasoft全面发布最广泛的MISRA规则覆盖
  9. Android 自定义seekbar【仿微信联系人】
  10. python中ipaddr库用法详解