Docker-Compose

网络通信

容器之间隔离
docker 容器之间网络通信和配置

容器-宿主机

docker 容器 与 宿主机 通信

虚拟网桥

就是 桥接模式
在这里插入图片描述
Docker 引擎 通过 Bridge 连通 Docker 容器
Docker在首次启动时创建 Bridge. 用来网络连通.
在这里插入图片描述
运行一个容器. 容器创建一对 网络接口.
veth,pair
在这里插入图片描述
这时,向其中一个 接口发送数据,另一个接口也可以接收到相同的数据
如: 我们运行了俩个 tomcat 容器. 那么在启动的时候可以通过A容器,获取到 B容器 tomcat的首页数据

自定义网桥

查看网桥配置
docker network ls
自定义网桥
docker create bridgeName
docker create -d bridgeName

指定使用网桥
docker run -d -p 8081:8080 --network ems(bridgeName) --name containerName imageName
指定网桥之后,可以通过 containerName 进行通信
删除网桥
docker network rm bridgeName
查看网桥详细信息
docker inspect bridgeName

数据卷

自动创建数据卷

在这里插入图片描述

查看数据卷

docker volumes ls
docker vulumes inspect bb(卷名)

Docker-Compose

idea插件

  1. 修改配置 centos7 安装的 docker
    在这里插入图片描述
  2. 重启docker-engine
systemctl daemon-reload
systemctl restart docker

核心概念

服务于项目.
一个容器服务可以存在多个
一个项目由多个容器组成完整的业务单元. 在 docker-compose.yml 中定义

使用

  1. 下载与安装参考这篇文章即可
  2. 移动到 usr/local/bin 目录下
    因为 这个bin目录下已经添加到环境变量了. 可以在别的目录直接执行各种的脚本
  3. 修改名称为 docker-compose
  4. 赋予执行权限: chomd +x docker-compose
  5. 执行即可
    这个就是一个 sh脚本. 不用安装. 可以直接使用 + 各种参数即可使用
    在这里插入图片描述
    在这里插入图片描述

实战1

  1. 概念
    项目: 多个服务组成一个业务单元. 定义在 docker-compose.yml 文件中
    服务: 一个服务对应一个容器. 一个项目中存在多个服务

docker-compose

  1. 创建 docker-compose.yml 文件
    这里的文件名称 必须是 docker-compose.yml | .yaml 文件
  2. 在 .yml 文件中定义一个项目存在哪些服务
  3. 编写内容
    格式
version: "3.0"
services:
  tomcat: # 服务名称.这个名字自定义
    image: tomcat:8.0-jre8 # 创建这个服务使用的镜像是谁
    ports:
      -8080:8080 # 外部:容器内部
  1. 运行 docker-compose1.yml
docker-compose up

在任意目录运行这个命令. 但是此目录必须存在 docker-compose.yml 文件
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

还可以在运行一个 tomcat.我们这回指定问 9899 端口
在这里插入图片描述

d-c 命令模板

服务: 一个服务就是一个应用容器
项目: 由多个服务组成的业务逻辑的单元
项目在 docker-compose.yml 中进行定义

绝对 volume 路径

versions: "docker-compose的哪个版本"

services: # 代表多个服务
	serviceName:
	  image: #服务使用的哪个镜像
	  ports:
	  	- 宿主机:容器内部暴露的端口
	  volumes:
	  	- 绝对路径:绝对路径
	  	# - 相对路径[aaa]:绝对路径. 这种方式需要在对这个相对路径进行声明.
volumes: 
	相对路径[aaa]: 声明指定的卷名. 会自动创建卷名.但会在卷名前加上项目名称

具体请参考 这篇文章这篇文章

自定义volume

在这里插入图片描述
这里的项目名是docker-compose.yml 所在目录名. 在创建卷的时候会自动加上下项目名称
而 external 指定是否使用 tomcatwebapps 做为数据卷名. 需要先创建数据卷名为 tomcatwebapps才可以

docker volume create tomcatwebapps 

不适用外部自定义卷名,则会加上所在目录名称

network

在这里插入图片描述
定义一个网桥
在这里插入图片描述

网桥名称

这时候网桥名称也加上了 项目名
也可以 指定网桥名称是否使用外部项目名
external:
false/true

指定容器名称

在这里插入图片描述

environment

配置环境变量
在这里插入图片描述

command

启动之后使用该命令覆盖容器默认命令
在这里插入图片描述

env_file

docker-compose 中的环境配置单独写在文件中
在这里插入图片描述
可以以配置相对路径,也可以配置绝对路径
在这里插入图片描述

depends_on

容器之间启动的顺序关系
在这里插入图片描述

headthcheck

心跳检查. 容器是否健康运行.
docker-engine 和 容器通信.
在这里插入图片描述

内核参数

有些服务受容器内操作系统限制可能会无法启动.必须通过修改容器中参数才能启动
在这里插入图片描述

总结

在这里插入图片描述

build 指令

用来将dockerFile打包成为镜像
在这里插入图片描述
指定 dockerFile所在位置. 可以是相对路径或绝对路径
在这里插入图片描述

d-c 指令

d-c 的指令. 用来操作 d-c.yml的.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Portainer

可视化 docker-compose 工具
可以自己学习一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值