文章目录
网络通信
容器之间隔离
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插件
- 修改配置 centos7 安装的 docker
- 重启docker-engine
systemctl daemon-reload
systemctl restart docker
核心概念
服务于项目.
一个容器服务可以存在多个
一个项目由多个容器组成完整的业务单元. 在 docker-compose.yml 中定义
使用
- 下载与安装参考这篇文章即可
- 移动到 usr/local/bin 目录下
因为 这个bin目录下已经添加到环境变量了. 可以在别的目录直接执行各种的脚本 - 修改名称为 docker-compose
- 赋予执行权限: chomd +x docker-compose
- 执行即可
这个就是一个 sh脚本. 不用安装. 可以直接使用 + 各种参数即可使用
实战1
- 概念
项目: 多个服务组成一个业务单元. 定义在 docker-compose.yml 文件中
服务: 一个服务对应一个容器. 一个项目中存在多个服务
docker-compose
- 创建 docker-compose.yml 文件
这里的文件名称 必须是 docker-compose.yml | .yaml 文件 - 在 .yml 文件中定义一个项目存在哪些服务
- 编写内容
格式
version: "3.0"
services:
tomcat: # 服务名称.这个名字自定义
image: tomcat:8.0-jre8 # 创建这个服务使用的镜像是谁
ports:
-8080:8080 # 外部:容器内部
- 运行 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 工具
可以自己学习一下